| 導購 | 订阅 | 在线投稿
分享
 
 
 

Sybase数据库修复及"sa"用户口令的恢复

2008-08-01 06:24:03  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
  SYBASE数据库管理系统中数据库损坏后,重新建立数据库的时间比较长,这将给应用(特别是对时间要求特别严格的应用,如金融、证券等)造成很大的损失。而如果在应用中遗忘超级用户sa口令,更会给系统管理带来极大的不便,甚至很多操作都无法进行。本文介绍一种简便的修复SYBASE数据库及恢复sa口令的方法。以下假定server能正常启动,server名为SYBASE,数据库名为demodb。

  一、修复SYBASE数据库 分为两种情况:

  1.数据库所用的设备正常,而库demodb的状态为suspect。

  (1)以sa注册

  isql -u sa -P

  1>

  (2)修改server属性,置系统表为允许修改该状态。

  1>sp_configure "allow updates",1

  2>go

  3>recofigure with override

  4>go

  (3)修改数据库的状态,置数据库状态为server启动时不检测。

  1>update master.sysdatabases set status = -32768

  2>where name = "demodb"

  3>go

  (4)重启server。

  (5)修改数据库的状态,置数据库状态为正常。

  1>update master.sysdatabases set status = 0

  2>where name ="demodb"

  3>go

  (6)修改server属性,置系统表为不允许修改状态。

  1>sp_configure "allowupdates",0

  2>go

  3>reconfigure with override

  4>go

  (7)再次重启server。

  至此,如果数据库能够正常,则恢复完毕。

  以上步骤中,也可以用单用户模式启动server,命令为startserver -m,而不必修改server的"allow updates"属性。SYBASE 11及以上版本的server只需重启,不需要执行reconfigure with override。如果上述方法仍不能恢复数据库,则只能使用dbcc命令删除该数据库,然后重新建立。

  2.数据库所占用的设备不正常,库的状态为suspect 使用sp_helpdb和sp_helpdevice命令查出数据库设备的逻辑名、物理名、设备号、大小等信息。如果上述命令无法查出数据库设备的信息,可使用select * from master.sydatabases和select * from master.sysdevices。然后用disk reinit重建设备。最后,按照1的步骤恢复数据库。

  上述第一种情况数据库损坏程度较轻,对数据库内容检查后即可使用。而在第二种情况下,如果数据库的日志建立在不同的设备上,只是数据库的日志设备损坏,数据库的损坏程度会较轻,只是有些交易无法恢复;如果数据库的设备损坏,整个数据库的内容会全部丢失,其中表、表的内容、存储过程都需要重建。所以建议数据库和数据库的日志建立在不同的设备上。

  系统错误日志errorlog文件存有SYBASE数据库系统的错误信息,系统出错时应先检查此文件,据此判断错误原因,找出解决办法,以免误操作。

  二、 恢复sa口令

  编辑RUN_SYBASE,在dataserver启动行尾加入参数 -psa,然后存盘退出,执行startserver -f RUN_SYBASE重启server,系统会给超级用户sa一个随机的密码,以此密码注册进入server,然后使用sp_password命令修改密码即可。
 
 
 
SYBASE数据库管理系统中数据库损坏后,重新建立数据库的时间比较长,这将给应用(特别是对时间要求特别严格的应用,如金融、证券等)造成很大的损失。而如果在应用中遗忘超级用户sa口令,更会给系统管理带来极大的不便,甚至很多操作都无法进行。本文介绍一种简便的修复SYBASE数据库及恢复sa口令的方法。以下假定server能正常启动,server名为SYBASE,数据库名为demodb。 一、修复SYBASE数据库 分为两种情况: 1.数据库所用的设备正常,而库demodb的状态为suspect。 (1)以sa注册 isql -u sa -P 1> (2)修改server属性,置系统表为允许修改该状态。 1>sp_configure "allow updates",1 2>go 3>recofigure with override 4>go (3)修改数据库的状态,置数据库状态为server启动时不检测。 1>update master.sysdatabases set status = -32768 2>where name = "demodb" 3>go (4)重启server。 (5)修改数据库的状态,置数据库状态为正常。 1>update master.sysdatabases set status = 0 2>where name ="demodb" 3>go (6)修改server属性,置系统表为不允许修改状态。 1>sp_configure "allowupdates",0 2>go 3>reconfigure with override 4>go (7)再次重启server。 至此,如果数据库能够正常,则恢复完毕。 以上步骤中,也可以用单用户模式启动server,命令为startserver -m,而不必修改server的"allow updates"属性。SYBASE 11及以上版本的server只需重启,不需要执行reconfigure with override。如果上述方法仍不能恢复数据库,则只能使用dbcc命令删除该数据库,然后重新建立。 2.数据库所占用的设备不正常,库的状态为suspect 使用sp_helpdb和sp_helpdevice命令查出数据库设备的逻辑名、物理名、设备号、大小等信息。如果上述命令无法查出数据库设备的信息,可使用select * from master.sydatabases和select * from master.sysdevices。然后用disk reinit重建设备。最后,按照1的步骤恢复数据库。 上述第一种情况数据库损坏程度较轻,对数据库内容检查后即可使用。而在第二种情况下,如果数据库的日志建立在不同的设备上,只是数据库的日志设备损坏,数据库的损坏程度会较轻,只是有些交易无法恢复;如果数据库的设备损坏,整个数据库的内容会全部丢失,其中表、表的内容、存储过程都需要重建。所以建议数据库和数据库的日志建立在不同的设备上。 系统错误日志errorlog文件存有SYBASE数据库系统的错误信息,系统出错时应先检查此文件,据此判断错误原因,找出解决办法,以免误操作。 二、 恢复sa口令 编辑RUN_SYBASE,在dataserver启动行尾加入参数 -psa,然后存盘退出,执行startserver -f RUN_SYBASE重启server,系统会给超级用户sa一个随机的密码,以此密码注册进入server,然后使用sp_password命令修改密码即可。
󰈣󰈤
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号 wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味著赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有