本文將介紹備份資料庫的兩個小技巧。
SQL Server 提供多種資料庫備份的機制來滿足各種備份的需求,若您想要備份資料庫時,同時產生多個副本,可以利用 MIRROR TO 來同時把資料庫備份到多個位置,對於資料庫備份檔的可用性多了一份保障,
1: BACKUP DATABASE Northwind TO DISK = 'F:\BAK\NW.bak'
2: MIRROR TO DISK = 'H:\BAK\NW1.bak'
3: MIRROR TO DISK = 'I:\BAK\NW2.bak'
4: WITH COPY_ONLY
利用 MIRROR TO 備份資料庫備份結果如下圖所示,可以看出每個檔案一樣大,也就是說要還原時只需利用任何一份備份檔就可以還原資料庫。
若您的資料庫相當龐大,可以在備份資料庫時將之拆成多份,以利提升備份的速度,做法如下:
於【 Object Explorer > 要備份的資料庫上按滑鼠右鍵 > Task > Back Up 】。
根據您要將備份檔拆成幾個檔,重複執行下列步驟數次。
假設您要將備份檔拆成三個檔案,則重複新增並輸入不同備份路徑或備份檔名稱三次,結果如下圖紅色框框所示。
上述步驟也可以利用下列 T-SQL 來達到相同效果。
1: BACKUP DATABASE [Northwind] TO DISK = N'F:\BAK\NW1.bak'
2: ,DISK = N'F:\BAK\NW2.bak'
3: ,DISK = N'F:\BAK\NW.bak'
查看備份路徑,的確 SQL Server 依照我們的需求產生了三個備份檔,與 MIRROR TO 產生相同大小備份檔的複本不同的是每個備份檔的大小都比 MIRROR TO 來的小,利用這種方式備份資料庫,還原時這三個檔案缺一不可。
假設您只利用 NW.bak 嘗試還原資料庫,會發生如下圖的錯誤:
必須使用下列 T-SQL 才能還原資料庫。
1: RESTORE DATABASE [Northwind] FROM DISK = N'F:\BAK\NW1.bak'
2: , DISK = N'F:\BAK\NW2.bak'
3: , DISK = N'F:\BAK\NW.bak'
或是在 SSMS 中把上述拆成三個備份檔都加入到 Backup Device 中才能順利還原。
【參考資料】