SybaseSQLAnywhere是Sybase公司開發(fā)的一種小型數(shù)據(jù)庫產(chǎn)品,有單用戶版和多用戶版,Sybase Sql Anywhere (ASA)現(xiàn)在應(yīng)用很廣泛,主要用于單機(jī)版的管理系統(tǒng)中,如:“頂尖酒店管理信息系統(tǒng)” ,“浪潮財(cái)務(wù)軟件(SQL Anywhere版)”及一些足浴、圖書管理、汽修、會(huì)員系統(tǒng)等,數(shù)據(jù)庫如:jd.db,LCCS.db,cwbase.db,wlda.db,leader.db,tctn_web.db,ais02.db,qxqp.db,muzu_jl.db, zl_pos.db,haird40.db等,因?yàn)锳SA是在使用過程中,經(jīng)常會(huì)出現(xiàn)損壞的情況,而市面上也沒有ASA數(shù)據(jù)庫修復(fù)工具,所以西西推出浪潮官方的修復(fù)單機(jī)版數(shù)據(jù)庫sybase sqlanywhere的工具。
軟件功能:
1.因?yàn)槲锢泶疟P故障,如硬盤壞道或固件磁頭損壞造成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 將錯(cuò)誤頁號(hào)(xxxx)記下
3、d:\cwdata>dbrepair -z xxxx d:\cwdata\cwbase1.db
OK,問題通過
手動(dòng)命令恢復(fù):
用Sybase提供的dbtranw.exe,DB32W.EXE,rtsqlw.exe等實(shí)用程序來完成恢復(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
啟動(dòng)數(shù)據(jù)庫SQLAnywhere
7.Rtsqlw -q-c "userid=dba;
password=sql"readdb.sql
執(zhí)行從.log文件中倒出來的SQL語句
其中第一步的功能是把舊的日志文件轉(zhuǎn)換成SQL語句,并放在一個(gè)名為db.sql的文件中,特別注意它只能在第五步之前操作,否則日志文件會(huì)被new.log所覆蓋,而導(dǎo)致無法恢復(fù)數(shù)據(jù)。最后一步的功能是從文件db.sql中讀取SQL語句并執(zhí)行,假設(shè)數(shù)據(jù)庫的用戶名為dba,而口令為sql。有關(guān)各個(gè)命令及參數(shù)據(jù)的更詳細(xì)的用法可以查看相應(yīng)的幫助。在此提醒用戶注意:.log文件不能隨便刪除,否則恢復(fù)的數(shù)據(jù)就不完整。