事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊
適用於:SQL Server
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中還原交易記錄備份。
本主題內容
開始之前:
若要還原交易記錄備份,使用:
備份必須依照它們建立的順序還原。 在還原特定交易記錄備份之前,您必須先還原下列先前的備份,且不回復未提交的交易,即 WITH NORECOVERY:
在特定交易記錄備份之前產生的完整資料庫備份與前次差異備份 (如果有的話)。 在建立完整或差異資料庫備份之前,資料庫必須已在使用完整復原模式或大量記錄復原模式。
在完整資料庫備份或差異備份 (如果您有還原其中一個) 之後及特定交易記錄備份之前產生的所有交易記錄備份。 必須依建立的順序依次套用記錄備份,確保記錄鏈不中斷。
如需交易記錄備份的詳細資訊,請參閱交易記錄備份 (SQL Server ) 和套用交易記錄備份 (SQL Server )。
RESTORE 權限提供給伺服器隨時可以取得其成員資格資訊的角色。 由於資料庫必須是可存取且未損毀,才能夠檢查固定資料庫角色成員資格,但執行 RESTORE 時未必如此;因此, db_owner 固定資料庫角色的成員並沒有 RESTORE 權限。
警告
還原的一般程序是在 [還原資料庫] 對話方塊中選取記錄備份、資料備份以及差異備份。
連線到適當的 Microsoft SQL Server 資料庫引擎執行個體之後,請在 [物件總管] 中,按一下伺服器名稱以展開伺服器樹狀目錄。
展開 [資料庫] ,然後視資料庫而定,選取使用者資料庫,或者展開 [系統資料庫] 並選取一個系統資料庫。
以滑鼠右鍵按一下資料庫,指向 [工作],再指向 [還原],然後按一下 [交易記錄],這樣會開啟 [還原交易記錄] 對話方塊。
注意
如果 [交易記錄] 呈灰色,您可能需要先還原完整備份或差異備份。 使用 [資料庫備份] 對話方塊。
在 [一般] 頁面的 [資料庫] 清單方塊中,選取資料庫名稱。 只會列出處於正在還原狀態的資料庫。
若要指定要還原之備份組的來源與位置,請按一下下列任一個選項:
從先前的資料庫備份
從下拉式清單中選取要還原的資料庫。 此清單僅包含已根據 msdb 備份記錄而備份的資料庫。
從檔案或磁帶
按一下瀏覽 ( ... ) 按鈕,開啟 [選取備份裝置] 對話方塊。 在 [備份媒體類型] 方塊中,選取列出的其中一種裝置類型。 若要選取 [備份媒體] 方塊中的一個或多個裝置,請按一下 [加入] 。
將您要的裝置加入 [備份媒體] 清單方塊後,按一下 [確定] 即可回到 [一般] 頁面。
在 [選取要還原的交易記錄備份] 方格中,選取要還原的備份。 此方格會列出選取的資料庫可用的交易記錄備份。 只有當資料庫的 [第一個 LSN] 大於 [最後一個 LSN] 時,才能使用記錄備份。 記錄備份會依它們所含的記錄序號 (LSN) 順序列出,而且必須按這個順序還原。
下表列出方格的各資料行標頭,並描述各標頭的值。
頁首 | 值 |
---|---|
Restore | 選取的核取方塊表示要還原的備份組。 |
名稱 | 備份組的名稱。 |
元件 | 備份元件:資料庫、檔案或 <(針對交易記錄)。 |
Database | 執行備份所涉及的資料庫名稱。 |
開始日期 | 備份作業開始的日期和時間,以用戶端的區域設定表示。 |
完成日期 | 備份作業完成的日期和時間,以用戶端的區域設定表示。 |
第一個 LSN | 備份組內第一筆交易的記錄序號。 檔案備份空白 |
最後的 LSN | 備份組內最後一個交易的記錄序號。 檔案備份為空白。 |
檢查點 LSN | 在建立備份時,最近的檢查點的日誌序列號。 |
完整 LSN | 最近的完整資料庫備份之記錄序號。 |
Server | 執行備份作業之 Database Engine 執行個體的名稱。 |
使用者名稱 | 執行備份作業之使用者的名稱。 |
大小 | 備份組的大小,以位元組為單位。 |
位置 | 備份組在磁碟區中的位置。 |
到期 | 備份組到期的日期和時間。 |
選取下列其中一個:
時間點
保留預設值 ([最近可能的]),或按一下瀏覽按鈕,開啟 [還原時間點] 對話方塊,選取特定的日期和時間。
標示的交易
還原資料庫至先前標示的交易。 選取此選項會啟動 [選取標示的交易] 對話方塊,顯示一個方格,列出所選交易記錄備份中可用的已標示交易。
依預設,會還原到標示的交易之前,但不包括該交易。 若也要還原標示的交易,請選取 [包含標示的交易] 。
下表列出方格的各資料行標頭,並描述各標頭的值。
頁首 | 價值 |
---|---|
空白<> | 顯示用於選取標記的核取方塊。 |
交易標示 | 使用者在交易被提交時指定的標示交易名稱。 |
日期 | 完成交易的日期和時間。 交易日期和時間是依照 msdbgmarkhistory 資料表中記錄的顯示,而非依照用戶端電腦的日期和時間。 |
說明 | 使用者在交易被認可時指定的標記交易描述(如果有的話)。 |
LSN | 標示之交易的記錄序號。 |
Database | 標記交易提交至的資料庫名稱。 |
使用者名稱 | 提交標示的交易的資料庫使用者名稱。 |
若要檢視或選取進階選項,請按一下 [選取頁面] 窗格中的 [選項] 。
在 [還原選項] 區段中,選項如下:
保留複寫設定 (WITH KEEP_REPLICATION)
將發行資料庫還原至並非建立該資料庫的伺服器時,就會保留複寫設定。
這個選項只能與 [將未認可的交易回退,使資料庫準備好使用...] 選項搭配使用(稍後會說明),相當於使用 RECOVERY 選項來還原備份。
選取這個選項等於在 Transact-SQLRESTORE 陳述式中使用 KEEP_REPLICATION 選項。
在還原每個備份之前先提示
還原每個備份組之前 (第一個之後),這個選項會帶出 [繼續還原] 對話方塊,其中會要求您指出是否要繼續還原順序。 這個對話方塊會顯示下一個媒體集名稱 (如果有)、備份組名稱,以及備份組描述。
您必須為不同的媒體集交換磁帶時,這個選項特別有用。 例如,您可以在伺服器只有一個磁帶裝置時使用。 等到您準備好繼續後,才能按一下 [確定] 。
按一下 [否] 會讓資料庫保持在還原狀態。 在上次的還原完成之後,您可以隨時繼續還原順序。 如果下一個備份是資料或差異備份,請再次使用 [還原資料庫] 工作。 如果下一個備份是記錄檔備份,請使用 [還原交易記錄檔] 工作。
限制對還原資料庫的存取 (WITH RESTRICTED_USER)
僅有 db_owner、 dbcreator或 系統管理員的成員可以使用還原資料庫。
選取這個選項等於在 Transact-SQLRESTORE 陳述式中使用 RESTRICTED_USER 選項。
針對 [復原狀態] 選項,指定資料庫在還原作業之後的狀態。
回復未認可的交易,讓資料庫保持備妥可用。 無法還原其他交易記錄。 (使用復原還原)
復原資料庫。 此選項相等於 Transact-SQL RESTORE 陳述式中的 RECOVERY 選項。
只有當您沒有任何要還原的記錄檔時,才選擇這個選項。
讓資料庫保持不運作,且不回復未認可的交易。 可以還原其他交易記錄。 (恢復但不進入可恢復狀態 - RESTORE WITH NORECOVERY)
讓資料庫處於無法復原狀態,也就是 RESTORING 的狀態。 此選項相等於使用 Transact-SQLRESTORE 陳述式中的 NORECOVERY 選項。
選擇這個選項時,將無法使用 [保留複寫設定] 選項。
重要
若為鏡像或次要資料庫,請一律選取這個選項。
讓資料庫保持唯讀模式。 撤銷未認可的交易,但是將撤銷動作儲存在檔案中,以便能夠反轉復原結果。 (備援還原)
讓資料庫處於待命狀態。 此選項相等於使用 Transact-SQLRESTORE 陳述式中的 STANDBY 選項。
您必須指定一個備援檔案才能選擇這個選項。
選擇性地在 [待命檔案] 文字方塊中指定一個待命檔案。 如果您讓資料庫處於唯讀模式,就需要指定此選項。 您可以瀏覽待命資料庫檔案,或者在文字方塊中輸入其路徑名稱。
重要
我們建議您在每一個 RESTORE 陳述式中,永遠明確指定 WITH NORECOVERY 或 WITH RECOVERY,以消除模稜兩可的情況。 這在撰寫指令碼時尤其重要。
執行 RESTORE LOG 陳述式以套用交易記錄備份,請指定:
交易記錄檔要套用的資料庫名稱。
用於還原交易記錄備份的備份裝置。
NORECOVERY 子句。
此陳述式的基本語法如下:
還原日誌 database_name 從 <backup_device> 並使用 NORECOVERY。
其中,database_name 為資料庫名稱,而 backup_device< 為裝置名稱 (內含要還原的記錄備份)。
對於需要套用的每個交易記錄備份,請重複步驟 1。
依還原順序還原最後一個備份之後,若要復原資料庫,請使用下列其中一個陳述式:
在最後一個 RESTORE LOG 陳述式之中復原資料庫:
RESTORE LOG <database_name> FROM <backup_device> WITH RECOVERY;
GO
請使用單獨的 RESTORE DATABASE 敘述來等待復原資料庫:
RESTORE LOG <database_name> FROM <backup_device> WITH NORECOVERY;
RESTORE DATABASE <database_name> WITH RECOVERY;
GO
等待復原資料庫,可讓您有機會確認是否已經還原所有必要的記錄備份。 通常在執行時間點還原時,建議採用這種方法。
重要
如果您建立鏡像資料庫,請省略復原步驟。 鏡像資料庫必須保留 RESTORING 狀態。
根據預設, AdventureWorks2022
資料庫使用簡單復原模式。 此範例需要修改資料庫以使用完整復原模式,如下所示:
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
下列範例一開始會使用名為 AdventureWorks2022
備份裝置上的完整資料庫備份來還原 AdventureWorks2022_1
資料庫。 此範例接著套用名為 AdventureWorks2022_log
備份裝置上的第一個交易記錄備份。 最後,此範例復原了資料庫。
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorks2022_1
WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorks2022_log
WITH FILE = 1,
NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2022
WITH RECOVERY;
GO
下列範例一開始會使用名為 AdventureWorks2022
備份裝置上的完整資料庫備份來還原 AdventureWorks2022_1
資料庫。 此範例接著逐一套用位於名為AdventureWorks2022_log
備份裝置上的前三個交易記錄備份。 最後,此範例復原了資料庫。
RESTORE DATABASE AdventureWorks2022
FROM AdventureWorks2022_1
WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorks2022_log
WITH FILE = 1,
NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorks2022_log
WITH FILE = 2,
NORECOVERY;
GO
RESTORE LOG AdventureWorks2022
FROM AdventureWorks2022_log
WITH FILE = 3,
NORECOVERY;
GO
RESTORE DATABASE AdventureWorks2022
WITH RECOVERY;
GO
事件
3月31日 下午11時 - 4月2日 下午11時
最大的 SQL、網狀架構和 Power BI 學習事件。 3 月 31 日 - 4 月 2 日。 使用程式代碼 FABINSIDER 來節省 $400 美元。
立即註冊訓練
認證
Microsoft Certified: Azure Database Administrator Associate - Certifications
使用 Microsoft PaaS 關聯式資料庫供應項目管理用於雲端、內部部署和混合關聯式資料庫的 SQL Server 資料庫基礎結構。