還原SQL Server資料庫

最近剛好有一個案例,是我們同仁要把某台備份的資料庫還原到新的主機上,但在還原時遇到一些問題才知道過程沒這麼單純,下面是我操作的過程記錄

前面就不多談了,先建立資料庫在點選還原

Snipaste_2018-11-08_09-28-19.png

原始備份檔沒問題,但要做還原時才發現有問題

Snipaste_2018-11-08_09-29-47.png

會出錯的原因是因為備份的LogicalName不同造成的,所以我們得先找出這個名稱到底是什麼,使用的語法如下

restore filelistonly from disk='備份檔案路徑+檔名.bak'
Snipaste_2018-11-08_09-32-45.png
執行後可以看到這個LogicalName

接著我們再輸入下列語法,紅字部分需更換成自己實際環境的資料庫名稱跟路徑

restore DATABASE
資料庫名稱

-- 要還原資料庫的名稱
from disk='

備份檔案路徑+檔名.bak

' --資料庫備份檔.bak 路徑
with

Snipaste_2018-11-08_09-49-20.png


move

'LogicalName_Data

' to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA<span style="color:#ff0000;">LogicalName.mdf', -- 設定成MSSQL資料庫存放路徑(mdf)
move '

LogicalName_Log

' to 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA<span style="color:#ff0000;">LogicalName.ldf' -- 設定Log 存放路徑
,NoRecovery
,Replace
go

執行後可以看到原本左邊新增的資料庫的狀態已經變了,變成 "

正在還原....

" 的狀態

Snipaste_2018-11-08_09-50-59.png

最後在去做還原就完成了,完成後正在還原的狀態會消失

Snipaste_2018-11-08_09-52-44.png
Snipaste_2018-11-08_09-53-31.png
Snipaste_2018-11-08_09-54-36.png