`
- 浏览:
11790207 次
- 性别:
- 来自:
深圳
-
通过定时任务自动清理长时间挂着没commit的事物
SYBASE ASE 的每一个数据库,无论是系统数据库(master,model, sybsystemprocs, tempdb),还是用户数据库,都有自己的transaction log,每个库都有syslogs表。Transaction Log记录用户对数据库修改的操作。以下对一些日志满的常见例子进行分析。
一、数据库日志空间建的太小日志大小主要与事务的大小,并发,数据量的大小有关。如果事务日志建立太小,数据库日志满,导致事务被挂起。当出现日志空间不够时,在数据库的错误日志里面会出现1105的错误报告。对于这种情况,管理员可以通过alter database命令来扩大数据库的日志空间。二、数据库日志长时间没有删除如果不用命令清除, log会一直增长直至占满空间。清除log可用dump transaction 命令,可以将上述命令放在系统的定时命令中,让系统自动执行来定期清除日志。开放数据库自动清日志选项,sp_dboption ‘dbname’,’trunc log on checkpoint’,’true’,数据库会每隔一段间隔自动清除log。不过设置改数据库选项会对数据库的性能有不利的影响,所以建议采用定期删除日志的办法。三、存在不完整的事务有时候虽然采用了定期删除日志或是将开放了自动清日志的数据库选项,但仍然出现了日志满的情况。出现这种情况是由于不完整的事务引起的。引起不完整的事务主要有两个方面的原因:第一是网络质量不佳,如果在客户端向ASE服务端进行事务时,如果网络突然中断,会导致事务的不完整。第二是应用程序存在不完整的事务,例如存储过程中某一出口没有提交事务,导致事务的不完整。如果存在不完整的事务,在改事务之后的所有事务都不能被清除,导致数据库日志满。解决这类问题,主要是根据引起不完整事务的原因来解决,如解决网络问题,检查引起不完整事务的程序。在网络问题不能解决,或是应用程序一时不好修改的情况下,通过以下存储过程自动清除不完整的事务,也可以避免日志满:create proc proc_kill@last_min intAS/*** kill the processes that does'nt commit during the period that you think it's impossible**** the parameter' time unit is minute*/declare @spid intdeclare @cspid char(20)selectspidinto #killtab frommaster..syslogshold where datediff(mi,starttime,getdate()) >@last_min and spid>0declare t1_curcursor for select *from#killtabopent1_curfetch t1_cur into @spidwhile @@sqlstatus!=2begin select@cspid=convert(char(20),@spid) select"kill"+@cspid exec("kill "+@cspid) fetch t1_cur into @spidend将以上存储过程放在系统的定时命令中,让它定期检查不完整的事务,并将不完整的事务kill。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
svn 自动 commit 的实现 , 详见 博文 “svn 自动 commit 的实现”
commit-comments 会根据你代码中评论的变化而自动创建一个提交评论的无序列表。使用关键字 @commit 写评论时,commit-comments 会你在点击提交时,自动添加你的评论信息。依赖:GNU sed 需要在 post-commit 中移除 @...
idea commit 模板插件
需要被合并的commit信息,将pick命令改为 s 命令,将s合并到pick上,时间上是s向更早的pick上合并;ESC 输入 :wq 回车 弹出信息,ESC 输入 :wq 回车 打印出成功 git log oneline -n,查看n条log信息,已修改
commit工业调试1.4
使用方式: 1、解压package.rar package.rar 2、进入package文件夹,右键打开git bash 3、执行 sh install.sh 进行...4、执行git init 命令,查看当前目录是否生成 .git/gitcommit 和 .git/hooks/commit-msg 验证
任务简述:使用Python自动化程序,把file.txt在早上6点准时拖动到微信并发送。 0 准备 首先需要考虑的是如何通过Python模拟鼠标操作。在此我货比三家: module stars latest commit Pyuserinput 903 2016.2.26...
该篇文档记录了通过容器提交镜像(docker commit)以及推送镜像(docker push)的操作过程,在此分享,希望能帮助到有用到的朋友!
The Paxos Commit algorithm runs a Paxos consensus algorithm on the commit/abort decision of each participant to obtain a transaction commit protocol that uses 2F + 1 coordinators and makes progress ...
svn commit-email For mail list
commit-msg 提交信息commit-msg 提交信息commit-msg 提交信息commit-msg 提交信息commit-msg 提交信息commit-msg 提交信息
里面包含了pre-commit.bat批处理和pre-commit.exe两种方式
MySQL事物实现原理之组提交(group commit).pdf
基于 git commit 生成时间计算自己的加班时长
04★Git入门★第一次提交_git_commit
commit用法小结PPT课件.pptx
windows环境svn服务器,提交限制文件大小脚本,pre-commit.bat,限制大小为byte
commit-template-idea-plugin commit-template-idea-plugin commit-template-idea-plugin
配置VisualSVN时设置pre-commit要求输入说明