sql server2008資料檔案遷移

datapeng發表於2014-08-07
       最近,客戶由於磁碟空間不夠了,加了盤,需要對sql server2008的資料庫檔案進行遷移,客戶使用了映象方式,怕對映象有影響,所以進行了充分的測試,最後實施很成功,具體過程如下:
      這裡mytest是映象資料庫來的
--對資料庫檔案進行檢查備份

DBCC CHECKDB (master) WITH PHYSICAL_ONLY

DBCC CHECKDB (mytest) WITH PHYSICAL_ONLY

DBCC CHECKDB (BackupData) WITH PHYSICAL_ONLY

--備份資料庫,客戶用的第三方備份工具進行備份

--確定檔案位置
SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files;

master                C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\master.mdf           ONLINE
mastlog               C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\mastlog.ldf          ONLINE
tempdev               C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\tempdb.mdf           ONLINE
templog               C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\templog.ldf          ONLINE
modeldev              C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\model.mdf            ONLINE
modellog              C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\modellog.ldf         ONLINE
MSDBData              C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBData.mdf         ONLINE
MSDBLog               C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\MSDBLog.ldf          ONLINE
mytestdb              M:\mytest\mytest.mdf                                                                                                                   ONLINE
mytestdb_log       M:\mytest\mytest_1.LDF                                                                                                            ONLINE
distribution          C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\distribution.MDF     ONLINE
distribution_log      C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\distribution.LDF     ONLINE

--登入資料庫

C:\Users\Administrator>sqlcmd -S localhost -U sa -P ********

--移動生產資料庫檔案
將資料庫關閉映象,進行離線
ALTER DATABASE mytest SET PARTNER SUSPEND  --PAUSE MIRROR --將映象進行掛起操作,停止映象
ALTER DATABASE mytest SET OFFLINE

1> alter database mytest modify file(name=mytestdb,filename='D:\mytest\mytest.mdf');  --目錄根據情況調整
2> go

--移動生產資料庫日誌檔案

1> alter database mytest modify file(name=mytestdb_log,filename='D:\mytest\mytest_1.ldf');同檔案一樣
2> go

--移動報表資料庫
ALTER DATABASE BackupData SET OFFLINE


1> alter database BackupData modify file(name=BackupData,filename='D:\mytest\BackupData.mdf');
2> go

1> alter database BackupData modify file(name=BackupData_log,filename='D:\mytest\BackupData.ldf');
2> go

1> quit

--複製檔案到相應的位置,將資料庫online

ALTER DATABASE BackupData SET ONLINE
--CHECK DATABASE BackupData

DBCC CHECKDB (BackupData) WITH PHYSICAL_ONLY

ALTER DATABASE mytest SET ONLINE

--關閉服務
C:\Users\Administrator>Net stop MSSQLSERVER
SQL Server (MSSQLSERVER) 服務正在停止.
SQL Server (MSSQLSERVER) 服務已成功停止。

--複製檔案到相應的位置

--開啟服務
C:\Users\Administrator>Net start MSSQLSERVER
SQL Server (MSSQLSERVER) 服務正在啟動 
SQL Server (MSSQLSERVER) 服務已經啟動成功。

DBCC CHECKDB (mytest) WITH PHYSICAL_ONLY
--開啟映象
ALTER DATABASE mytest SET PARTNER RESUME  --RESUME MIRROR

最後成功實施,主庫檔案遷移,並不影響映象庫!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-1246903/,如需轉載,請註明出處,否則將追究法律責任。

相關文章