【軟件功能】
1.因為物理磁盤故障,如硬盤壞道或固件磁頭損壞造成Sybase SQL Anywhere 數(shù)據(jù)庫無法打開2.由于在使用過程中突然斷電造成的數(shù)據(jù)庫無法打開
3.由于操作系統(tǒng)或其它方面的故障導(dǎo)致數(shù)據(jù)庫無法打開
【使用方法】
1、將dbrepair.exe復(fù)制到數(shù)據(jù)庫目錄下 例如:d:\cwdata,在dos方式下執(zhí)行以下語句。2、d:\cwdata>dbrepair -k d:\cwdata\cwbase1.db 將錯誤頁號(xxxx)記下
3、d:\cwdata>dbrepair -z xxxx d:\cwdata\cwbase1.db
OK,問題通過
【手動命令恢復(fù)】
用Sybase提供的dbtranw.exe,DB32W.EXE,rtsqlw.exe等實用程序來完成恢復(fù)工作,步驟如下表。
步驟命令功能 :
1.Dbtranw -r-k-y mydb.logdb.sql把.log
文件的內(nèi)容轉(zhuǎn)換成的SQL語句
2.Attrib -r mydb.db
修改只讀文件mydb.db的屬性為可寫
3.Attrib -r mydb.log
修改只讀文件mydb.log的屬性為可寫
4.Copy new.db mydb.db
用新的空庫文件覆蓋被破壞的舊庫文件
5.Copynew.log mydb.log
用新的日志文件覆蓋舊的日志文件
6.DB32W.EXE -d mydb.db
啟動數(shù)據(jù)庫SQLAnywhere
7.Rtsqlw -q-c "userid=dba;
password=sql"readdb.sql
執(zhí)行從.log文件中倒出來的SQL語句
其中第一步的功能是把舊的日志文件轉(zhuǎn)換成SQL語句,并放在一個名為db.sql的文件中,特別注意它只能在第五步之前操作,否則日志文件會被new.log所覆蓋,而導(dǎo)致無法恢復(fù)數(shù)據(jù)。最后一步的功能是從文件db.sql中讀取SQL語句并執(zhí)行,假設(shè)數(shù)據(jù)庫的用戶名為dba,而口令為sql。有關(guān)各個命令及參數(shù)據(jù)的更詳細的用法可以查看相應(yīng)的幫助。在此提醒用戶注意:.log文件不能隨便刪除,否則恢復(fù)的數(shù)據(jù)就不完整。

































