oracle的resetlogs機(jī)制淺析
瀏覽量: 次 發(fā)布日期:2023-10-16 21:27:49
oracle的resetlogs機(jī)制淺析
oracle的resetlogs機(jī)制淺析
alter database open resetlogs 這個(gè)命令我想大家都很熟悉了,那有沒(méi)有想過(guò)這個(gè)resetlogs選項(xiàng)為什么要用?什么時(shí)候用?
它的原理機(jī)制是什么?他都起哪些作用?
我們都知道數(shù)據(jù)在啟動(dòng)時(shí)候是要做一致性檢查的,oracle在open階段要做兩次檢查
1. 檢查數(shù)據(jù)文件頭的檢查點(diǎn)計(jì)數(shù)(checkpoint cnt)是否和控制文件的檢查點(diǎn)計(jì)數(shù)(checkpoint cnt)一致。目的是確認(rèn)數(shù)據(jù)文件
是否來(lái)自同一版本,而不是從備份中恢復(fù)的。如果這一步檢查通過(guò),就進(jìn)行第二步檢查
2. 檢查數(shù)據(jù)文件頭的開(kāi)始scn和控制文件中記錄該文件的結(jié)束scn是否一致。如果數(shù)據(jù)文件頭的開(kāi)始scn和控制文件中該文件的結(jié)束scn
相等,那說(shuō)明這個(gè)數(shù)據(jù)文件就不需要恢復(fù),否則就要恢復(fù)文件
如果以上兩步檢查都通過(guò),那就可以正常打開(kāi)數(shù)據(jù)庫(kù),鎖定數(shù)據(jù)文件,同時(shí)將控制文件中每個(gè)數(shù)據(jù)文件的結(jié)束scn設(shè)置無(wú)窮大。
我們?cè)谀承l件下打開(kāi)數(shù)據(jù),會(huì)提示讓用resetlogs選項(xiàng)open數(shù)據(jù)庫(kù),為什么要用resetlogs呢?它是干嘛用的呢?問(wèn)號(hào)一大堆了吧,
下面來(lái)具體分析下。
resetlogs的作用
防止陳舊的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)(保證數(shù)據(jù)庫(kù)的一致性),這也就是為什么在用resetlogs打開(kāi)數(shù)據(jù)庫(kù),一定要立即對(duì)數(shù)據(jù)庫(kù)做個(gè)全備。
在控制文件,data file header,redo log header里存儲(chǔ)”resetlogs data“,當(dāng)open resetlogs被執(zhí)行時(shí),可以通過(guò)這些內(nèi)容檢查一致性。
什么時(shí)候用resetlogs
1. 不完全恢復(fù)
2. 用備份的控制文件恢復(fù)
3. 新創(chuàng)建的控制文件來(lái)恢復(fù)
resetlogs的原理機(jī)制
resetlogs是如何來(lái)保證打開(kāi)數(shù)據(jù)庫(kù)是一致的呢?
1)在open resetlogs時(shí),oracle要對(duì)比檢查控制文件和數(shù)據(jù)字典file$,如果一個(gè)數(shù)據(jù)文件在file$中存在,但在控制文件中不存在,
那在控制文件中將創(chuàng)建一個(gè)這個(gè)文件條目(MISSINGnnn ‘nnn’是十進(jìn)制的file_id),同時(shí)這個(gè)文件被標(biāo)記為離線并需要恢復(fù)。如果
實(shí)際中這個(gè)文件存在的話,可以通過(guò)如下sql更改到正確的文件名。
sql> alter database rename file 'MISSINGnnn' to '
然后數(shù)據(jù)文件被恢復(fù),online。
2)如果一個(gè)數(shù)據(jù)文件存在控制文件中,而不在數(shù)據(jù)字典file$中,那么直接把控制文件中這個(gè)文件的記錄條目刪除(oracle認(rèn)為file$文
件是正確的,要以它為準(zhǔn))
3)當(dāng)用舊的備份控制文件恢復(fù)的時(shí)候,如果有數(shù)據(jù)文件不在控制文件中注冊(cè)(會(huì)提示控制文件比較舊的錯(cuò)誤),那就不得不重建數(shù)據(jù)文件
,以使數(shù)據(jù)文件注冊(cè)到控制文件中,然后系統(tǒng)會(huì)自動(dòng)利用redo/archivelog恢復(fù)這個(gè)數(shù)據(jù)文件。
在保證控制文件和file$文件內(nèi)容一致之后,oracle還有做如下檢查才能open resetlogs
上海數(shù)據(jù)恢復(fù)4)數(shù)據(jù)文件的版本要小于當(dāng)前數(shù)據(jù)庫(kù)的版本(counter)
5)offline的數(shù)據(jù)文件必須被online或者直接drop
6)所有的數(shù)據(jù)文件不能設(shè)置fuzzy bit,所有的數(shù)據(jù)文件要有相同的檢查點(diǎn)(checkpoint SCN)
到目前為止,open resetlogs的前提條件都已經(jīng)滿足,resetlogs究竟做了哪些工作呢?(重新使用redo log)
1)所有的online logfile 的信息重新被放置在控制文件中。并且還要為有效的thread挑選一個(gè)logfile文件作為current logfile
2)log header被更新為log seq#
3)所有的online的數(shù)據(jù)文件頭被新的checkpoint和新的‘resetlogs data’更新,offline的數(shù)據(jù)文件被標(biāo)記為需要媒體恢復(fù)。
鎮(zhèn)江數(shù)據(jù)恢復(fù)resetlogs data:當(dāng)前的scn和counter被稱作”resetlogs data“
如果oracle數(shù)據(jù)庫(kù)一致性檢查失敗的,那數(shù)據(jù)庫(kù)是不允許被open的,即 open resetlogs不成功。但也不是絕對(duì)不能open,可以通過(guò)隱含參數(shù)“
無(wú)錫數(shù)據(jù)恢復(fù)_allow_resetlogs_curruption”,繞過(guò)oracle的一致性檢查,但這樣會(huì)引起數(shù)據(jù)庫(kù)的不一致(文件可能有不同的scn或有fuzzy bit設(shè)置),如果open后,數(shù)據(jù)庫(kù)一定要rebuild (建議ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;或者imp/exp )
. oracle證書(shū),開(kāi)啟數(shù)據(jù)庫(kù)專業(yè)之旅的鑰匙
. 超融合數(shù)據(jù)備份,構(gòu)建企業(yè)數(shù)據(jù)安全的堅(jiān)實(shí)防線
. 超融合設(shè)備主要涉及哪些模塊,揭秘其主要涉及的模塊與功能
. 分布式數(shù)據(jù)服務(wù) 書(shū)籍pdf,構(gòu)建高效、可擴(kuò)展的數(shù)據(jù)生態(tài)系統(tǒng)
. 固態(tài)硬盤(pán)數(shù)據(jù)恢復(fù)一般多少錢,固態(tài)硬盤(pán)修復(fù)手把手教你救治不認(rèn)盤(pán)的固態(tài)
. 融合硬盤(pán)數(shù)據(jù)恢復(fù),硬盤(pán)數(shù)據(jù)恢復(fù)的重要性
. 上海硬盤(pán)數(shù)據(jù)恢復(fù)微信,專業(yè)服務(wù),守護(hù)您的數(shù)據(jù)安全
. oracle歸檔日志設(shè)置,Oracle數(shù)據(jù)庫(kù)歸檔日志設(shè)置詳解
. 硬盤(pán)數(shù)據(jù)覆蓋幾次能恢復(fù),硬盤(pán)數(shù)據(jù)覆蓋幾次能恢復(fù)?揭秘?cái)?shù)據(jù)恢復(fù)的奧秘
. 硬硬盤(pán)數(shù)據(jù)恢復(fù)工具,硬盤(pán)數(shù)據(jù)恢復(fù)工具全解析——守護(hù)你的數(shù)字資產(chǎn)
. 分布式數(shù)據(jù)服務(wù)包括,構(gòu)建高效、可擴(kuò)展的數(shù)據(jù)生態(tài)系統(tǒng)
. 數(shù)據(jù)庫(kù)修復(fù),數(shù)據(jù)庫(kù)修復(fù)的重要性
. 照片恢復(fù)大師免費(fèi)版,照片恢復(fù)大師免費(fèi)版——您的數(shù)據(jù)恢復(fù)得力助手
. 內(nèi)網(wǎng)硬盤(pán)數(shù)據(jù)恢復(fù)軟件,守護(hù)企業(yè)數(shù)據(jù)安全的利器
. 移動(dòng)硬盤(pán)數(shù)據(jù)恢復(fù)的可能性大嗎,移動(dòng)硬盤(pán)數(shù)據(jù)恢復(fù)的可能性大嗎?全面解析與建議
. 移動(dòng)硬盤(pán)數(shù)據(jù)恢復(fù)杭州,專業(yè)服務(wù),守護(hù)您的數(shù)據(jù)安全
. 聊天記錄恢復(fù)大師,聊天記錄恢復(fù)大師——您的數(shù)據(jù)守護(hù)神
. 超融合設(shè)備主要涉及哪些模塊,揭秘其主要涉及的模塊與功能
. 移動(dòng)硬盤(pán)數(shù)據(jù)恢復(fù)溫州,專業(yè)服務(wù),守護(hù)您的數(shù)據(jù)安全
. 硬盤(pán)數(shù)據(jù)恢復(fù)大師軟件,硬盤(pán)數(shù)據(jù)恢復(fù)大師——您的數(shù)據(jù)安全守護(hù)者