IBSurgeon FirstAID是一種能夠自動(dòng)診斷和修復(fù)損壞的InterBase或Firebird數(shù)據(jù)庫(kù)的工具。只有IBSurgeon FirstAID能夠自動(dòng)地修復(fù)無(wú)論gbak還是gfix都不能處理的損壞。它使用了自己的用于低層次的數(shù)據(jù)庫(kù)訪問(wèn)層而沒(méi)有使用InterBase或Firebird引擎,因此,當(dāng)所有其他標(biāo)準(zhǔn)機(jī)制都無(wú)法使用時(shí),它能夠?qū)δ臄?shù)據(jù)庫(kù)執(zhí)行真正的“外科手術(shù)式”的操作和修復(fù)。
IBFirstAID and FBFirstAID are tools that can automatically diagnose and repair corrupted InterBase or Firebird databases. IBFirstAID/FBFirstAID is the only solution for automatically repairing corruption that neither gbak nor gfix can handle. It uses its own layer for low-level database access without using the InterBase or Firebird engine, so it can perform real "surgical" operations and repair your database when all other standard mechanism's cannot.
IBSurgeon FirstAID與其它標(biāo)準(zhǔn)恢復(fù)方法一起使用時(shí),它可以修復(fù)一個(gè)所有情況下超過(guò)80%的損壞的數(shù)據(jù)庫(kù)。IBSurgeon擁有一個(gè)免費(fèi)的IBFirstAID的診斷專(zhuān)家版本,它可以用于準(zhǔn)確地檢查實(shí)際數(shù)據(jù)庫(kù)的狀態(tài)。它可以分析出您的數(shù)據(jù)庫(kù)的底層數(shù)據(jù)結(jié)構(gòu)并報(bào)告出在數(shù)據(jù)庫(kù)中可能存在的錯(cuò)誤的詳細(xì)日志。
您可以將診斷日志發(fā)送到我們的支持服務(wù),您將得到一個(gè)免費(fèi)的答案告知您的數(shù)據(jù)庫(kù)是否可以恢復(fù),是否可以通過(guò)IBFirstAid直接恢復(fù),或者我們是否需要執(zhí)行一些手動(dòng)的工作以協(xié)助其恢復(fù)處理過(guò)程。如果問(wèn)題非常嚴(yán)重,我們還將嘗試并估算您的數(shù)據(jù)有多少能夠被恢復(fù)。
如下可能的損壞IBFirstAID能夠修復(fù)和糾正。詳細(xì)如下:
- 內(nèi)部gds軟件一致性檢查(找不到提示頁(yè)面(165))所需要的交易清單已損壞,數(shù)據(jù)庫(kù)無(wú)法打開(kāi)。預(yù)計(jì)在這種情況下,無(wú)論gbak或者是gfix都不可能修復(fù)您的數(shù)據(jù)庫(kù)(除了在一個(gè)只讀數(shù)據(jù)庫(kù)的情況下)。IBFirstAID將修復(fù)丟失的頁(yè)面并恢復(fù)數(shù)據(jù)庫(kù)。
- 當(dāng)試圖讀取數(shù)據(jù)庫(kù)文件時(shí)出現(xiàn)的針對(duì)文件“*.gdb”的未知數(shù)據(jù)庫(kù)I/O錯(cuò)誤。這通常表示一些數(shù)據(jù)庫(kù)頁(yè)面可能在數(shù)據(jù)庫(kù)文件的結(jié)尾處丟失(停電?)。在這種情況下數(shù)據(jù)庫(kù)無(wú)法打開(kāi)。Gfix不能夠修復(fù)它。IBFirstAID將重新創(chuàng)建丟失的系統(tǒng)頁(yè)面并刪除錯(cuò)誤的指針。
- 數(shù)據(jù)庫(kù)文件出現(xiàn)損壞。錯(cuò)誤的頁(yè)面類(lèi)型。頁(yè)面NNN是錯(cuò)誤的類(lèi)型(預(yù)計(jì)X,發(fā)現(xiàn)Y)。這些錯(cuò)誤能夠標(biāo)示一些問(wèn)題。但是通常它們是數(shù)據(jù)庫(kù)丟失的頁(yè)面,或者這些被訪問(wèn)的頁(yè)面不是預(yù)計(jì)的頁(yè)面類(lèi)型。例如,如果預(yù)計(jì)的頁(yè)面類(lèi)型是5,則可能意味著一些數(shù)據(jù)可能已經(jīng)在一個(gè)表中遭到損壞。例如一個(gè)損壞可能阻止一個(gè)成功的備份或者可以使數(shù)據(jù)庫(kù)無(wú)法使用該表。IBFirstAID修正錯(cuò)誤的頁(yè)面指針并修復(fù)數(shù)據(jù)庫(kù)。
- 錯(cuò)誤的記錄長(zhǎng)度。不能找到舊版本。IBFirstAID在數(shù)據(jù)庫(kù)中檢查每條記錄并嘗試修復(fù)這些記錄級(jí)上的錯(cuò)誤。
- 頁(yè)面的丟失能夠引起其他數(shù)據(jù)庫(kù)損壞。
Using IBFirstAID/FBFirstAID together with other standard recovery means such as the default gfix and gbak utilities it is possible to repair a corrupted database in more than 80% of all cases. IBSurgeon has a free Diagnostician version of IBFirstAID which you can use to accurately check the actual database status. It will analyze the low-level data structures in your database and present you with a detailed log of what may be wrong in the database.
You can send the diagnostic log to our support service for a free answer on whether your database recoverable or not, whether its recoverable by IBFirstAid directly, or whether we need to perform some manual work to assist the recovery process. We will also try and estimate how much of your data can be recovered if there really is a serious problem that will not allow 100% recovery.
There are a number of possible corruptions that IBFirstAID has been designed to repair and correct. These are listed below:
- Internal gds software consistency check (cannot find tip page (165)) The required Transaction Inventory Page is corrupt and the database cannot be opened. It is expected in this instance that neither gbak nor gfix will be able to repair your database (except in the case of a Read Only database). IBFirstAID will repair the missing pages and recover the database.
- Unknown database I/O error for file "*.gdb" Error while trying to read from the database file. This usually indicates that a number of database pages have probably been lost at the end of the database file (power failure?). In this instance the database cannot be opened. Gfix cannot repair this. IBFirstAID will recreate the missing system pages and deletes the wrong pointers.
- Database file appears corrupt. Wrong page type. Page NNN is of wrong type (expected X, found Y) This error can indicate a number of problems. But typically there are missing pages in the database, or the page that is being accessed is not the expected page type. For example, if the expected page type is 5, it can mean that some data may have been corrupted within a table. Such a corruption may prevent a sucessful backup backup or may make the table unavailable to the database. IBFirstAID fixes the wrong page pointers and repairs the database.
- Wrong record length. Cannot find backversion. IBFirstAID will check every record in database and will try and repair these record-level errors.
- Other database corruptions can be caused by lost pages.
For those who don't want to experience corruption again, we offer protection and maintenance tool Firebird DataGuard now.