SQLSERVER完整資料庫還原(完整恢復模式)
資料庫完整還原的目的是還原整個資料庫。 整個資料庫在還原期間處於離線狀態。
在資料庫的任何部分變為聯機之前,必須將所有資料恢復到同一點,即資料庫的所有部分都處於同一時間點並且不存在未提交的事務。
在完整恢復模式下,還原資料備份之後,必須還原所有後續的事務日誌備份,然後再恢復資料庫。
您可以將資料庫還原到這些日誌備份之一的特定 恢復點 。 恢復點可以是特定的日期和時間、標記的事務或日誌序列號 (LSN)。
還原資料庫時,特別是在完整恢復模式或大容量日誌恢復模式下,您應使用一個還原順序。 還原順序 由通過一個或多個還原階段來移動資料的一個或多個還原操作組成。
一、將資料庫還原到故障點
通常,將資料庫恢復到故障點分為下列基本步驟:
1.備份活動事務日誌(稱為日誌尾部)。 此操作將建立結尾日誌備份。 如果活動事務日誌不可用,則該日誌部分的所有事務都將丟失。
重要
在大容量日誌恢復模式下,備份任何包含大容量日誌操作的日誌都需要訪問資料庫中的所有資料檔案。 如果無法訪問該資料檔案,則不能備份事務日誌。
在這種情況下,您必須手動重做自最近備份日誌以來所做的所有更改。
2.還原最新完整資料庫備份而不恢復資料庫 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
3.如果存在差異備份,則還原最新的差異備份而不恢復資料庫 (RESTORE DATABASE database_name FROM differential_backup_device WITH NORECOVERY)。
還原最新差異備份可減少必須還原的日誌備份數。
4.從還原備份後建立的第一個事務日誌備份開始,使用 NORECOVERY 依次還原日誌。
5.恢復資料庫 (RESTORE DATABASE database_name WITH RECOVERY)。 此步驟也可以與還原上一次日誌備份結合使用。
下圖說明此還原順序。 故障發生後 (1),將建立結尾日誌備份 (2)。 接著,將資料庫還原到該故障點。
這涉及到還原資料庫備份、後續差異備份以及在差異備份後執行的每個日誌備份,包括結尾日誌備份。
基本 TRANSACT-SQL RESTORE 語法
上圖中還原順序的基本 RESTORETransact-SQL 語法如下:
RESTORE DATABASE database FROM full database backup WITH NORECOVERY;
RESTORE DATABASE database FROM full_differential_backup WITH NORECOVERY;
RESTORE LOG database FROM log_backup WITH NORECOVERY;
對於其他每個日誌備份,重複此還原日誌步驟。
RESTORE DATABASE database WITH RECOVERY;
示例:恢復到故障點 (Transact-SQL)
以下 Transact-SQL 示例顯示了將資料庫還原到故障點的還原順序中的基本選項。 此示例將建立資料庫的結尾日誌備份。
接下來,此示例將還原完整資料庫備份和日誌備份,然後還原結尾日誌備份。 此示例將在最後的單獨步驟中恢復資料庫。
USE master;
--Create tail-log backup.
BACKUP LOG AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH NORECOVERY;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=1,
NORECOVERY;
--Restore the regular log backup (from backup set 2).
RESTORE LOG AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=2,
NORECOVERY;
--Restore the tail-log backup (from backup set 3).
RESTORE LOG AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorksFullRM.bak'
WITH FILE=3,
NORECOVERY;
GO
--recover the database:
RESTORE DATABASE AdventureWorks2012 WITH RECOVERY;
GO
二、將資料庫還原到日誌備份中的某個時間點
在完整恢復模式下,完整的資料庫還原通常可恢復到日誌備份中的某個時間點、標記的事務或 LSN。
但是,在大容量日誌恢復模式下,如果日誌備份包含大容量更改,則不能進行時點恢復。
時點還原方案示例
下例假定針對一個關鍵任務型資料庫系統,每天午夜建立一個完整資料庫備份;
從星期一到星期六,每小時建立一個差異資料庫備份;全天每 10 分鐘建立一個事務日誌備份。
若要將資料庫還原到星期三凌晨 5:19 的狀態, 請執行以下操作:
1.還原星期二午夜建立的完整資料庫備份。
2.還原星期四凌晨 5:00 建立的差異資料庫 備份。
3.應用星期四凌晨 5:10建立的事務日誌 備份。
4.應用星期三凌晨 5:20 建立的事務日誌 備份,指定恢復程式僅應用到凌晨 5:19 之前發生的事務。
或者,如果需要將資料庫還原到它在星期四凌晨 3:04 的狀態, 而在星期四凌晨 3:00 建立的差異資料庫備份已不可用,
則執行下列操作:
1.還原在星期三午夜建立的資料庫備份。
2.還原星期四凌晨 2:00 建立的差異資料庫 備份。
3.應用從星期四凌晨 2:10 到 3:00 建立的所有事務 日誌 備份。
4.應用星期四凌晨 3:10 建立的事務日誌 備份,停止凌晨 3:04 的恢復程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950231/viewspace-2672222/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將 SQL Server 資料庫還原到某個時點(完整恢復模式)SQLServer資料庫模式
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- SqlServer資料庫資料恢復報告SQLServer資料庫資料恢復
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- Navicat還原資料庫不完整的解決辦法資料庫
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- 【北亞資料恢復】sqlserver資料庫被加密的資料恢復案例分享資料恢復SQLServer資料庫加密
- sqlserver資料庫的備份還原SQLServer資料庫
- sqlserver資料庫備份,還原操作SQLServer資料庫
- Sqlserver資料庫使用 .bak 檔案還原資料庫SQLServer資料庫
- MySQL使用mysqldump+binlog完整恢復被刪除的資料庫(轉)MySql資料庫
- 誤刪除儲存SqlServer資料庫資料恢復SQLServer資料庫資料恢復
- DM7使用DMRMAN執行資料庫還原和恢復資料庫
- SQLServer資料庫恢復掛起的解決辦法SQLServer資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 3.1.5.7 啟動例項、掛載資料庫並啟動完整的媒體恢復資料庫
- sqlserver資料庫還原儲存過程指令碼SQLServer資料庫儲存過程指令碼
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 資料庫 資料庫的完整性資料庫
- 北亞資料恢復-WINDOWS還原系統後原分割槽丟失的資料恢復方案資料恢復Windows
- 資料恢復記錄:硬碟分割槽損壞修復SqlServer資料庫過程資料恢復硬碟SQLServer資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 【北亞資料恢復】誤操作分割槽損壞導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 資料庫修復資料恢復資料庫資料恢復
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 華納雲 sqlserver資料庫備份及還原的方法SQLServer資料庫
- 誤操作還原VMware虛擬機器資料恢復虛擬機資料恢復
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【虛擬機器資料恢復】EXSI虛擬機器誤還原快照的資料恢復案例虛擬機資料恢復
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL