SybaseSQLAnywhere是Sybase公司开发的一种小型数据库产品,有单用户版和多用户版,Sybase Sql Anywhere (ASA)现在应用很广泛,主要用于单机版的管理系统中,如:“顶尖酒店管理信息系统” ,“浪潮财务软件(SQL Anywhere版)”及一些足浴、图书管理、汽修、会员系统等,数据库如: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等,因为ASA是在使用过程中,经常会出现损坏的情况,而市面上也没有ASA数据库修复工具,所以西西推出浪潮官方的修复单机版数据库sybase sqlanywhere的工具。
软件功能:
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文件不能随便删除,否则恢复的数据就不完整。