* 電腦環境:Windows 7 64bit *
* SQL Server Management Studio版本:2008 R2 *
****************************************
情境:server上的db想複製一份到local端做測試開發用
前工作:server上的db已備份出.bak檔
說明:在SQL Server要作資料庫還原時,需要首先建立一個資料庫(舊的也行總之要先有一個資料庫實體),然後才能可以進行資料庫還原
開始動作:
1. 開啟SQL Server Management
2. 在「資料庫」按滑鼠右鍵 > 新建一個資料庫(假設我命名為AC_Manager)
3. 在「AC_Manager」按滑鼠右鍵 > 工作 > 還原 > 資料庫
4. 在接下來的畫面選.bak的路徑要還原
4-1. 發生錯誤備份組包含現有的 '' 資料庫以外的資料庫備份
5. 在「AC_Manager」按滑鼠右鍵 > 工作 > 還原 > 資料庫
6. 選到要用來還原的.bak
7. 最終完成
4-1. 解法:
(1) 「資料庫」按滑鼠右鍵 > 新增查詢
(2) 輸入指令
'資料庫離線
ALTER
DATABASE
[資料庫名稱]
SET
offline
restore
database
資料庫名稱
from
disk =
'.bak的路徑'
with
move
'資料庫名稱'
to
'資料庫名稱.mdf的路徑'
,
move
'資料庫名稱_log'
to
'資料庫名稱_log.LDF的路徑'
,
NoRecovery,
Replace
go
並執行,範例可以看下圖
執行成功了,就會出現「幾秒內成功處理了 多少頁(0.000 MB/sec)
(2-1) 顯示(正在還原....) 很久沒進展
(3) 「資料庫」按滑鼠右鍵 > 新增查詢
'讓資料庫回到線上
ALTER
DATABASE
[資料庫名稱]
SET
online按F5執行
(2-1) 解法:
((1))先查詢卡住的那個資料庫的狀態:select state_desc from sys.databases where name = '資料庫名稱'
顯示RESTORING
((2))使用 REPLACE 選項 (將會遺失 CheckPoint 時間點以外的資料,需謹慎使用)
RESTORE DATABASE PIS_WEBDB
FROM DISK = .bak檔的路徑'
WITH REPLACE, RECOVERY
((2-1))錯誤訊息 5133,層級 16,狀態 1,行 1
檔案 "D:\DataFile\TW_Patents.mdf" 的目錄查閱失敗,有作業系統錯誤 2(系統找不到指定的檔案。)。
訊息 3156,層級 16,狀態 3,行 1
檔案 'TW_Patent' 無法還原到 'D:\DataFile\TW_Patents.mdf'。請使用 WITH MOVE 來識別該檔案的有效位置。
訊息 5133,層級 16,狀態 1,行 1
檔案 "D:\LogFile\TW_Patents_1.LDF" 的目錄查閱失敗,有作業系統錯誤 2(系統找不到指定的檔案。)。
訊息 3156,層級 16,狀態 3,行 1
檔案 'TW_Patent_log' 無法還原到 'D:\LogFile\TW_Patents_1.LDF'。請使用 WITH MOVE 來識別該檔案的有效位置。
訊息 3119,層級 16,狀態 1,行 1
計劃 RESTORE 陳述式的時候識別出問題。先前的訊息可提供詳細資料。
訊息 3013,層級 16,狀態 1,行 1
RESTORE DATABASE 正在異常結束。
RESTORE DATABASE CN_MIX
FROM DISK = '.bak檔路徑'
WITH REPLACE, RECOVERY
((3))再查一次卡住的那個資料庫的狀態:select state_desc from sys.databases where name = '資料庫名稱'
顯示ONLINE
((4))雖然左側(正在還原....)的狀態沒變,重新整理就好了
((2-1))解法:
(((1)))
RESTORE DATABASE CN_MIX
FROM DISK = N'.bak檔路徑'
WITH
File = 1 ,
RECOVERY ,
REPLACE ,
MOVE 'CN_MIX'
TO N'.mdf檔要擺放的路徑',
MOVE 'CN_MIX_Log'
TO N'.ldf檔要擺放的路徑',
STATS = 10
沒有留言:
張貼留言