鼎甲技術(shù)應(yīng)用:Oracle日志分析 之事務(wù)級(jí)精準(zhǔn)恢復(fù)
發(fā)布人:Marketing 發(fā)布日期:2018-08-07 15:52:58 點(diǎn)擊數(shù):7370
一、挖出需要解決的問(wèn)題
專(zhuān)業(yè)數(shù)據(jù)災(zāi)備軟件中,對(duì)Oracle數(shù)據(jù)庫(kù)的恢復(fù),都需要以時(shí)間為基準(zhǔn)來(lái)選擇數(shù)據(jù)恢復(fù)點(diǎn),用戶(hù)希望數(shù)據(jù)能恢復(fù)到自己指定的時(shí)間上,更高級(jí)的用戶(hù)則要求恢復(fù)到指定SCN。所以,目前在對(duì)Oracle數(shù)據(jù)備份后提供的恢復(fù)點(diǎn)有以下幾種:
-
恢復(fù)到數(shù)據(jù)備份的時(shí)間點(diǎn)。
-
恢復(fù)到用戶(hù)指定時(shí)間點(diǎn)。
-
恢復(fù)到用戶(hù)指定的SCN(System Change Number)等。
恢復(fù)到數(shù)據(jù)備份的時(shí)間點(diǎn),這是最為基本的恢復(fù)點(diǎn)定位,要想在時(shí)間維度上提升恢復(fù)精準(zhǔn)度,則是支持恢復(fù)到用戶(hù)的指定時(shí)間點(diǎn),再進(jìn)一步的精準(zhǔn)恢復(fù)就是指定SCN了。
但在實(shí)際生產(chǎn)環(huán)境所需的災(zāi)備場(chǎng)景中,提供的這些恢復(fù)精準(zhǔn)度是不是真正達(dá)到用戶(hù)期望值?讓我們來(lái)分析以下場(chǎng)景:
-
指定時(shí)間點(diǎn)恢復(fù)。時(shí)間點(diǎn)是以秒為單位,也就是說(shuō)可以選擇恢復(fù)到備份數(shù)據(jù)中的任意一秒上,恢復(fù)數(shù)據(jù)中包括了指定這一秒的事務(wù),如果數(shù)據(jù)庫(kù)事務(wù)請(qǐng)求密度不大,大于或等于1秒才有一個(gè)事務(wù)處理時(shí),那么以秒為單位的恢復(fù),的確已經(jīng)做到精準(zhǔn)恢復(fù)。但實(shí)際生產(chǎn)環(huán)境中,往往是1秒鐘有成千上萬(wàn),乃至百萬(wàn)個(gè)數(shù)據(jù)事務(wù)并發(fā)請(qǐng)求,或者會(huì)出現(xiàn)1個(gè)事務(wù)在多秒中處理完成。那么,采用恢復(fù)到某一秒時(shí)間,恢復(fù)后的數(shù)據(jù)不夠精準(zhǔn)。
-
指定SCN恢復(fù)。SCN作為Oracle數(shù)據(jù)庫(kù)中很重要的基礎(chǔ)內(nèi)容,是系統(tǒng)中維持?jǐn)?shù)據(jù)的一致性和順序恢復(fù)的重要標(biāo)志,每個(gè)事務(wù)的每個(gè)操作都有一個(gè)唯一的SCN,要想數(shù)據(jù)恢復(fù)精準(zhǔn),就需要選擇正確的SCN,但往往多數(shù)災(zāi)備系統(tǒng)中只提供了SCN號(hào),沒(méi)有提供SCN中關(guān)聯(lián)的操作內(nèi)容。要選擇準(zhǔn)確的SCN,經(jīng)驗(yàn)豐富的DBA可以在數(shù)據(jù)庫(kù)中執(zhí)行指令來(lái)分析Oracle日志,從而得到恢復(fù)所需指定的SCN,但對(duì)于普通的維護(hù)人員,這卻是比較難的操作。所以,如果要選擇SCN做精準(zhǔn)數(shù)據(jù)恢復(fù),必須要具備專(zhuān)業(yè)的DBA知識(shí),因此不利于通過(guò)指定SCN來(lái)恢復(fù)數(shù)據(jù)的普及使用。
通過(guò)以上場(chǎng)景分析,我們得知并未達(dá)到客戶(hù)的預(yù)期值。所以,要想精準(zhǔn)地恢復(fù)Oracle數(shù)據(jù),最好的途徑就是要選擇正確的SCN,那么就要求能簡(jiǎn)易并清晰地了解每個(gè)SCN中的具體操作內(nèi)容。但SCN信息在二進(jìn)制日志文件中,直接解讀的可能性幾乎為零。這也就是提升恢復(fù)精準(zhǔn)度的難點(diǎn)所在了。
二、鼎甲災(zāi)備產(chǎn)品推出日志解析
鼎甲的災(zāi)備產(chǎn)品在新一輪的產(chǎn)品提升中,正確解讀出了Oracle數(shù)據(jù)庫(kù)的日志文件,并在系統(tǒng)中提供直觀(guān)展現(xiàn)。我們看看在鼎甲DBackup中,是如何解讀和使用這些日志數(shù)據(jù)的。
-
直觀(guān)展現(xiàn)日志信息
鼎甲DBackup中采用列表方式直觀(guān)展現(xiàn)日志文件的內(nèi)容,即使是對(duì)于一個(gè)Oracle DBA高手來(lái)說(shuō),在進(jìn)行數(shù)據(jù)恢復(fù)處理時(shí)也能提供有效的幫助。
-
完整解析事務(wù)日志
要明了執(zhí)行的事務(wù),就需要完整解析出事務(wù)執(zhí)行的內(nèi)容,包括:誰(shuí)做了操作,做了什么操作,關(guān)系到哪些表,具體SQL語(yǔ)句是什么,關(guān)聯(lián)的SCN是什么,需要恢復(fù)到哪個(gè)SCN之前。只有完整地解析出這些信息,才能準(zhǔn)確定位恢復(fù)的SCN。
鼎甲DBackup針對(duì)Oracle的重做日志和歸檔日志進(jìn)行解析,獲取出執(zhí)行用戶(hù)、操作類(lèi)型、涉及表、執(zhí)行SQL、SCN等信息,讓用戶(hù)完整了解事務(wù)執(zhí)行內(nèi)容。
-
任意選擇時(shí)間段
無(wú)需任何腳本指令的操作,只需在鼎甲DBackup界面上選擇時(shí)間范圍,系統(tǒng)將根據(jù)用戶(hù)選定的時(shí)間段來(lái)自動(dòng)提取日志數(shù)據(jù)分析,操作簡(jiǎn)單便利。
這非常適合于多數(shù)生產(chǎn)維護(hù)場(chǎng)景中,因?yàn)榫S護(hù)人員往往只是知道某時(shí)間段做了某些事情,更希望能從指定時(shí)間段來(lái)縮小范圍,快速查找正確的SCN。
三、解決問(wèn)題
-
不難看出,鼎甲災(zāi)備產(chǎn)品的這次提升,又把Oracle數(shù)據(jù)庫(kù)的恢復(fù)精準(zhǔn)度向前推進(jìn)了一大步,完美解決了文章開(kāi)篇時(shí)描述的問(wèn)題。
-
在系統(tǒng)的界面上,點(diǎn)擊幾下鼠標(biāo),就可以把二進(jìn)制日志文件簡(jiǎn)單易懂的呈現(xiàn)在您面前。
-
不用再為選擇哪個(gè)SCN點(diǎn)恢復(fù)而頭痛了,因?yàn)槟梢郧宄亓私饷總€(gè)事務(wù)執(zhí)行了哪些操作,每個(gè)操作對(duì)應(yīng)的SCN是什么。
-
同時(shí),在審計(jì)上也起到顯著作用,當(dāng)數(shù)據(jù)庫(kù)發(fā)生邏輯錯(cuò)誤時(shí),可以審計(jì)出是什么用戶(hù)在什么時(shí)間造成的。
鼎甲科技一直走在引領(lǐng)行業(yè)技術(shù)發(fā)展的道路上。