如何遷移完整SQL數據庫到另外一臺服務器

一、遷移的意義:

1,一般就是從C盤移動其他分區;

2,從這個硬盤移動其他硬盤,數據庫還是正常啓動;

3,爲一般的數據庫遷移做準備;

 

二、系統數據庫遷移主要遷移的數據庫

第一類:tempdb,model,msdb

第二類:master,(resource可選)

 

三、遷移步驟:

 1,master數據庫

 一般默認SQlServer數據庫安裝完成後,SQLServer的4個系統數據庫(master、model、msdb、tempdb)都會被自動安裝在安裝路徑下,也就是系統盤的ProgramFIles文件夾下。所帶來的問題就是絕大多數數據庫服務器爲了同時照顧到性能,成本和高可用性着三個方面,都會將數據庫安裝在同一個磁盤(raid1)上,通常這個磁盤(Raid1)還不一定會用上15k的SAS,有的只用了10k的SAS,更有甚者,爲了成本,裝2個7.2k的sata也就完事,再加上Raid1陣列本身就是一種讀取性能非常強,但是寫入性能相當差的陣列形式。所以對於系統數據庫,尤其對tempdb數據庫來說是非常不利的,就肯定會對整個SQLServer的性能造成影響。

 所以,將整個系統數據庫遷移到性能更加高的陣列上,是一個解決硬件性能瓶頸的基礎解決方案。

 具體介紹一下如何將系統數據庫遷移到其他分區上(以sql2008 R2爲例):

  1,首先遷移master數據庫,而且master數據庫也是整個SQLServer數據庫實例的核心,所有的設置都存放在master數據庫,如果master數據庫出現問題,整個實例都將癱瘓。

    首先打開SQLServerConfiguration Manager,在左邊列表框中選中SQLServerSerrvices節點,然後在左邊的列表框找到要遷移的系統數據庫的實例的那個SQL Server服務,比如SQLServer(MSSQLSERVER),停止這個實例的服務,然後單擊選中最底下的“屬性”,並且切換到“方面”標籤,如圖:

SQL <wbr>Server系統數據庫遷移



看到“Startup Parameters”,這裏的參數就是需要我們修改的,如圖:

SQL <wbr>Server系統數據庫遷移


文字整理:

 

-dC:\Program Files\Microsoft
SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf;
-eC:\Program Files\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;
-lC:\Program Files\Microsoft
SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf

 

“-d”後面的就是master數據庫文件的位置,“-e”是該SQLServer實例的錯誤日誌所在位置,至於“-l”

就是master數據庫日誌文件所在的位置。

   修改數據文件和日誌文件的路徑適當位置,錯誤日誌的位置一般需要做變更,例如:將數據庫文件存放到D盤的SQLData文件夾下,日誌文件存放到E盤的SQLLog文件夾下,則參數如下:

-dD:\SQLData\master.mdf;-eC:\Program Files\Microsoft
SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lE:\SQLLog\mastlog.ldf

點擊 “OK”保存並關閉對話框。

  然後需要做的是將master數據庫的數據庫文件和日誌文件剪貼到剛剛“startup parameters”定義的路徑中, 接着啓動該服務實例的服務。

   注意:

    此時可能仍然會有出現SQL Server服務無法啓動的情況,確保剛剛配置準確無誤,然後就是NTFS權限的事情了,如果你不是用LocalSystem來啓動SQLServer服務,那麼更改完存放路徑後,你需要給新的盤符或文件夾相應的權限,這樣服務才能啓動,建議直接給相應賬號“FullControl”的權限,至於爲什麼,那是經驗,原因得要問Microsoft了。 
    master數據庫就算遷移完成。

 對於tempdb、msdb和model數據庫
 1、修改文件路徑
  --Move tempdb 
   ALTER DATABASE tempdbMODIFY
FILE(NAME='tempdev',FILENAME='D:\Database\tempdb.mdf'); 
   ALTER DATABASE tempdbMODIFY
FILE(NAME='templog',FILENAME='D:\Database\templog.ldf'); 
--Move model 
   ALTER DATABASE modelMODIFY
FILE(NAME='modeldev',FILENAME='D:\Database\model.mdf'); 
   ALTER DATABASE modelMODIFY
FILE(NAME='modellog',FILENAME='D:\Database\modellog.ldf'); 
--Move msdb 
   ALTER DATABASE msdbMODIFY 
FILE(NAME='MSDBData',FILENAME='D:\Database\msdbdata.mdf'); 
   ALTER DATABASE msdbMODIFY
FILE(NAME='MSDBLog',FILENAME='D:\Database\msdb_log.ldf');

 

2,停止SQL Server服務;

3,物理移動文件到我們要定義的文件;

4,啓動SQL Server 服務;

5,遷移完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章