Sql-Server
將數據庫恢復到新伺服器的正確方法
我們正在從 sql server 2008 遷移到 2017 並將執行以下操作
- 在新機器上安裝sql server 2017
- 備份舊伺服器上的所有數據庫
RESTORE DATABASE DbName FROM DISK = 'C:\temp\Live\dbname.bak' WITH MOVE 'DbName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\DbName.mdf', MOVE 'DbName_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA\DbName_log.ldf'
如果可能,我想避免使用該
WITH
部分,但這需要我先創建一個空白數據庫並將其版本設置為 2008,然後才能正確恢復。我想我要問的是,在沒有任何數據庫的伺服器上獲取 .bak 文件並將其還原為 db 的最佳方法是什麼。
寧願在不附加/分離的情況下執行此操作
我有大量的數據庫,所以我將創建一個腳本來一次完成所有這些。
我不確定你的問題是什麼。
當您恢復數據庫時,數據 (mdf) 和日誌 (ldf) 文件已經在磁碟的某個地方。
WITH MOVE
只是告訴 SQL 把它們放在哪裡。你不能有一個沒有數據庫的 SQL 伺服器,每次安裝都會有 4 個開箱即用的數據庫,
master
,msdb
,model
&tembdb
,它們是系統數據庫,它們每個都有 mdf 和 ldf 文件,就像你要恢復的使用者數據庫一樣.正如 scsimon 在評論中提到的那樣,您可能不希望您的 SQL 文件位於 C 驅動器上,向我解釋的最佳做法是為 SQL 提供 4 個驅動器,
- 數據驅動器 (mdf)
- 日誌文件驅動器 (ldf)
- Tempdb(用於 tempdb 的 mdf 和 ldf)
- 備份(bak & trn,應至少每晚複製一次)