****欧欧美毛片4,国产午夜精品视频,97视频在线观看免费视频,久久七国产精品

數據恢復咨詢熱線:400-666-3702??

歡迎訪問南京兆柏數據恢復公司,專業數據恢復15年

兆柏數據恢復公司

?行業新聞

?當前位置: 主頁 > 行業新聞

SQLSERVER 恢復命令restore總結

瀏覽量: 次 發布日期:2023-08-17 21:48:32

SQLSERVER 恢復命令restore總結

SQLSERVER的備份與恢復命令:BACKUP和RESTORE是一對孿生兄弟,在前一篇文章中我們介紹了BACKUP命令及其選項的使用,

就像 BACKUP 命令一樣,RESTORE 命令也有很多的選項,理解和掌握這些選項的含義是SQLSERVER成功恢復所必需的。

RESTORE HEADERONLY 選項允許您查看特定備份設備的所有備份的備份頭信息。在大多數情況下,您創建的每個備份只有一個備份存儲在物理文件中,因此您可能只會看到一個標題記錄,但如果您在一個文件中有多個備份,您會看到每個備份的信息。

結果集如下所示,使用 HEADERONLY 時會返回很多重要信息。

右鍵單擊數據庫

選擇“恢復數據庫...”

選擇“從設備:”,然后單擊“...”

單擊“添加”并選擇后備文件,在本例中為“C:\AdventureWorks.BAK”并單擊“確定”

再次點擊“確定”可以看到備份文件的內容,下圖可以看到這個文件有兩個備份

◆2.1.2 RESTORE LABELONLY

RESTORE LABELONLY允許您查看備份設備的備份介質信息。因此,如果備份設備(例如備份文件)有多個備份,您將只能獲得一條記錄,該記錄會為您提供有關介質集的信息,例如用于創建備份的軟件、介質的創建日期等。

結果集如下所示,使用 LABELONLY 時會返回很多重要信息。

◆2.1.3 RESTORE FILELISTONLY

RESTORE FILELISTONLY 選項允許您查看已備份文件的列表。因此,例如,如果您有完整備份,您將看到所有數據文件 (mdf) 和日志文件 (ldf)。此信息只能使用 T-SQL 返回,無法從 sql server Management Studio 獲取此信息。RESTORE FILELISTONLY 選項可以簡單列出備份中包含的文件,如果一個文件中有多個備份并且您沒有指定“WITH FILE = X”,您將只能獲得文件中第一個備份的信息。要獲取文件編號,請使用 RESTORE HEADERONLY。

結果集如下所示。這里有用的東西包括LogicalName 和PhysicalName。

RESTORE DATABASE 選項允許您恢復完整、差異、文件或文件組備份。恢復數據庫時需要對數據庫進行獨占訪問,這意味著沒有其他用戶連接可以使用該數據庫。可以使用 T-SQL 或使用 SQL Server Management Studio 完成 RESTORE DATABASE 選項。

這將使用指定文件恢復數據庫。如果數據庫已經存在,它將覆蓋文件。如果數據庫不存在,它將創建數據庫并將文件恢復到備份中指定的相同位置。可以使用RESTORE FILELISTONLY檢查原始位置。

NORECOVERY 選項在恢復完成后使數據庫處于恢復狀態。這允許您恢復其他文件以使數據庫更新。默認情況下,此選項處于關閉狀態。

要恢復差異備份,必須首先使用 NORECOVERY 選項進行完全恢復。然后才可以恢復差異。

假設我們使用同一個備份文件 AdventureWorks.BAK 來存儲完整備份和差異備份。我們可以使用RESTORE HEADERONLY來查看備份和備份文件中的位置。假設恢復標頭只告訴我們在位置 1 我們有完整備份,在位置 2 我們有差異備份。恢復命令將是。

RESTORE LOG 命令允許您恢復事務日志備份。這些選項包括恢復整個事務日志或恢復到某個時間點或某個事務標記。為了還原事務日志備份,數據庫必須處于還原狀態,這意味著首先使用 NORECOVERY 選項還原完整備份或完整備份和差異備份,以允許額外的備份,例如還原事務日志備份。

恢復事務日志時,您將需要對數據庫的獨占訪問權限,這意味著沒有其他用戶連接可以使用該數據庫。如果數據庫處于恢復狀態,這不是問題,因為沒有人可以使用該數據庫。

可以使用 T-SQL 或使用 SQL Server Management Studio 完成 RESTORE LOG 選項。

要恢復事務日志備份,數據庫需要處于恢復狀態。這意味著您必須恢復完整備份,可能還需要恢復差異備份。

NORECOVERY 選項在還原完成后使數據庫處于還原狀態。這允許您恢復其他文件以使數據庫更新。默認情況下,此選項處于關閉狀態。例如需要恢復兩個事務日志備份,第一個使用 NORECOVERY 而第二個語句不使用,這意味著在恢復完成后可以訪問數據庫。

假設我們使用同一個備份文件 AdventureWorks.TRN 來寫入我們所有的事務日志備份。這不是最佳做法,因為如果文件已損壞,則可能會損壞此文件中的所有備份。我們可以使用RESTORE HEADERONLY來查看備份和備份文件中的位置。假設恢復標頭只告訴我們這個文件中有 3 個事務日志備份,我們想要恢復全部。

RESTORE VERIFYONLY 命令檢查備份以確保它是完整的并且整個備份是可讀的。不執行實際還原,而是讀取文件以確保 SQL Server 在需要使用此備份進行還原時可以讀取它。RESTORE VERIFYONLY 選項是備份完成后檢查每個備份的不錯選擇。不幸的是,這需要額外的處理時間才能完成,但這是一個很好的實踐。以下是您可以使用 T-SQL 和 SSMS 執行此操作的方法。

RESTORE VERIFYONLY 命令將檢查備份文件并返回文件是否有效的消息。如果它無效,這意味著該文件不能用于恢復,并且應該進行新的備份。需要注意的一點是,如果一個文件中有多個備份,它只檢查第一個文件。

此命令將檢查此備份文件中的第二個備份。要檢查備份中的內容,您可以使用RESTORE HEADERONLY并使用 Position 列指定 FILE 編號。

使用維護計劃或通過 SSMS 創建備份時,您可以選擇打開 RESTORE VERIFYONLY 選項,如下所示。這可以對所有備份類型進行。

除了我們前面已經討論過的命令之外,Restore還有許多其他選項可以與這些命令一起使用。

RECOVERY

NORECOVERY

STATS

REPLACE

MOVE

STOPAT

RESTORE ... WITH RECOVERY 選項將數據庫置于可用狀態,因此用戶可以訪問已恢復的數據庫。 當您發出 RESTORE DATABASE 或 RESTORE LOG 命令時,默認使用 WITH RECOVERY 選項。無需指定此選項即可執行此操作。

如果您恢復“完整”備份,則默認設置為 RESTORE WITH RECOVERY,因此在數據庫恢復后,您的最終用戶可以使用它。

如果您正在使用多個備份文件還原數據庫,您需要使用 WITH NORECOVERY 選項進行除最后一次之外的每個還原。

如果您的數據庫仍處于恢復狀態,并且您想在不恢復其他備份的情況下恢復它,您可以發出 RESTORE DATABASE .. WITH RECOVERY 使數據庫聯機供用戶使用。

恢復處于 RECOVERY狀態 如上所述,此選項是默認選項,但您可以按如下方式指定。此選項是默認選項,但您可以按如下方式指定。

對上次備份使用 WITH RECOVERY 恢復多個備份 第一次恢復使用 NORECOVERY 選項,因此可以進行額外的恢復。第二個命令恢復事務日志,然后使數據庫聯機以供最終用戶使用。

使用 SSMS 恢復時,默認使用 WITH RECOVERY 選項,因此無需設置任何內容,但可以在恢復時在選項頁面上設置或更改。

RESTORE ... WITH NORECOVERY 選項將數據庫置于“正在恢復”狀態,因此可以恢復其他備份。當數據庫處于“正在恢復”狀態時,沒有用戶可以訪問數據庫或數據庫的內容。

當您發出 RESTORE DATABASE 或 RESTORE LOG 命令時,WITH NORECOVERY 選項允許您在恢復數據庫之前恢復其他備份文件。因此,這允許您在讓最終用戶訪問數據之前盡可能獲取最新的數據庫。

此選項默認不啟用,因此如果您需要通過恢復多個備份文件來恢復數據庫而忘記使用此選項,則必須重新開始備份過程。

最常見的示例是恢復“完整”備份和一個或多個“事務日志”備份。

恢復完整備份和一個事務日志備份 第一個命令執行恢復并使數據庫處于恢復狀態,第二個命令恢復事務日志備份,然后使數據庫可用。

首先使用 NORECOVERY 還原前兩個備份,然后使用 RECOVERY 進行最后一次還原。

使用 NORECOVERY 還原前三個備份,然后使用 RECOVERY 進行最后還原。

要使用 WITH NORECOVERY 選項恢復數據庫備份,請轉到選項頁面并選擇下面突出顯示的項目。

RESTORE WITH STATS 選項允許您查看還原過程的進度,這個選項也可用于 RESTORE DATABASE、RESTORE LOG、RESTORE VERIFYONLY。RESTORE WITH STATS 選項將讓您了解當前還原過程的進度。此信息以完成百分比表示。默認是每 10% 后顯示,或者可以指定百分比值。

使用默認統計設置恢復完整數據庫 以下將顯示每個 10% 段后的完成百分比。

恢復完整的數據庫,每完成 1% 就會顯示統計信息 這將在每完成 1% 后顯示進度。

使用 SSMS 還原數據庫時,此信息將顯示在下面突出顯示的部分中。默認值為 10%, GUI 中不能更改。

RESTORE ... WITH REPLACE 選項允許您在進行還原時覆蓋現有數據庫。在某些情況下,當您嘗試進行還原時,您可能會收到一條錯誤消息,提示“數據庫的日志尾部 .. 尚未備份”。

RESTORE ... WITH REPLACE 允許您在執行還原時覆蓋現有數據庫,而無需先備份事務日志的尾部。WITH REPLACE 基本上告訴 SQL Server 丟棄事務日志中的所有活動內容并繼續進行還原。

使用 WITH REPLACE 恢復完整備份 下面的命令將恢復數據庫并忽略當前事務日志中的任何活動數據。

要使用 SSMS 進行還原,請執行以下操作,在還原的選項頁面上選擇“覆蓋現有數據庫”。

RESTORE ... WITH MOVE 選項允許您恢復數據庫,但也可以指定數據庫文件(mdf 和 ldf)的新位置。如果您要從該數據庫的備份還原現有數據庫,則不需要這樣做,但如果您要從具有不同文件位置的不同實例還原數據庫,則可能需要使用此選項。

RESTORE ... WITH MOVE 選項將讓您確定數據庫文件的名稱以及創建這些文件的位置。在使用此選項之前,您需要知道這些文件的邏輯名稱以及 SQL Server 的位置。

如果已經存在另一個使用您嘗試還原的相同文件名的數據庫并且該數據庫處于聯機狀態,則還原將失敗。但是如果數據庫由于某種原因不在線并且文件沒有打開,如果你不使用 WITH MOVE 選項,恢復將覆蓋這些文件,所以要小心你不要意外覆蓋好的數據庫文件。

此外,當使用 WITH MOVE 選項時,您需要確保用于 SQL Server 引擎的帳戶有權在您指定的文件夾中創建這些文件。

1、確定備份的內容

您需要做的第一件事是確定文件的邏輯名稱和物理位置。這可以通過使用RESTORE FILELISTONLY命令來完成。這將為您提供邏輯名稱和物理名稱。

例如:

ColumnName

Value - Row 1

Value - Row2

LogicalName

AdventureWorks_Data

AdventureWorks_Log

PhysicalName

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Log.ldf

Type

D

L

2、使用 MOVE 恢復完整備份

假設我們要恢復這個數據庫,但我們希望將數據文件放在“G:\SQLData”文件夾中,將事務日志文件放在“H:\SQLLog”文件夾中。該命令如下所示:

還原完整和事務日志備份 WITH MOVE 只需為第一次還原指定 WITH MOVE,因為此后數據庫將處于“還原”狀態。第二次還原只會將內容寫入正在使用的這個新位置。

要使用 SSMS 進行還原,請執行以下操作,在還原的選項頁面上,更改每個文件的“還原為:”值,如下所示。下面將還原到根文件夾,但您可以根據需要將它們更改為 G:\SQLData\ 和 H:\SQLLog\。

RESTORE ... WITH STOPAT 選項允許您將數據庫恢復到某個時間點。為了使此選項起作用,數據庫需要處于 FULL 或 Bulk-Logged 恢復模式,并且您需要進行事務日志備份。

當數據寫入數據庫時,它首先寫入事務日志,然后在事務完成后寫入數據文件。還原事務日志時,SQL Server 將重播事務日志中的所有事務,并在將數據庫置于可用狀態之前前滾或回滾它需要的事務。

這些事務每一個都有一個 LSN(邏輯序列號)和一個時間戳,因此在還原事務日志時,您可以告訴 SQL Server 在哪里停止讀取需要還原的事務。

需要注意的一點是,如果您的數據庫使用 Bulk-Logged 恢復模型,并且事務日志中存在最小記錄操作(例如批量插入),則您無法使用該事務日志進行時間點恢復。

使用 STOPAT 還原數據庫 這會將 AdventureWorks 數據庫還原到等于“2022 年 10 月 23 日下午 5:31”的時間點。

使用 STOPAT 恢復數據庫,其中恢復模式為 Bulk-Logged 并且存在最低限度記錄的操作

在此示例中,我們有一個完整備份并且事務日志具有最低限度記錄的操作。我們可以嘗試使用以下命令進行時間點恢復:

但是如果有批量操作我們會得到這個錯誤。

恢復操作將完成,但它會恢復整個事務日志備份并使數據庫處于“正在恢復”狀態。然后,您可以恢復其他事務日志或使用RESTORE .. WITH RECOVERY選項使數據庫重新聯機。

還原數據庫時,您需要做的一件事是確保您擁有對數據庫的獨占訪問權限。如果數據庫中有任何其他用戶,則還原將失敗。

◆獲得獨家訪問權

要獲得獨占訪問權限,需要刪除所有其他連接或更改它們所在的數據庫,以便它們不使用您嘗試恢復的數據庫。您可以使用sp_who2或SSMS查看哪些連接正在使用您嘗試恢復的數據庫。

使用 KILL 獲得獨占訪問權的一個選項是使用 KILL 命令來終止正在使用數據庫的每個連接。但要注意您要終止的連接以及可能需要發生的回滾問題。

使用 ALTER DATABASE 另一種選擇是將數據庫置于單用戶模式,然后進行恢復。這也會根據您使用的選項進行回滾,但會一次完成所有連接。

本文詳解了SQLSERVER數據庫恢復命令restore的使用方法和常見選項,結合具體的例子,簡單明了,對于數據庫恢復原理和實戰有一個令人深刻的認識。

來源:

https://www.toutiao.com/article/7160978351744647716/?log_from=7dbe332ea610b_1667351999138

“IT大咖說”歡迎廣大技術人員投稿,投稿郵箱:aliang@itdks.com

來都來了,走啥走,留個言唄~

IT大咖說 | 關于版權

由“IT大咖說(ID:itdakashuo)”原創的文章,轉載時請注明作者、出處及微信公眾號。投稿、約稿、轉載請加微信:ITDKS10(備注:投稿),茉莉小姐姐會及時與您聯系!

感謝您對IT大咖說的熱心支持!

相關推薦

推薦文章

SQL 審核查詢平臺,旨在提升 DBA 的工作效率,支持多種數據庫

大數據研發的分布式計算任務調度系統,基于Spring Boot 開發

IT部門全被裁?不懂業務,花了幾百萬開發的報表系統,根本沒人看

清晰理解Spring Security中的過濾器鏈

對象存儲-MinIo

程序員在面試和日常架構設計中,是否知道微服務會帶來哪些問題?

基于MIT開源協議,分布式數據同步工具,集成可視化頁面

Web版Linux、數據庫、Redis、MongoDB統一管理操作平臺

MySql的InnoDB的三層B+樹可以存儲兩千萬左右條數據的計算邏輯

呼吁停用 C/C++,微軟 Azure CTO 更青睞 Rust

六邊形架構:三個原則和一個實現示例


南京兆柏數據恢復中心 南京兆柏數據恢復中心 南京兆柏數據恢復中心
相關推薦