信息产业培训网
[当前位置]:首页--技术专区--数据库--SybaseRSS订阅按钮

Sybase常见灾难性恢复

http://www.miiceic.org.cn   2007-9-13 11:03:25   中程在线   浏览数:
关键字:Sybase 灾难性恢复
 数据库服务不能启动 [l]^:*fr  
如何查找数据库启动失败原因 8&$&TQ" 7  
在实际环境中,数据库Server无法启动的原因很多,本文仅列出了几种常见的情况,供您参考。 u^mgSR  
k5.#S~  
首先,应检查Server的日志文件。不同版本缺省的日志文件如下(其中Sybase Server的名称: G3&z;jU  
UNIX: a4$M>KC0,  
11.0*: $SYBASE/install/errorlog Qe4 1gE8-d  
11.5* 或 11.9*: $SYBASE/install/.log FwE RkJ  
12.0*SYBASE/ $SYBASE_ASE/install/.log }< ’S=iZtS  
NT: K\/J "YT\  
11.0* 11.5* 或 11.9*: %SYBASE%installerrorlog OO*moF#  
12.0*: %SYBASE%ASE-12_0installerrorlog Ps\*gfcY  
  
·        CASE 1: !<H=641G  
basis_dlock: file ’/sybase/master.dat’ already in use by a SQL Server 7nczAYhu  
kernel kdconfig: unable to read primary master device 3 S;4  
kernel kiconfig: read of config block failed [z&`T  
检查server是否已经启动( showserver, ps -u sybase 或NT service ) g$2G,*lR  
·        CASE 2: w2/?N +*  
dopen: open ’/sybase/master.dat’ failed, permission denied 9"R)lb z  
kernel kdconfig: unable to read primary master device Aa8mO$c  
kernel kiconfig: read of config block failed ’|PQjgjSz  
检查master设备文件的所有者及权限 o,t2U  
taoe-[2c  
·        CASE 3: qZ!;\7=c.+  
ninit: All master network listeners have failed. Shutting down h4 Hy%\~&  
检查network ip 及 port配置 ( netstat -a ) ch)SC>~c  
H@3;gVI  
·        CASE 4: \|>#D6b  
kernel:kscsinit: connectivity library error. Operation: cs_ctx_alloc(). nLF}RA^  
o        检查操作系统参数是否已经修改并重新启动操作系统 (参见安装手册)  IxbwAg  
若操作系统异常宕机,ASE未启动而$SYBASE/.krg已经存在, 删除该文件 Qal7B>9  
Lc/|<)T  
简单故障及排除方法 h’DTn/  
服务器启动失败,报告不能创建共享内存(UNIX平台): URPwQ/^4[  
解决方法: XQh7P#d&  
检查Sybase主目录下的文件,将所有文件的所有者改为sybase帐户。 &gcmnd#  
编辑sybase主目录下的名为ServerName.cfg文件,找到total memory的一行,检查其配置值是否过大。 s>E m+@  
重新启动数据库服务器。 Z%%C(nH   
·        服务器启动失败,报告不能建立网络监听(UNIX平台): \y Jp`  
解决方法: | *%WeC\  
编辑Sybase主目录下的名为interfaces文件,检查相应服务器的网络端口是否和其它的服务器重复或使用的是系统已经使用的端口; 5pg6 b  
检查/etc/hosts的主机名和IP地址,对照interfaces中的主机名,是否存在冲突。 !4JD"gp.  
重新启动数据库服务器。 .h})E  
·        服务器启动失败,报告不能打开master设备文件(UNIX平台): LoZeV~  
解决方法: kl’ ;%mv>  
检查$SYBASE/$SYBASE_ASE/RUN_ServerName中的master设备文件的位置; p`2/1G\x  
检查master设备文件路径及访问权限; cF~x v  
重新启动数据库服务器。 V])X0eG9T  
 9.  
master数据库日志满了,server无法启动,怎么办 (error 1105) z!~@Eek=R  
8- dYCq  
[ERROR] iq6~Sj|J  
Can’t allocate space for object ’syslogs’ in database ’master’ because the ’system’ segment is full. A(Oylka Q  
If you ran out of space in syslogs, dump the transaction log. Otherwise, use ALTER DATABASE or sp_extendsegment Ddb>$uI\tr  
to increase the size of the segment. 9l34vs`}  
[WORKAROUND] 9Zyp3$  
1.在RUN_servername的文件中添加标识 : -T3607 a/C)F8wV\m  
(编辑RUN_servername文件,在文件末尾添加以上标识) ]p k)&s  
2.启动ASE lmEd {ppf  
(要直接运行文件RUN_servername,且该运行窗口在执行以下操作时不能关闭) 1W|Wnn_)N  
3.截断日志 7dZ# ]  
1>dump tran master with no_log ^R{ }Z%:l  
2>go 7PWe!ML  
4.停止ASE服务 )pj?iy0`  
1>shutdown 4bet’E’  
2>go (k 7l/L\  
5.删除RUN_servername文件末尾的标识 : -T3607 -f’m6.重新启动ASE c:]"Wt  
:fvK$$f#  
SQL Server 10.x配置内存过大、Server不能启动时怎么办?        c+Q 1YK  
 SQL Server使用的内存与机器的内存总数有一定的比例关系。如果Server使用内存太小,影响到SQL Server的性能,但内存配置过大超过一定比例时,导致SQL Server不能启动。 J9L09_]1v  
  在ISQL中,用sp_configure “memory”可以看到你的Server现在使用的内存大小。这个数字单位为Page,每一个Page为2K。参数memory在启动Server时被读入内存。所以memory被修改之后,必须shutdown Server,再重新启动Server,新的参数才生效。 GNmSPyHCv  
1>sp_configure "memory",number_of_memory y9Y&8;o  
2>go rvfR1_{f{  
1>reconfigure with override w! n U6  
2>go /C@7p+YP4  
1>shutdown with nowait o p*WIk  
2>go  ’GUBwB  
  如果新的内存配置太大,SQL Server不能启动,那么必须修改Master设备上的内存配置参数。 Oi~a,1b+  
  在$SYBASE/install目录下,使用buildmaster命令 Si")z  
  $buildmaster -d/path/master.dat -y cmemsize = XXX  Junh{Oh  
  其中XXX为内存页数。如果新的内存大小合适,SQL Server可以启动。        ED _]8E  
数据库被挂起 6.1[{oq}M  
如何解决数据库被挂起的问题(error 926) ;cqmtM  
  现象:Error 926 AqlCz]lC  
     Severity Level 14 J@]WhW9  
     Error Message Text \m2[2wkbF  
     Database ’xx’ cannot be opened - it has been marked SUSPECT by recover Explanation > br5CION  
   (1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误. )XT%l7  
   (2) 启动Backup Server, 后备master数据库 90Uz%qLt  
i?o)?cR  
  1>dump database master to "/usr/sybase/master.dup"  qRv\c{>)  
  2>go JYTb.85IF  
   (3) 用isql登录到ASE, 须用sa帐号 (本文以pubs2数据库为例) GhC.CV  
  1>sp_configure "allow updates", 1 x^By\U>m  
  2>go R{2Ru+"e2!  
  1>begin tran   2>go awL8I)\2  
  1>use master b8X?PHiA  
  2>go OB(WygX&K  
  1>update sysdatabases MUFjQ(2Qv  
  2>set status = -32768 )c’ sje  
  3>Where name="pubs2" >i$/ H~  
  4>go `~Dl6mOh  
   如果得到(1 row affected),则 CMQXHf  
  1>commit  \sf8#  
  2>go T   否则 6JXdsd7p.]  
  1>rollback y#.OO#  
  2>go !6BA(8  
(4)重新启动ASE. bH^6>0w*=Z  
yD8d-/*  
注:ASE重新启动之后,当发现数据库本身存在不可恢复的问题时,如数据页损坏等,且没有完好的数据库备份,一定要用bcp...out备份用户数据库数据。此时,以下步骤省略,并按照“如何删除坏的用户数据库”文章删除此数据库。之后重建此数据库,恢复备份。 Z63~8  
否则,按以下步骤继续操作: 2I+Eck_  
S gIqPU’  
  用sa帐号注册到ASE. [Z7&3([  
  1>begin tran Xsnb8!?4  
  2>go le"*p:  
  1>use master R/2+=%g:n  
  2>go am7 S?G2  
  1>update sysdatabases rrw_PMX  
  2>set status=0 ’G<1?#aE]  
  3>Where name="pubs2" #|":(` Q  4>go ?F&4\e%  
  如果得到(1 row affected),则 vQy3so3z  
  1>commit HJ#W&C  
  2>go $iU5u2_YK`  
   否则 4Fzv*7i/  
1>rollback hs*J{pr @_  
  2>go % -3%P  
_NuffRi[O  
  1>sp_configure "allow updates" ,0 o*Vh~E~  
  2>go MB U*  
   (5)重新启动ASE. 9$oDn)(U  
(6) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option. S;45@^  
_Bvah  
(7) 当数据库已经恢复可使用状态后,运行dbcc命令检查数据库的一致性(参照“如何检查数据库中数据一致性”文章) qinCta#  
PBaukSZ  
(8) 备份用户数据库 v[F XDn j#  
   例如: C"%RPv#  
  1>dump database pubs2 to "/usr/sybase/pubs2.dup" A/38)HN  
  2>go Z)OP4Hj  
\ | EEk 
来源:赛迪论坛
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved