Chinaunix首页 | 论坛 | 博客
  • 博客访问: 402898
  • 博文数量: 49
  • 博客积分: 2562
  • 博客等级: 少校
  • 技术积分: 417
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-03 09:10
个人简介

时不我待。

文章分类

全部博文(49)

文章存档

2024年(1)

2020年(3)

2013年(1)

2012年(5)

2011年(9)

2010年(4)

2009年(9)

2008年(15)

2005年(2)

分类: Sybase

2008-06-20 16:19:06

    昨天下午领导通知去“救火”,Solaris 下 Sybase数据库只能读取,不能写入。中午没吃饭直奔现场。到达现场,听着领导将到数据的重要性,都不敢动数据库了。

   dbdata数据库状态显示不能Online,由于日志空间系统慢导致Sybase数据库不能操作,同时也不能添加日志文件,提示数据文件超过最大设备数(吃了集成商的亏了!),查看"
number of devices"参数,是默认值,也就是最多只能添加10个设备,而现在已经都10个了。

   说干就干,先停止数据库修改最大设备数(为问题埋下祸水,应该先对事务日志使用dump with no_truncate 方式删除,千万不要启动sybase数据库)。
   修改$SYB_HOME/ASE_12.5/dbserver.cfg的"number of devices = 100",启动数据库,提示不能正确online数据库。

   没有头绪,在网上搜索,网络还是个好东西,很快就有解决数据库不能Online的方法:将数据库质疑后,启动Sybase数据库,使用截断日志的方法Online数据库。

   使用isql登录Server,需要使用SA帐号
1>sp_configure "allow updates to system tables",1
                                 --让系统数据库可以更改
2>go
1>update master..sysdatabases
2>set status=-32768
3>where name="dbdata"            --dbdata数据库处于质疑状态
4>go
1>shutdown with nowait
2>go

   重启Server,再用sa帐号登录到server上,注意观察系统日志,位于$SYB_HOME/ASE_12.5/install/dbserver.log,当系统完全启动后,进行以下操作。

1>update master..sysdatabase
2>set status=0
3>where name="dbdata"
4>go
1>sp_configure "allow updates",1
2>go

   重新设置数据库原有的选项。Online 数据库,数据库不能online。重试若干次,问题依旧。
  
   分析问题:
   此问题为数据库日志满导致数据库不能online数据库,应添加日志文件,保证日志能够正常写入。

   正常状态下不能online 数据库,在质疑状态下才能online。在质疑状态下,将日志文件添加到数据库中,启动数据,依旧不能Online。在质疑状态下不能使用no_truncate方式截断日志,只能使用no_log方式。
  

   质疑数据库,使用-32768模式启动数据库

1>dump trun '/backup/dbdatalog.bak' with no_log 
                   --此方法非常危险,不是万不得已,不要使用。

2>go
1>update master..sysdatabase set status=8 where name='dbname'      --状态8为事务在检查点后截断日志
2>go
1>sp_configure "allow updates to system tables",0
2>go
1>shutdown

   至此,数据库恢复正常,添加日志文件到dbdata数据库中,系统可以正常使用。
  
   总结:
      1.系统在安装配置完成后要做基本的参数调整,包括设备数、cache大小等。
      2.系统出现问题有不能急于处理问题,应该对所处的问题进行详细的分析,避免走弯路。



   
阅读(4924) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~