將 Mssql 數據庫從不同實例遷移到新伺服器
我在 3 個不同的伺服器上有 3 個 Sql (2008 R2) 實例。版本為(10.50.2550.0 SP1 標準版(64 位)、10.50.2550.0 SP1 標準版(64 位))。目標是將所有數據庫和登錄遷移到新伺服器,我們只是購買 Sql server 2012。
我不知道如何處理,我嘗試使用複制數據庫嚮導,但它一直失敗。如果我決定備份每個數據庫並將它們恢復到新的伺服器,我不知道如何遷移登錄。
處理這種情況的最佳方法是什麼?
很抱歉造成混亂:(有關該問題的更多詳細資訊)
- 要移動的數據庫數量:10
- 複製數據庫嚮導期間列出的錯誤:
第 60 行:
OnError,DUPFAIDS,NT AUTHORITY\SYSTEM,DUAPPSRV1_EXAPPSVR1_DUPFAIDS_PFAIDS_Transfer Objects 任務,{8F0C82BB-4C5D-4796-BE75-BAB033C59039},{3818CD1B-9685-46B7-AFE2-AE0FE962DA03},
2014 年 12 月 3 日下午 12:10:15,2014 年 12 月 3 日下午 12:10:15,0,0x,錯誤:errorCode=-1073548784
描述=執行查詢“——————————————– ——…”失敗並出現以下錯誤:“無效的對象名稱’xwd_window_disabled_objects’。”。
可能的失敗原因:查詢有問題,“ResultSet”屬性設置不正確,參數設置不正確,或者連接沒有正確建立。**
按照建議備份和還原數據庫。然後在舊伺服器上執行此 microsoft 腳本 ( https://support.microsoft.com/kb/918992 ) 以生成腳本以在新伺服器上創建登錄。由於您有兩個源伺服器,請務必仔細檢查您的腳本,以確保沒有任何重複條目或其他問題。
遷移數據庫有很多不同的方法。備份和恢復是最常用的推薦方式,但如果您有超過 100 個數據庫,您可能需要編寫腳本來分離和附加數據庫。我已經成功地使用它來將大量(數百個)數據庫遷移到新伺服器:
@ECHO ON set controlfile=control.txt set newipmdf=\\newserver\g$ set newipldf=\\newserver\e$ set oldserver=oldserver\Prod1 set oldmdfpath=d:\prod1 set newmdfpath=g:\data set copymdfpath=m:\data set newserver=newserver set oldlogpath=e:\prod1 set newlogpath=e:\log set copylogpath=l:\log set movedmdfpath=%oldmdfpath%\moved set movedldfpath=%oldlogpath%\moved mkdir %movedmdfpath% mkdir %movedldfpath% net use m: %newipmdf% net use l: %newipldf% SETLOCAL DISABLEDELAYEDEXPANSION FOR /F %%L IN (%controlfile%%) DO ( SET "line=%%L" SETLOCAL ENABLEDELAYEDEXPANSION ECHO !line! sqlcmd -E -S!oldserver! -Q"EXEC master.dbo.sp_detach_db @dbname = N'!line!'" copy "!oldmdfpath!\!line!.mdf" !copymdfpath! copy "!oldlogpath!\!line!_log.ldf" !copylogpath! sqlcmd -E -S!newserver! -Q"CREATE DATABASE [!line!] ON ( FILENAME = N'!newmdfpath!\!line!.mdf' ),( FILENAME = N'!newlogpath!\!line!_log.ldf' ) FOR ATTACH" move "!oldmdfpath!\!line!.mdf" !movedmdfpath! move "!oldlogpath!\!line!_log.ldf" !movedldfpath! ENDLOCAL ) ENDLOCAL net use m: /z net use l: /z
至於登錄,我無法幫助您輸入密碼,但您應該能夠獲得使用者名列表:
SELECT [name], type, type_desc FROM [master].[sys].[server_principals] where is_disabled=0 and type in ('S','U')