电脑技术学习

用一个实际案例讲解Sybase数据库日志截断

dn001
案例:客户来电反映,系统崩溃,业务骤停。赶到现场后发现IBM 560正在运行,经询问后得知Sybase客户端无法连接。

解决过程:进系统,进数据库SP_WHO,发现全是SEELP。再看Sybase日志,原来日志已满.再这里可以使用简单快捷的"dump transaction database_name with no_log"来解决此问题,本文中我们将介绍两外两种解决方法。

处理方法有两个:

1.截断日志

2.添加日志空间

当下又不敢贸然截断日志,天知道他们在做些什么事务,还是给他们添加日志空间先再说.

建LV 并修改属性

mklv log_lv3 rootvg 3

chown sybase:sybase /dev/*log_lv3

建SYBASE设备并添加日志空间

1> disk init name="dev_log03",physname="/dev/log_lv3",vdevno=21,size=1024000

2> go

1> alter database xxxx log on dev_log03 = "2000M"

2> go

添加完之后再用SP_WHO一看,一切正常。

下面需要考虑日志为什么会满。开始检查并设置日志截断,先用sp_helpdb看一下,原来@#$%^状态是no options set,所以才会出现此现象,最后做如下设置即可。

use master

go

sp_dboption database name,trunc,true

go

use database name

go

checkpoint

go