Sybase数据库截断和清空日志的方法

 今天碰到一个奇怪的问题,当我打开应用程序的时候,开始的时候鼠标图标还显示程序正在启动,可是一会后,就没有任何反应了。重复了N多次都是这样,后来发现,每次打开应用程序的时候,任务管理器中都会相应的多一个进程,但程序界面死活不出现。我检查了我能想到的可能出问题的每一个环节,包括Sybase数据库、配置的IP、网络等等,但终究都无济于事。最后,无奈之下只能打客服了。果然,解铃还须系铃人,当我把我的问题描述了一下,技术人员立马给我指出了问题之所在。原来不是程序的问题,而是Sybase数据库日志空间满了,无法继续再执行操作了。(好吧,这都可以)


下面就详细介绍一下截断和清空日志的方法。在做截断操作之前,建议大家先为数据库做个备份。详情请参考:Sybase数据库的备份和还原


第一步:设定Sybase数据库自动截断日志:

方法一:

isql -Usa -Ppassword -Ssybaseserver
>sp_dboption database_name,"trunc log on chkpt",true
>go
>checkpoint
>go

方法二:在sybase central 数据库属性对话框的选项页中选择“在检查点上截断日志”项。如下图:



第二步:清空日志:

方法一:

>dump transaction database_name with truncate_only
>go

通常删除事务日志中不活跃的部分可使用“dumptransaction with trancate_only”命令,这条命令写进事务日志时,还要做必要的并发性检查。

方法二:

>dump transaction databasename with no_log
>go

SYBASE提供“dumptransaction with no_log”来处理某些非常紧迫的情况,使用这条命令有很大的危险性,SQL Server会弹出一条警告信息。

到此为止,问题就解决了,你可以查看一下数据库日志文件的空间利用情况。

原文地址:https://www.cnblogs.com/jiangu66/p/3157473.html