SYBASE使用中个人出现的问题整理

 

1。服务启动失败:

在重启数据库时,出现类似 Recovery dbid 5 ckpt (1202079,9) oldest tran (1122446,8)
提示后数据库再也启动不了。此时如果master数据库已启动,则可连接到master数据库上

isql -Usa -P -Ssybase -Jcp850

运行如
下语句:

/* 使系统数据表可改 */
sp_configure "allow update",1

/* 使数据库在启动时不做检查 */
update sysdatabases set status=-32768 where name="databasename"

/* 清理日志 */
dump tran master with no_log
dump tran databasename with no_log

然后重启数据库,就可解决问题。但还必须做一步:
sp_configure "allow update",0

******************************************

2。解决数据库被标记为“suspect”的方法
  
现象: Error 926
  Severity Level 14
  Error Message Text

  Database "xx" cannot be opened - it has been marked SUSPECT by recover Explanation

  当你使用Transact_SQL命令这个数据库的数据时,出现这个信息,这是一个严重的错误,如果你要使用这个数据库的数据,必须改正这个错误。Action

  用ISQL登录到SQL Server,须用SA帐号

1>sp_configure "allow updates", 1
2>go
2>reconfigure with override
2>go
1>update master..sysdatabases
2>set status =-32768
3>Where name="database_name" database_name是 你 的 数 据 库 名
4>go
1>shutdown with nowait
2>go

  这时重新启动SQL Server,再有SA帐号注册到SQLServer。

1>update master..sysdatabases
2>set status=0
3>Where name="database_name" database_name 是 你 的 数 据 库 名
4>go
1>sp_configure "allow updates" ,0
2>go
1>reconfigure with override
2>go

  如果你的数据库原来有dboption,你需要重新设置这些option。

online database database_name

***************************************************

3。数据库记录无法修改的问题:

select name,status from master..sysdatabases where name="datebase_name"
看status是否是-32768 ,若是,sysdatabases系统表相应记录的status字段改为0,reboot数据库服务器就可以了。

1. Reset the database status to 0:
1> sp_configure "allow updates", 1
2> go
1> begin tran
2> go
1> use master
2> go
1> update sysdatabases set status=0 where name="datebase_name"
2> go
Check that the above update command affected only one row (if more than one row was affected, issue a rollback transaction.) Then commit the transaction and shut down Adaptive Server as follows:
1>commit tran
2>go
1>shutdown with nowait
2>go
2. Restart Adaptive Server. Run dbcc checkdb and dbcc checkalloc on the affected database to make sure there are no errors.

********************************
4. 无法新增数据库表
com.sybase.jdbc2.jdbc.SybSQLException: The 'CREATE TABLE' command is not allowed within a multi-statement transaction in the 'database_name' database.

sp_dboption database_name, 'ddl in tran', true
sp_dboption database_name, 'allow nulls by default', true

需要重新启动服务


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭