將 SQL Server 資料庫還原到某個時點(完整恢復模式)
本主題說明如何使用 SQL Server 2014 或 SQL Server Management Studio 將資料庫還原到 Transact-SQL中的某個時間點。
本主題僅與使用完整恢復模式或大容量日誌恢復模式的 SQL Server 資料庫有關。
重要
在大容量日誌恢復模式下,如果日誌備份包含大容量更改,則不能使用時點恢復方式恢復到該備份內的某個點。 必須將資料庫恢復到事務日誌備份的結尾。
一、使用 SQL Server Management Studio
將資料庫還原到時間點
1.在“物件資源管理器”中,連線到相應的 SQL Server 資料庫引擎例項,然後展開伺服器樹。
2.展開 “資料庫” 。 根據具體的資料庫,選擇一個使用者資料庫,或展開“系統資料庫”並選擇一個系統資料庫。
3.右鍵單擊資料庫,指向“任務” ,再指向“還原” ,然後單擊“資料庫” 。
4.在 “常規” 頁上,使用 “源” 部分指定要還原的備份集的源和位置。 選擇以下選項之一:
.“資料庫”
從下拉選單中選擇要還原的資料庫。 此列表僅包含已根據 msdb 備份歷史記錄進行備份的資料庫。
.“裝置”
單擊“瀏覽”按鈕 ( ... ) 以開啟“選擇備份裝置” 對話方塊。 在 “備份介質型別” 框中,從列出的裝置型別中選擇一種。 若要為 “備份介質” 框選擇一個或多個裝置,請單擊 “新增” 。
將所需裝置新增到 “備份介質” 列表框後,單擊 “確定” 返回到 “常規” 頁。
在“源:裝置:資料庫”列表框中,選擇應還原的資料庫名稱**。
注意 :此列表僅在選擇了 “裝置” 時才可用。 只有在所選裝置上具有備份的資料庫才可用。
5.在 “目標” 部分中, “資料庫” 框自動填充要還原的資料庫的名稱。 若要更改資料庫名稱,請在 “資料庫” 框中輸入新名稱。
6.單擊 “時間線” 以訪問 “備份時間線” 對話方塊。
7.在 “還原到” 部分中,單擊 “具體日期和時間” 。
8.使用 “日期” 和 “時間” 框或滑動條來指定應停止還原的具體日期和時間。 單擊 “確定” 中建立非聚集索引。
9.指定具體時點後,資料庫恢復顧問確保只有需要還原到該時點的那些備份在 “要還原的備份集” 網格的 “還原” 列中處於選中狀態。 這些選定的備份構成了為您的時點還原建議的還原計劃。 應當僅使用選定的備份進行時點還原操作。
10.在 “選項” 頁的 “還原選項” 皮膚中,可以根據您的實際情況選擇下列任意選項:
覆蓋現有資料庫(WITH REPLACE)
保留複製設定(WITH KEEP_REPLICATION)
限制對還原資料庫的訪問(WITH RESTRICTED_USER)
11.為 “恢復狀態” 框選擇一個選項。 此框確定還原操作之後的資料庫狀態。
RESTORE WITH RECOVERY 是預設行為,它通過回滾未提交的事務,使資料庫處於可以使用的狀態。 無法還原其他事務日誌。 如果您要立即還原所有必要的備份,則選擇此選項。
RESTORE WITH NORECOVERY 不對資料庫執行任何操作,不回滾未提交的事務。 可以還原其他事務日誌。 除非恢復資料庫,否則無法使用資料庫。
RESTORE WITH STANDBY 使資料庫處於只讀模式。 它撤消未提交的事務,但將撤消操作儲存在備用檔案中,以便能夠還原恢復結果。
12.如果對於選擇的時間點是必需的,則選擇“還原前進行結尾日誌備份” 。 無需修改此設定,但可以選擇備份日誌尾部(即使不需要)。
13.如果存在與資料庫的活動連線,則還原操作可能會失敗。 選中 “關閉現有連線” 以確保關閉 Management Studio 和資料庫之間的所有活動連線。 此核取方塊可在執行還原操作之前將資料庫設定為單使用者模式,並在該操作完成後將資料庫設定為多使用者模式。
14.如果要在每個還原操作之間進行提示,請選擇 “還原每個備份之前進行提示” 。 除非資料庫過大並且您要監視還原操作的狀態,否則通常沒有必要選中該選項。
二、使用 Transact-SQL
Before you begin
始終從日誌備份還原到指定時間。 在還原序列的每個 RESTORE LOG 語句中,必須在相同的 STOPAT 子句中指定目標時間或事務。 作為時點還原的先決條件,必須首先還原其端點早於目標還原時間的完整資料庫備份。 只要您之後還原每個隨後日誌備份(到達和包括包含目標時間點的日誌備份),該完整資料庫備份就可以早於最近的完整資料庫備份。
如果資料備份太臨近指定的目標時間,而需幫助識別要還原哪個資料庫備份,則可以在 RESTORE DATABASE 語句中可選地指定 WITH STOPAT 子句以引發錯誤。 始終會還原完整資料備份,即使該資料備份包含目標時間也同樣如此。
基本 Transact-SQL 語法
RESTORE LOG database_name FROM < 備份裝置 > WITH STOPAT = time , 恢復...
恢復點是最新或之前發生的事務提交datetime由指定的值時間。
若要只還原在特定時間點之前所做的修改,請為還原的每個備份指定 WITH STOPAT = time 。 這樣確保了不會超出目標時間。
1.連線到您要還原資料庫的伺服器例項。
2.執行使用 NORECOVERY 選項的 RESTORE DATABASE 語句。
備註
如果部分還原順序不包括任何 FILESTREAM 檔案組,則不支援時間點還原。 可以強制該還原順序以繼續執行操作。 但在 RESTORE 語句中省略的 FILESTREAM 檔案組將永遠無法還原。 若要強制執行時點還 原,請指定 CONTINUE_AFTER_ERROR 選項以及 STOPAT、STOPATMARK 或 STOPBEFOREMARK 選項,還必須在隨後的 RESTORE LOG 語句中指定後面的三個選項。 如果指定 CONTINUE_AFTER_ERROR,則部分還原順序將成功,但 FILESTREAM 檔案組將不可恢復。
3.還原上次差異資料庫備份(如果有),而不恢復資料庫 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
4.應用每個事務日誌備份中相同的順序在其中建立了它們,指定想要停止還原日誌的時間 (RESTORE DATABASE database_name FROM < 備份裝置 > WITH STOPAT = time , 恢復)。
備註
RECOVERY 和 STOPAT 選項。 如果事務日誌備份不包含要求的時間(例如,如果指定的時間超出了事務日誌所包含的時間範圍),則會生成警告,並且不會恢復資料庫。
示例 (Transact-SQL)
下面的示例將資料庫還原到它在 12:00 AM 的 April 15, 2020 的狀態,並顯示涉及多個日誌備份的還原操作。 在備份裝置上,要還原的完整資料庫備份 AdventureWorksBackups是裝置上的第三個備份集 (FILE = 3),第一個日誌備份是第四個備份集 (FILE = 4),第二個日誌備份是第五個備份集 (FILE = 5)。
RESTORE DATABASE AdventureWorks FROM AdventureWorksBackups WITH FILE=3, NORECOVERY; RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=4, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM'; RESTORE LOG AdventureWorks FROM AdventureWorksBackups WITH FILE=5, NORECOVERY, STOPAT = 'Apr 15, 2020 12:00 AM'; RESTORE DATABASE AdventureWorks WITH RECOVERY; GO
更多內容請關注微信公眾號:DBA每日記
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69950231/viewspace-2672372/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLSERVER完整資料庫還原(完整恢復模式)SQLServer資料庫模式
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 如何將Azure SQL 資料庫還原到本地資料庫例項中SQL資料庫
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 如何建立和還原SQL Server 2000資料庫?SQLServer資料庫
- 如何建立和還原SQL Server 2005資料庫?SQLServer資料庫
- 還原sql server 2000資料庫的坑,不同版本資料庫SQLServer資料庫
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 伺服器SQL server資料庫被加密恢復方案伺服器SQLServer資料庫加密
- 如何將SQL Server 2000備份的資料庫檔案還原(升級)為SQL Server 2005或更高版本的資料庫?SQLServer資料庫
- 伺服器sql server 資料恢復伺服器SQLServer資料恢復
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 如何將 Mac 恢復還原到以前的日期Mac
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- 資料庫映象 (SQL Server)操作模式資料庫SQLServer模式
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- DM7使用DMRMAN恢復資料庫到指定時間點/LSN資料庫
- sql server資料庫錯誤資料恢復(資料庫連線失效,無法附加查詢)SQLServer資料庫資料恢復
- 通過事務日誌恢復SqlServer資料庫到一個特定的時間點SQLServer資料庫
- 【北亞資料恢復】vmfs還原快照操作導致SqlServer資料庫資料丟失的資料恢復資料恢復SQLServer資料庫
- 【北亞資料恢復】通過碎片拼接技術恢復XenServer伺服器磁碟中SQL Server資料庫資料資料恢復Server伺服器SQL資料庫
- 詳解SQL Server 2012資料庫備份與還原的教程SQLServer資料庫
- 【資料庫資料恢復】SQL SERVER資料庫MDF (NDF)或LDF損壞問題如何解決?資料庫資料恢復SQLServer
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- SQL Server中使用臨時表進行資料備份與恢復SQLServer
- DM7使用DMRMAN執行資料庫還原和恢復資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復