通過《SQL Server Database Backup和還原認識和總結(一)》,相信您對資料備份和還原有了一個更深入的認識,在上文中我沒有對交易記錄做剖析,在此推薦宋沄劍的文章,對交易記錄做了比較詳細的講解:http://www.jb51.net/article/31038.htm。本文將針對上文繼續進行資料備份和還原講解,主要講解備份與還原的一些關鍵選項。
Database Backup選項
備份資料庫時,有幾個備份選項需要瞭解一下,覆蓋介質、交易記錄等。談到覆蓋介質時,必須先對這個概念有所瞭解,不然無從談起。
● 介質集 (media set):備份介質(磁帶或磁碟檔案)的有序集合,使用固定類型和數量的備份裝置向其寫入了一個或多個備份操作。介質集所使用的備份裝置的數量決定了介質集中的介質簇的數量。 例如,如果介質集使用兩個非鏡像備份裝置,則該介質集包含兩個介質簇。通常,建立介質集後,後續備份操作將依次向介質集追加其備份組。
● 介質簇 (media family):在介質集中的單個非鏡像裝置或一組鏡像裝置上建立的備份。
● 備份組 (backup set):成功的備份操作將向介質集中添加一個備份組。
大致瞭解以上概念後,回到備份選項上來:
◆ 備份到現有介質集-追加到現有備份組
如果要將Database Backup到磁碟上,那麼選擇磁碟後(可以選擇一個或多個磁碟機,也可選擇磁帶機裝置,在此以磁碟機為例),如果保持預設【備份到現有介質集-追加到現有備份組】SQL Server將自動建立一個介質集(備份介質(磁碟檔案或磁帶)的每個卷都包含媒體標頭,媒體標頭是在第一次使用磁帶(或磁碟)執行備份操作時建立的,它將包含介質的名稱、介質集的唯一標識號、介質簇的唯一標識號等等),然後再將備份組添加到介質集中。例如上篇文章中首次完整備份,SQL Server將自動建立一個介質集,並將備份組添加到介質集中,接著再備份交易記錄檔,此交易記錄檔備份組將被追加到現有備份組,最終備份檔案我們看到的只是一個備份檔案MyTest.bak,但還原時選擇此檔案後,要還原的備份組列表將顯示先後備份的備份組,如完整備份集、第一次交易記錄備份集、第二次交易記錄備份集等。
◆ 備份到現有介質集-覆蓋所有現有備份組
此選項將覆蓋介質上的所有備份組並保留媒體標頭(如果有)。 如果沒有媒體標頭,則建立一個標題。覆蓋備份時,保留現有的所有媒體標頭,同時將新的備份建立為備份裝置中的第一個備份。
存在下列任一條件時不覆蓋備份介質:
● 介質上的現有備份尚未到期。 (如果指定 SKIP,則不檢查到期。)
到期日期將指定備份到期的日期,並可以由另一個備份覆蓋。 建立備份時可以指定到期日期。 預設情況下,到期日期由使用 sp_configure 設定的 media retention 選項確定。
● 介質名稱(如果有)與備份介質上的名稱不匹配。
● 介質名稱是一個描述性名稱,用於方便地識別介質。
綜上所述,它們的最大區別是,一個是向現在備份組追加備份組,一個是將現有備份組覆蓋,即以前儲存在該備份組裡的資訊將無法重新讀取。
圖1:備份時選擇【追加到現有備份組】,還原時要還原的備份組裡顯示的,每次追加的備份組。
圖2:備份時選擇【覆蓋所有現有備份組】,還原時要還原的備份組裡顯示的是已覆蓋的備份組,以前追加的備份組已被覆蓋。
◆ 檢查介質集名稱和備份組到期時間
圖3:備份時輸入的備份組名稱和備份組到期時間,一般備份組預設會帶有名稱,如有必要可以修改為有意義的名稱,到期時間一般保持預設永不過程。
有了,【檢查介質集名稱和備份組到期時間】裡就明白該如何輸入了,這個我沒實驗過,沒有太大必要一一實驗了。
◆ 備份到新介質集並清除所有現有備份組
選擇此項可以清除以前的備份組,並使用新的媒體集備份資料庫。
若要建立新介質集,必須格式化備份介質(一個或多個磁帶或磁碟檔案)。 格式化進程會對備份介質進行以下更改:
● 刪除舊標題(如果存在),從而有效地刪除備份介質中以前的內容。
格式化磁帶裝置會刪除當前裝入的磁帶中以前所有內容。 格式化磁碟隻影響您為備份操作指定的檔案。
● 向每個備份裝置中的備份介質(磁帶或磁碟檔案)寫入新的媒體標頭。
◆ 可靠性
● 完成後驗證備份。將會驗證備份組是否完整以及所有卷是否都可讀。
● 寫入媒體前檢查校正和。將會在寫入備份媒體前驗證校正和,如果選中此項,可能會增大工作負載,並降低備份操作的備份輸送量。
● 出錯時繼續。如果備份資料庫時發生了錯誤,備份工作還將繼續進行。
◆ 交易記錄(只有在備份時備份類型選擇為【交易記錄】,此項才會被啟用)
● 截斷交易記錄。選擇此項會備份交易記錄並將其截斷,以便釋放更多的日誌空間,此時資料庫處於線上狀態。
● 備份日誌尾部,並使資料庫處於還原狀態。選擇此項會備份日誌尾部並使資料庫處於還原狀態,該項建立尾記錄備份,用於備份尚未備份的日誌。當容錯移轉到次要資料庫或為了防止在還原作業之前丟失所做工作,該選項很有作用。選擇該項後,在資料庫完全還原之前,資料庫無法使用。
◆ 磁帶機。選擇用磁帶機裝置備份資料庫時選擇此選項。
備份相關選項,MSDN有一篇文檔講得相當細,在此推薦。看完此文檔後將對備份儲存方面有一個深入的認識。http://msdn.microsoft.com/zh-cn/vcsharp/ms178062.aspx
資料庫還原選項
◆ 【覆蓋現有資料庫】複選框:選中此項會覆蓋所有現有資料庫以及相關檔案,包括已存在的同名其他資料庫或檔案。
◆ 【保留複製設定】複選框:選中此項會將發行的資料庫還原到建立該資料庫的伺服器之外的伺服器時,保留複製設定。不過該項只有在選擇了【復原未提交的事務,使資料庫處於可以使用的狀態】選項按鈕之後才可以使用。
◆ 【限制訪問還原的資料庫】複選框:使還原的資料庫僅供 db_owner、dbcreator 或 sysadmin 的成員使用。
恢複狀態:
◆ RESTORE WITH RECOVERY,通過復原未提交的事務,使資料庫處於可以使用的狀態。無法還原其他交易記錄。此項則讓資料庫在還原後進入可正常使用的狀態,並自動回復尚未完成的事務,如果本次還原是還原的最後一步操作,可以選擇該項。此項為預設選項。
◆ RESTORE WITH NORECOVERY,不對資料庫執行任何操作,不復原未提交的事務。可以還原其他交易記錄。此項則在還原後資料庫仍然無法正常使用,也不恢複未完成的事務操作,但可繼續還原交易記錄備份或差異備份,讓資料庫能恢複到最接近目前的狀態。
◆ RESTORE WITH STANDBY,使資料庫處於唯讀模式。撤消未提交的事務,但將撤消操作儲存在待命資料庫檔案中,以便可使復原逆轉。選擇此項時,待命資料庫檔案選擇目錄將被啟用。此項則在還原後進行恢複未完成事務的操作,並使資料庫處於唯讀狀態,為了可繼續還原交易記錄備份,還必須指定一個還原檔案來存放被恢複的事務內容。
到此為止,Database Backup還原選項基本介紹完畢,有遺漏介紹的選項通過名稱能直接明白。至於Database Backup還原指令碼MSDN文檔有文法和樣本,再說也可以通過UI設定好後匯出標準指令碼。
以上為我對SQL ServerDatabase Backup和還原的認識和總結,如有遺漏掉的細節或講解錯誤,還望高手糾正,多謝!