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