SYBASE 日志空间满了的几种情况

Posted 一直想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SYBASE 日志空间满了的几种情况相关的知识,希望对你有一定的参考价值。

1、在数据库执行SQL语句时,执行不成功,报错:日志空间已满(***log full**)的错误

解决方法:执行 dump transaction DB_TASK with truncate_only   即可

2、在java项目运行时控制台报错:Space available in the log segment has fallen critically low in database ‘DB_TASK_R11‘.  All future modifications to this database will be aborted until the log is successfully dumped and space becomes available.

这个时候再用1的方法就不可以了,可以用一下方法:

sp_helpdb ‘DB_TASK_R11‘   -----在【device_fragments】字段查到对应日志文件的名称,例如:DEV_TASK_LOG01_R11

sp_helpdevice ‘DEV_TASK_LOG01_R11‘  ------查看原来日志文件存储的物理位置,查看查询结果的【physical_name】字段 结果为:C:\sybase\data\DEV_TASK_LOG01_R11.dat

 

disk init name = ‘DEV_TASK_LOG02_R11‘,
physname = ‘C:\sybase\data\DEV_TASK_LOG02_R11.dat‘,
size = ‘150M‘, dsync = false
go              --------在同样的物理位置上,参照日志文件1的名字创建日志文件2,大小视数据库的情况而定,一般不要超过DATA的大小

 

ALTER DATABASE DB_TASK_R11
log ON DEV_TASK_LOG02_R11 = 150
go                      ----------将新建的日志挂到对应数据库上

 

百度查询的是需要重启数据库才会生效,但是我没有重启数据库,重新运行java的web项目也没有在报这个错误,如果还报错可以重启一下数据库应该就好了。

 

PS:SELECT COUNT(*) FROM DB_TASK_R11..syslogs      ---这个语句可以查看数据库的日志里面的记录数

 

以上是关于SYBASE 日志空间满了的几种情况的主要内容,如果未能解决你的问题,请参考以下文章

如何处理Sybase临时表空间tempdb已满的问题

SYBASE扩充日志段空间

SQL Server 2005删除日志文件的几种方法小结

linux-linnode满了的提示

如何检查oracle的归档空间是不是满了

mac磁盘清理的几种方法