通過《SQL Server 數(shù)據(jù)庫備份和還原認識和總結(jié)(一)》,相信您對數(shù)據(jù)備份和還原有了一個更深入的認識,在上文中我沒有對事務(wù)日志做剖析,在此推薦宋沄劍的文章,對事務(wù)日志做了比較詳細的講解:https://www.jb51.net/article/31038.htm。本文將針對上文繼續(xù)進行數(shù)據(jù)備份和還原講解,主要講解備份和還原的一些關(guān)鍵選項。
數(shù)據(jù)庫備份選項
備份數(shù)據(jù)庫時,有幾個備份選項需要了解一下,覆蓋介質(zhì)、事務(wù)日志等。談到覆蓋介質(zhì)時,必須先對這個概念有所了解,不然無從談起。
● 介質(zhì)集 (media set):備份介質(zhì)(磁帶或磁盤文件)的有序集合,使用固定類型和數(shù)量的備份設(shè)備向其寫入了一個或多個備份操作。介質(zhì)集所使用的備份設(shè)備的數(shù)量決定了介質(zhì)集中的介質(zhì)簇的數(shù)量。 例如,如果介質(zhì)集使用兩個非鏡像備份設(shè)備,則該介質(zhì)集包含兩個介質(zhì)簇。通常,創(chuàng)建介質(zhì)集后,后續(xù)備份操作將依次向介質(zhì)集追加其備份集。
● 介質(zhì)簇 (media family):在介質(zhì)集中的單個非鏡像設(shè)備或一組鏡像設(shè)備上創(chuàng)建的備份。
● 備份集 (backup set):成功的備份操作將向介質(zhì)集中添加一個備份集。
大致了解以上概念后,回到備份選項上來:
◆ 備份到現(xiàn)有介質(zhì)集-追加到現(xiàn)有備份集
如果要將數(shù)據(jù)庫備份到磁盤上,那么選擇磁盤后(可以選擇一個或多個磁盤驅(qū)動器,也可選擇磁帶機設(shè)備,在此以磁盤驅(qū)動器為例),如果保持默認【備份到現(xiàn)有介質(zhì)集-追加到現(xiàn)有備份集】SQL Server將自動創(chuàng)建一個介質(zhì)集(備份介質(zhì)(磁盤文件或磁帶)的每個卷都包含介質(zhì)標頭,介質(zhì)標頭是在第一次使用磁帶(或磁盤)執(zhí)行備份操作時創(chuàng)建的,它將包含介質(zhì)的名稱、介質(zhì)集的唯一標識號、介質(zhì)簇的唯一標識號等等),然后再將備份集添加到介質(zhì)集中。例如上篇文章中首次完整備份,SQL Server將自動創(chuàng)建一個介質(zhì)集,并將備份集添加到介質(zhì)集中,接著再備份事務(wù)日志文件,此事務(wù)日志文件備份集將被追加到現(xiàn)有備份集,最終備份文件我們看到的只是一個備份文件MyTest.bak,但還原時選擇此文件后,要還原的備份集列表將顯示先后備份的備份集,如完整備份集、第一次事務(wù)日志備份集、第二次事務(wù)日志備份集等。
◆ 備份到現(xiàn)有介質(zhì)集-覆蓋所有現(xiàn)有備份集
此選項將覆蓋介質(zhì)上的所有備份集并保留介質(zhì)標頭(如果有)。 如果沒有介質(zhì)標頭,則創(chuàng)建一個標頭。覆蓋備份時,保留現(xiàn)有的所有介質(zhì)標頭,同時將新的備份創(chuàng)建為備份設(shè)備中的第一個備份。
存在下列任一條件時不覆蓋備份介質(zhì):
● 介質(zhì)上的現(xiàn)有備份尚未過期。 (如果指定 SKIP,則不檢查過期。)
過期日期將指定備份過期的日期,并可以由另一個備份覆蓋。 創(chuàng)建備份時可以指定過期日期。 默認情況下,過期日期由使用 sp_configure 設(shè)置的 media retention 選項確定。
● 介質(zhì)名稱(如果有)與備份介質(zhì)上的名稱不匹配。
● 介質(zhì)名稱是一個描述性名稱,用于方便地識別介質(zhì)。
綜上所述,它們的最大區(qū)別是,一個是向現(xiàn)在備份集追加備份集,一個是將現(xiàn)有備份集覆蓋,即以前保存在該備份集里的信息將無法重新讀取。
圖1:備份時選擇【追加到現(xiàn)有備份集】,還原時要還原的備份集里顯示的,每次追加的備份集。
圖2:備份時選擇【覆蓋所有現(xiàn)有備份集】,還原時要還原的備份集里顯示的是已覆蓋的備份集,以前追加的備份集已被覆蓋。
◆ 檢查介質(zhì)集名稱和備份集過期時間
圖3:備份時輸入的備份集名稱和備份集過期時間,一般備份集默認會帶有名稱,如有必要可以修改為有意義的名稱,過期時間一般保持默認永不過程。
有了上圖,【檢查介質(zhì)集名稱和備份集過期時間】里就明白該如何輸入了,這個我沒實驗過,沒有太大必要一一實驗了。
◆ 備份到新介質(zhì)集并清除所有現(xiàn)有備份集
選擇此項可以清除以前的備份集,并使用新的媒體集備份數(shù)據(jù)庫。
若要創(chuàng)建新介質(zhì)集,必須格式化備份介質(zhì)(一個或多個磁帶或磁盤文件)。 格式化進程會對備份介質(zhì)進行以下更改:
● 刪除舊標頭(如果存在),從而有效地刪除備份介質(zhì)中以前的內(nèi)容。
格式化磁帶設(shè)備會刪除當前裝入的磁帶中以前所有內(nèi)容。 格式化磁盤只影響您為備份操作指定的文件。
● 向每個備份設(shè)備中的備份介質(zhì)(磁帶或磁盤文件)寫入新的介質(zhì)標頭。
◆ 可靠性
● 完成后驗證備份。將會驗證備份集是否完整以及所有卷是否都可讀。
● 寫入媒體前檢查校驗和。將會在寫入備份媒體前驗證校驗和,如果選中此項,可能會增大工作負荷,并降低備份操作的備份吞吐量。
● 出錯時繼續(xù)。如果備份數(shù)據(jù)庫時發(fā)生了錯誤,備份工作還將繼續(xù)進行。
◆ 事務(wù)日志(只有在備份時備份類型選擇為【事務(wù)日志】,此項才會被激活)
● 截斷事務(wù)日志。選擇此項會備份事務(wù)日志并將其截斷,以便釋放更多的日志空間,此時數(shù)據(jù)庫處于在線狀態(tài)。
● 備份日志尾部,并使數(shù)據(jù)庫處于還原狀態(tài)。選擇此項會備份日志尾部并使數(shù)據(jù)庫處于還原狀態(tài),該項創(chuàng)建尾日志備份,用于備份尚未備份的日志。當故障轉(zhuǎn)移到輔助數(shù)據(jù)庫或為了防止在還原操作之前丟失所做工作,該選項很有作用。選擇該項后,在數(shù)據(jù)庫完全還原之前,數(shù)據(jù)庫無法使用。
◆ 磁帶機。選擇用磁帶機設(shè)備備份數(shù)據(jù)庫時選擇此選項。
備份相關(guān)選項,MSDN有一篇文檔講得相當細,在此推薦??赐甏宋臋n后將對備份存儲方面有一個深入的認識。http://msdn.microsoft.com/zh-cn/vcsharp/ms178062.aspx
數(shù)據(jù)庫還原選項
◆ 【覆蓋現(xiàn)有數(shù)據(jù)庫】復(fù)選框:選中此項會覆蓋所有現(xiàn)有數(shù)據(jù)庫以及相關(guān)文件,包括已存在的同名其他數(shù)據(jù)庫或文件。
◆ 【保留復(fù)制設(shè)置】復(fù)選框:選中此項會將已發(fā)布的數(shù)據(jù)庫還原到創(chuàng)建該數(shù)據(jù)庫的服務(wù)器之外的服務(wù)器時,保留復(fù)制設(shè)置。不過該項只有在選擇了【回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用的狀態(tài)】單選按鈕之后才可以使用。
◆ 【限制訪問還原的數(shù)據(jù)庫】復(fù)選框:使還原的數(shù)據(jù)庫僅供 db_owner、dbcreator 或 sysadmin 的成員使用。
恢復(fù)狀態(tài):
◆ RESTORE WITH RECOVERY,通過回滾未提交的事務(wù),使數(shù)據(jù)庫處于可以使用的狀態(tài)。無法還原其他事務(wù)日志。此項則讓數(shù)據(jù)庫在還原后進入可正常使用的狀態(tài),并自動恢復(fù)尚未完成的事務(wù),如果本次還原是還原的最后一步操作,可以選擇該項。此項為默認選項。
◆ RESTORE WITH NORECOVERY,不對數(shù)據(jù)庫執(zhí)行任何操作,不回滾未提交的事務(wù)??梢赃€原其他事務(wù)日志。此項則在還原后數(shù)據(jù)庫仍然無法正常使用,也不恢復(fù)未完成的事務(wù)操作,但可繼續(xù)還原事務(wù)日志備份或差異備份,讓數(shù)據(jù)庫能恢復(fù)到最接近目前的狀態(tài)。
◆ RESTORE WITH STANDBY,使數(shù)據(jù)庫處于只讀模式。撤消未提交的事務(wù),但將撤消操作保存在備用文件中,以便可使恢復(fù)效果逆轉(zhuǎn)。選擇此項時,備用文件選擇目錄將被激活。此項則在還原后進行恢復(fù)未完成事務(wù)的操作,并使數(shù)據(jù)庫處于只讀狀態(tài),為了可繼續(xù)還原事務(wù)日志備份,還必須指定一個還原文件來存放被恢復(fù)的事務(wù)內(nèi)容。
到此為止,數(shù)據(jù)庫備份還原選項基本介紹完畢,有遺漏介紹的選項通過名稱能直接明白。至于數(shù)據(jù)庫備份還原腳本MSDN文檔有語法和示例,再說也可以通過UI設(shè)置好后導出標準腳本。
以上為我對SQL Server數(shù)據(jù)庫備份和還原的認識和總結(jié),如有遺漏掉的細節(jié)或講解錯誤,還望高手糾正,多謝!
您可能感興趣的文章:- SQL Server 數(shù)據(jù)庫備份和還原認識和總結(jié) (一)
- Sqlserver2000 數(shù)據(jù)庫備份實例代碼
- 數(shù)據(jù)庫備份 SQLServer的備份和災(zāi)難恢復(fù)
- 簡化SQL Server備份與還原到云工作原理及操作方法