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