Unable to connect to database server:specified database is invalid 错误修复方法

常见软件 博优软件、中顶软件、超赢软件、海德软件、方象软件

1.因为物理磁盘故障,如硬盘坏道或固件磁头损坏造成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文件不能随便删除,否则恢复的数据就不完整。

Connection failed:Specified database is invalid ”

若ODBC中所有的内容都没有填错,那么就可以能是在建立数据库的时候,够选了Use Transaction Log选项,导致创建了日志文件。
而移植到别的机器上的时候,使用的目录并不一样,所以就出错了。

解决方法:
在创建ASA数据库的时候不创建LOG文件,如果已经创建了LOG文件则可以利用PB自带的工具Sybase central来去掉LOG文件和数据库文件的关联。操作步骤如下:
1)启动Sybase central在左边的树型目录中选择Utilities;
2)双击右边出现的条目中的change log file settings,直接next;
3)点Browse选择需要去除log文件的数据库文件,选好后next;
4)这里你会看到一些数据库的信息,log文件名,文件大小等。next;
5)去掉Maintin the following transaction log file前面的对勾(这里也可以改成新的目录),Finish;
6)配置ODBC连接数据库就可以了。

注:如果在Sybase central里没有ASA,则
tools->plug-ins->Register->Register a plug-in by specifying a plug-in registration file,找到asa.jpr
(一般在C:/Program Files/Sybase/SQL Anywhere 8/Java,以ASA8为例)。
注册之后就有了

你可能感兴趣的:(sysbase,Anywhere)