打印本文 打印本文 关闭窗口 关闭窗口
SYBASE 使用技巧集锦 FAQ by 杨冶军(1)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数736  更新时间:2009/4/22 23:09:11  文章录入:mintao  责任编辑:mintao
Q.如何解决数据库被标记为"suspect"的问题之一( 一般解决方案)?

A.现象:Error 926
 Severity Level 14
 Error Message Text
 Database ''''xx'''' cannot be opened - it has been marked SUSPECT by recover Explanation

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

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"
2>go

(3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = -32768
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4.1)如果条件允许,bcp out用户数据或dump用户数据库

(5.1)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.

1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

1>sp_configure "allow updates" ,0
2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置
这些option..

(5) 运行dbcc命令检查数据库的一致性

isql -Usa -P -i dbcc.sql -o dbcc.out
dbcc.sql文件示例:
dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2")
go
dbcc checkcatalog("pubs2")
go
grep Msg dbcc.out

6) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"
2>go




Q.如何解决数据库被标记为"suspect"的问题之二( 数据库设备损坏时的解决方案 )?

A.现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文件读写权限
不正确 )时,导致数据库恢复失败,出现926错误的情况。

(1) 请先恢复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"
2>go

3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = status - 256
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一致性编辑生成dbcc.sql文件:

dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2")
go
dbcc checkcatalog("pubs2")
go
isql -Usa -P -i dbcc.sql -o dbcc.out
grep Msg dbcc.out

(5) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"
2>go




Q.如何解决ASE11.5装载或备份数据库报3230的错误?

A.用sp_dropdevice或sybase central删除逻辑设备后,不重启服务器,不回收虚拟设备号,重用它建立
设备,新建数据库。这时dump&load数据库会出3230错误。这是ASE11.5的BUG,过去不重新启动服务器,
老的虚拟设备号不能使用,现在服务器不提示错误。但dump&load数据库会出现3230错误。

解决办法是重启服务器,3230错便会消失。


Q.如何删除坏的用户数据库?(以pubs2为例)

A.当使用drop database无法删除数据库时,使用本文所示方法可以删除。

(1)使用isql以sa注册SQL server

(2)设置允许修改系统表

1>sp_configure "allow updates",1
2>go

(3)把 要删除的用户数据库置为"suspect"状态

1>use master
2>go
1>begin tran
2>go
1>update sysdatabases set status=256
2>where name="pubs2"
3>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4)重启server,并用isql以sa注册。

(5)删除数据库

1>dbcc dbrepair(pubs2,dropdb)
2>go

(6)恢复允许修改系统表

1>sp_configure "allow updates",0
2>go

(7)结束




Q.如何修改IP地址改变后的interfaces文件?

A.安装SYBASE Adapive Server的机器IP地址改变后, 应修改 interfaces 文件及有关的设置。

如果 interfaces 文件中使用的是机器名而不是 IP 地址, 则不需要变动。 但如果客户端联结服务器使
用的是服务器的 IP 地址而不是机器名,那么客户端需修改联结服务器的 IP 地址.。

如果 interfaces 文件中使用的是 IP 地址, 那么需要修改 interfaces 文件中和地址有关的部分,
可使用dscp 或 dsedit 进行修改。 如果客户端联结服务器使用的是服务器的地址而不是机器名,那么客
户端也需修改。

打印本文 打印本文 关闭窗口 关闭窗口