2011-06-22 374 views
4

我正在使用包括77個數據庫的SQL Server 2000,並且我想將它們遷移到新的SQL Server 2008 R2。SQL Server 2000到SQL Server 2008 R2遷移

我可以單獨使用附加或恢復命令執行此操作。是否有任何腳本可將77個數據庫遷移到安裝了SQL Server 2008 R2的新服務器。

謝謝

回答

0

你可以使用一個軟件工具,如Sql Compare

如果沒有,我會單獨編寫腳本。

你可以圍繞內部sysobjects table運行並構建一個組合腳本,但我不會。

+0

SQL比較是不是遷移工具,更多的是 「發行腳本」 的工具。那麼數據呢? – gbn

+0

Sql數據比較通常是來自Red Gate的相同包的一部分(它曾被稱爲實用帶 - 就像蝙蝠俠(?!)) - 傳輸數據。 – amelvin

+0

是的,我每天都用它(開發包),但它仍然不是一個遷移工具。 – gbn

2

你可以在一個循環中編寫一個腳本來備份和只要備份文件到兩個服務器可見的另一臺服務器上恢復

。這將允許WITH MOVE選項允許不同的驅動器/文件夾。

備份比的MDF/LDFS小太較少複製

2

您將需要出示自己的腳本,你會真的想要做多的備份和恢復。 您可能想要做的其他事情是運行DBCC UpdateUsage,設置兼容級別,更新統計信息,使用Data_Purity運行DBCC CheckDB,將頁面驗證選項更改爲校驗和。您也可以複製和全文目錄來處理。所有這些東西都可能需要進入你的腳本。

您需要設置一個腳本來執行以前在數據庫中提到的所有/某些/更多事項,然後擴展您的腳本以遍歷所有數據庫。這可以使用批處理文件或PowerShell文件的組合並利用sqlcmd來完成。

例如,這是我在將備份恢復到新服務器後運行的一個腳本。這是通過sqlcmd從Windows批處理文件中調用的。

​​

GO

ALTER DATABASE [$(DATABASENAME)] SET COMPATIBILITY_LEVEL = 100

ALTER DATABASE [$(DATABASENAME)] SET PAGE_VERIFY CHECKSUM WITH NO_WAIT GO

用[$ (DATABASENAME)]

Go 聲明@DBO sysname

- 誰是sa用戶

從sys中選擇@DBO = name 。server_principals 凡principal_id = 1

--assign SA數據庫所有者

EXEC( 'sp_changedbowner的 ''' + @DBO + '' '') 去

--fix計數

DBCC UPDATEUSAGE(0) 去 --check分貝包括列值完整性

DBCC CHECKDB(0)使用DATA_PURITY,ALL_ERRORMSGS,NO_INFOMSGS 去

--make確保統計信息是最新的

EXEC sp_updatestats

轉到

+0

是否有任何腳本,我可以使用它爲我的環境。 –

+0

我可以單獨編寫一個腳本。它不適用於所有數據庫+77 –

相關問題