【软件功能】
1.因为物理磁盘故障,如硬盘坏道或固件磁头损坏造成Sybase SQL Anywhere 数据库无法打开2.由于在使用过程中突然断电造成的数据库无法打开
3.由于操作系统或其它方面的故障导致数据库无法打开
【使用方法】
1、将dbrepair.exe复制到数据库目录下 例如:d:\cwdata,在dos方式下执行以下语句。2、d:\cwdata>dbrepair -k d:\cwdata\cwbase1.db 将错误页号(xxxx)记下
3、d:\cwdata>dbrepair -z xxxx d:\cwdata\cwbase1.db
OK,问题通过
【手动命令恢复】
用Sybase提供的dbtranw.exe,DB32W.EXE,rtsqlw.exe等实用程序来完成恢复工作,步骤如下表。
步骤命令功能 :
1.Dbtranw -r-k-y mydb.logdb.sql把.log
文件的内容转换成的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
启动数据库SQLAnywhere
7.Rtsqlw -q-c "userid=dba;
password=sql"readdb.sql
执行从.log文件中倒出来的SQL语句
其中第一步的功能是把旧的日志文件转换成SQL语句,并放在一个名为db.sql的文件中,特别注意它只能在第五步之前操作,否则日志文件会被new.log所覆盖,而导致无法恢复数据。最后一步的功能是从文件db.sql中读取SQL语句并执行,假设数据库的用户名为dba,而口令为sql。有关各个命令及参数据的更详细的用法可以查看相应的帮助。在此提醒用户注意:.log文件不能随便删除,否则恢复的数据就不完整。

