MSSQL分次還原指令碼,SQLSERVER段落指令碼_MsSql

來源:互聯網
上載者:User

分次還原保持進行檢查,以便確保資料庫在結束時將是一致的。 在還原順序結束後,如果恢複的檔案有效並且與資料庫一致,則恢複的檔案將直接變為聯機狀態。

分次還原適用於所有復原模式,但在完整復原模式和大量記錄復原模式下比在簡單復原模式下更靈活。

所有的分次還原都從稱為“部分還原順序”的初始還原順序開始。 部分還原順序至少還原和恢複主檔案組,在簡單復原模式下還會還原和恢複所有讀/寫檔案組。 在分次還原順序中,整個資料庫都必須離線。 隨後,資料庫將處於聯機狀態,並且還原的檔案組都處於可用狀態。 但是,所有未還原的檔案組都將保持離線狀態,無法訪問。 不過,對於任何離線檔案組,都可以在以後通過檔案還原進行還原並進入聯機狀態。

無論資料庫採用何種復原模式,部分還原順序都從 RESTORE DATABASE 語句開始,該語句將還原完整備份並指定 PARTIAL 選項。 PARTIAL 選項總是會啟動一個新的分次還原;因此,在部分還原順序的初始語句中,只能指定 PARTIAL 一次。 當部分還原順序完成並且資料庫聯機後,由於餘下檔案的恢複被延遲,這些檔案的狀態將變為“恢複已掛起”。

此後,分次還原通常包括一個或多個還原順序,這些還原順序稱為“檔案組還原順序”。 您可以等待執行特定的檔案組還原順序,等待的時間長短由您決定。 每個檔案組還原順序將一個或多個離線檔案組還原並恢複到與資料庫一致的點。 檔案組還原順序的時間安排和數量取決於您的恢複目標、您想要還原的離線檔案組數量以及每個檔案組還原順序中還原的離線檔案組的數量。

執行分次還原的精確要求取決於資料庫的復原模式。

下面我們來看看執行個體:

--分次還原:資料庫損壞範圍比較大,跨多個資料檔案甚至跨檔案組的時候,我們不得不恢複整個資料庫。--這時如果資料庫特別大,資料庫恢復將會很長。但我們可以使用SQL Server提供的分次還原,來逐步恢複資料庫。--首先備份尾日誌:BACKUP LOG [AdventureWorks] TO DISK =N'D:\BACKUP_TEST\LOG_BACK_TAIL.trn' WITH NO_TRUNCATE ,NORECOVERY,COMPRESSION,STATS=10--部分還原主檔案組PRIMARY:RESTORE DATABASE [AdventureWorks] FILEGROUP=N'PRIMARY' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH PARTIAL,NORECOVERY,STATS=10--還原副檔案組MST:RESTORE DATABASE [AdventureWorks] FILEGROUP=N'MST' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY,STATS=10--依次還原日誌:RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY,STATS=10RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY,STATS=10--還原尾日誌並恢複RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY,STATS=10--此時AdventureWorks資料庫中位於PRIMARY和MST檔案組中的檔案已經可以訪問。--但是位於其他檔案組如:TRN檔案組中的表還不能訪問。--訊息 8653,層級 16,狀態 1,第 2 行--查詢處理器無法為表或視圖“****”產生計劃,因為該表駐留在不處於聯機狀態的檔案組中。--接下來還原副檔案組TRN:RESTORE DATABASE [AdventureWorks] FILEGROUP=N'TRN' FROM DISK=N'D:\BACKUP_TEST\AD_FULL.bak' WITH NORECOVERY,STATS=10--如果資料庫不是企業版,以上還原將會提示“尚未備份資料庫 "AdventureWorks" 的日誌尾部。”--需要再次備份一次日誌尾部,意味著還原副檔案組TRN的時候整個資料庫都處於正在還原狀態。所以對於非企業版而言,只能離線分次還原,個人覺得意義不是很大......--依次還原日誌:RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_1.TRN' WITH NORECOVERY,STATS=10RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_2.TRN' WITH NORECOVERY,STATS=10--還原尾日誌並恢複RESTORE LOG [AdventureWorks] FROM DISK=N'D:\BACKUP_TEST\LOG_BACK_TAIL.TRN' WITH RECOVERY,STATS=10--此時位於副檔案組TRN中的表已經可以訪問了。--分次還原全部完成

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.