----------------------------------------------------------------------------
---- 本文為andkylee個人原創,請在尊重作者勞動成果的前提下進行轉載;
---- 轉載務必註明原始出處
:
http://blog.csdn.net/andkylee
---- 關鍵字: 資料庫 恢複 sybase 裝置 頁面 工具 dat
----------------------------------------------------------------------------
今年七月份,不小心將PC膝上型電腦上的另一個資料庫的備份檔案B恢複到了一個線上資料庫A裡了(兩個都是實驗用資料庫!)。庫B比庫A要小很多。向多方(包括sybase technical)諮詢都說沒有辦法只能通過備份檔案來恢複。但是,我感覺應該有種辦法吧!難道sybase公司都沒有辦法?如果這樣,我將一個小的備份檔案load到一個大的資料庫裡面,難道這個大資料庫也只能用備份來恢複嗎?
突然產生了一種想法,能不能開啟sybase的裝置檔案看看裡面都存了一些什麼樣的資料?能讀取一點資料也是收穫啊!
於是,在接下來的三個月時間裡我花了很大的精力來研究sybase的內部資料結構,用VB編寫讀取程式,並反覆測試修改。最後,基本形成兩個小工具。
1.能夠從Sybase資料裝置上提取資料的:READ_SYBDEVICE
2.從日誌裝置上提取日誌資訊的:LOG_ANALYZER_ASSISTANT (暫時叫這兩個名字,以後可能會改)
下面為兩個工具讀取出來的資料:
一、為讀取的Sybase資料庫內頁面上的資料(頁號:165621,表名:FLOWREC1,右上部顯示頁面上的十六進位資料,下部分是FLOWREC1在頁面165621上的資料)
二、為從日誌裝置上提取的日誌資訊(包括:頁號,頁內位移,可用行號,日誌類型OP,會話ID,列寬度,日誌操作時間,SUID,UID,SPID,以及日誌資訊內容等)。針對插入(OP=4)、刪除(OP=5)、更新(OP=9)能夠逆向寫出相應的SQL語句。
在後面的文章中,我會介紹這兩個小工具的使用方法!
可以提供SYBASE資料庫檔案修複
(1)系統崩潰只剩下資料檔案的情況下的恢複,甚至資料庫檔案不存在而只有損壞得備份檔案情況下得恢複.
(2)誤delete資料恢複、誤刪除表恢複(drop)、truncate表恢複 等.
(3)各種sybase錯誤的修複.
(4)sybase資料庫被標記為可疑,不可用等情況.
(5)sybase資料庫中資料檔案出現壞塊情況下的恢複.
(6)sybase資料庫無資料檔案但有有日誌的情況下的恢複.
(7)sybase資料庫只有裝置資料檔案 沒有任何日誌的情況下的恢複.
(8)sybase資料檔案被誤刪除情況下的恢複.
(9)磁碟陣列上的sybase資料庫被誤格式化情況下的恢複.