佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > SQL Server恢復(fù)模型之批量日志恢復(fù)模式

SQL Server恢復(fù)模型之批量日志恢復(fù)模式

熱門標(biāo)簽:服務(wù)外包 地方門戶網(wǎng)站 AI電銷 網(wǎng)站排名優(yōu)化 百度競(jìng)價(jià)排名 鐵路電話系統(tǒng) 呼叫中心市場(chǎng)需求 Linux服務(wù)器

你是否想知道為什么事務(wù)日志文件會(huì)變得越來(lái)越大?事務(wù)日志有時(shí)候甚至?xí)饶愕膶?shí)際數(shù)據(jù)庫(kù)文件還要大,尤其是在應(yīng)用數(shù)據(jù)倉(cāng)庫(kù)的情況下。為什么會(huì)發(fā)生這種情況呢?如何控制其大???數(shù)據(jù)庫(kù)恢復(fù)模型如何控制事務(wù)日志增長(zhǎng)?在本系列文章中,我們就將一一給出解答。

批量日志恢復(fù)模式

批量日志恢復(fù)模式與完整恢復(fù)模式類似,都預(yù)期會(huì)有大批量的數(shù)據(jù)修改操作(例如,創(chuàng)建索引,SELECT INTO,INSERT SELECT,BCP,BULKINSERT),在這種情況下可以最小化日志記錄量,因此它降低了性能影響。但是同時(shí)代價(jià)就是你可能不能做任何時(shí)點(diǎn)的恢復(fù)了。作為一種推薦的實(shí)踐,批量日志恢復(fù)模式可以與完整恢復(fù)模式一起使用,例如,你通常應(yīng)該在常規(guī)操作時(shí)設(shè)置為完整恢復(fù)模式,然后在偶爾發(fā)生大批量操作時(shí)臨時(shí)切換到批量日志恢復(fù)模式。最后在完成大批量操作以后,再回到完整恢復(fù)模式。如果時(shí)間點(diǎn)恢復(fù)很重要的話,我們非常推薦在切換回到完整恢復(fù)模式以后做一次事務(wù)日志備份。

與完整恢復(fù)模式類似,事務(wù)日志文件將會(huì)持續(xù)增長(zhǎng),因此你需要頻繁做事務(wù)日志備份。如果沒(méi)有大批量操作,批量日志模式與完整恢復(fù)模式是一樣的,你可以恢復(fù)到任何時(shí)點(diǎn),只要事務(wù)日志包含對(duì)數(shù)據(jù)庫(kù)后續(xù)做的所有變更記錄。

優(yōu)點(diǎn):通過(guò)對(duì)一些事務(wù)做最小化日志記錄優(yōu)化大批量操作的性能。不會(huì)讓事務(wù)日志由于這些大批量數(shù)據(jù)操作而顯著增長(zhǎng)。

缺點(diǎn):如果日志損壞,或者在最近日志備份之后發(fā)生大批量數(shù)據(jù)操作,存在數(shù)據(jù)丟失的可能性。因此自最后一次備份后的變化必須被重做。

何時(shí)采用:推薦在偶爾發(fā)生的大批量數(shù)據(jù)操作之前切換到批量日志恢復(fù)模式,然后在完成大批量數(shù)據(jù)操作之后切換回到完整恢復(fù)模式。采用這種方式你仍然可以恢復(fù)到任何時(shí)間點(diǎn),只是你最后一次事務(wù)日志備份不包含大批量數(shù)據(jù)操作,同時(shí)可以將大批量數(shù)據(jù)操作的日志量最小化。

要注意的是,最小化日志記錄意味著只記錄恢復(fù)事務(wù)需要的信息,而不支持時(shí)間點(diǎn)恢復(fù)。在最小化日志的情況下,事務(wù)日志基于大批量變更映射(MCP)頁(yè)做的大批量數(shù)據(jù)變更記錄頁(yè)軌跡,而不是對(duì)每次變化做日志。這種方式數(shù)據(jù)庫(kù)日志會(huì)更小,但是在你備份事務(wù)日志時(shí),它包括了所有變更頁(yè),因此即使事務(wù)日志非常小,事務(wù)日志備份也可能比它更大。

大容量日志恢復(fù)模式bulk_logged recovery model

The bulk-logged recovery model minimally logs bulk operations, although fully logging other transactions. The bulk-logged recovery model protects against media failure and, for bulk operations(bcp,BULK INSERT,SELECT INTO), provides the best performance and least log space usage.

The bulk-logged recovery model increases the risk of data loss for these bulk-copy operations, because bulk logging operations prevents recapturing changes on a transaction-by-transaction basis. If a log backup contains any bulk-logged operations, you cannot restore to a point-in-time within that log backup; you can restore only the whole log backup.

 Bulk Changed Map (BCM)  tracks the extents that have been modified by bulk logged operations since the last BACKUP LOG statement.
If using the bulk-logged recovery model, only details of the modified data pages are logged, allowing for better performance.

Tail Log backup
If your database is using the bulk-logged recovery model, and the transaction log contains minimally logged transactions, the data files which contain the modified pages must also be available. If those data files are unavailable, you will not be able to back up the tail of the transaction log. This is another point to consider when using the bulk-logged recovery model.

However, please note that the situation with the bulk-logged recovery model is identical to the full recovery model if no minimally logged transactions are created in the database

大容量日志恢復(fù)模式的工作原理

與完整恢復(fù)模式(完全記錄所有事務(wù))相比,大容量日志恢復(fù)模式只對(duì)大容量操作進(jìn)行最小記錄(盡管會(huì)完全記錄其他事務(wù))。大容量日志恢復(fù)模式保護(hù)大容量操作不受媒體故障的危害,提供最佳性能并占用最小日志空間。

但是,大容量日志恢復(fù)模式會(huì)增加這些大容量復(fù)制操作丟失數(shù)據(jù)的風(fēng)險(xiǎn),因?yàn)榇笕萘咳罩静僮髯柚乖俅尾东@對(duì)每個(gè)事務(wù)逐一所做的更改。如果日志備份包含大容量日志操作,則無(wú)法還原到該日志備份中的時(shí)點(diǎn),而只能還原整個(gè)日志備份。

在大容量日志恢復(fù)模式下,如果日志備份覆蓋了任何大容量操作,則日志備份包含由大容量操作所更改的日志記錄和數(shù)據(jù)頁(yè)。這對(duì)于捕獲大容量日志操作的結(jié)果至關(guān)重要。合并的數(shù)據(jù)區(qū)可使日志備份變得非常龐大。此外,備份日志需要訪問(wèn)包含大容量日志事務(wù)的數(shù)據(jù)文件。如果無(wú)法訪問(wèn)任何受影響的數(shù)據(jù)庫(kù)文件,則事務(wù)日志將無(wú)法備份,并且在此日志中提交的所有操作都會(huì)丟失。
為跟蹤數(shù)據(jù)頁(yè),日志備份操作依賴于位圖頁(yè)的大容量更改,位圖頁(yè)針對(duì)每個(gè)區(qū)包含一位。對(duì)于自上次日志備份后由大容量日志操作所更新的每個(gè)區(qū),在位圖中將每個(gè)位都設(shè)置為 1。數(shù)據(jù)區(qū)將復(fù)制到日志中,后跟日志數(shù)據(jù)。下圖顯示了日志備份的構(gòu)造方式。

重要提示:

在完整或大容量日志恢復(fù)模式下,如果沒(méi)有其他因素使日志記錄保持為活動(dòng)狀態(tài),則到進(jìn)行第一次完整備份時(shí),自動(dòng)檢查點(diǎn)才會(huì)截?cái)嗍聞?wù)日志的未使用部分。第一次完整備份后,截?cái)嘁髠浞菔聞?wù)日志。有關(guān)截?cái)嘌舆t因素的信息,請(qǐng)參閱可能延遲日志截?cái)嗟囊蛩亍?/p>

您可能感興趣的文章:
  • 配置SQL Server數(shù)據(jù)庫(kù)恢復(fù)模式(2種方法)
  • SQL Server誤區(qū)30日談 第28天 有關(guān)大容量事務(wù)日志恢復(fù)模式的誤區(qū)
  • SQL Server數(shù)據(jù)庫(kù)的三種恢復(fù)模式:簡(jiǎn)單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式

標(biāo)簽:蘭州 崇左 黃山 銅川 衡水 湘潭 湖南 仙桃

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《SQL Server恢復(fù)模型之批量日志恢復(fù)模式》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    广平县| 鹤庆县| 双辽市| 新蔡县| 穆棱市| 方正县| 宁强县| 连州市| 清水河县| 东宁县| 岐山县| 扬州市| 道真| 桃源县| 扎赉特旗| 拜城县| 枣庄市| 壤塘县| 晴隆县| 卓资县| 敖汉旗| 大宁县| 娄烦县| 永新县| 安乡县| 梅州市| 黄大仙区| 米泉市| 湄潭县| 长岭县| 岳西县| 称多县| 金门县| 读书| 九龙城区| 郧西县| 古交市| 英山县| 新和县| 广河县| 五大连池市|