將 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 2008還原到某個時點SQLServer
- 使用RMAN還原資料庫到某個時間點資料庫
- 【備份恢復】下:還原和恢復資料庫(即將一個庫還原到另外一個庫)資料庫
- 【備份恢復】上:還原和恢復資料庫(即將一個庫還原到另外一個庫)資料庫
- 簡單恢復模式執行資料庫完整還原模式資料庫
- SQL Server 資料庫備份還原和資料恢復SQLServer資料庫資料恢復
- 簡單恢復模式下執行資料庫完整還原模式資料庫
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- SQL Server無日誌資料庫恢復模式SQLServer資料庫模式
- 還原SQL Server資料庫SQLServer資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 【SQL Server】--SQL Server資料庫bak檔案還原SQLServer資料庫
- 完整恢復模式下執行檔案還原模式
- SQL Server 系統資料庫恢復SQLServer資料庫
- sql server 資料庫還原問題SQLServer資料庫
- SQL Server 2008選擇資料庫恢復模式SQLServer資料庫模式
- SQL Server 2008資料庫恢復模式詳解SQLServer資料庫模式
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 如何將Azure SQL 資料庫還原到本地資料庫例項中SQL資料庫
- 使用RMAN還原和恢復資料庫資料庫
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 備份和恢復SQL Server資料庫SQLServer資料庫
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- SQL Server 2008系統資料庫的恢復模式SQLServer資料庫模式
- oracle資料恢復還原Oracle資料恢復
- 利用Log還原資料庫到某一時間點資料庫
- [Sql server]資料庫備份的三個恢復模型(轉)SQLServer資料庫模型
- 完整恢復模式下聯機還原只讀檔案模式
- 完整恢復模式下主檔案組離線還原模式
- SQL Server 2008 完整恢復模式下備份SQLServer模式
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 如何將 Mac 恢復還原到以前的日期Mac
- SQL Server 2008還原與恢復概述SQLServer