Sybase SQL Server日志问题普及
2010-06-19 15:12:44 来源:WEB开发网八、Threshold 和transaction log 管理
SQL Server提供阈值管理功能,它能帮助用户自动监视数据库log设备段的自由空间。
在使用Sybase数据库管理系统(SQL Server)开发企业应用系统时,或者开发好的数据库 应用系统投入实际运行后,由于用户不断地增加或者修改数据库中的数据,用户数据库的自由 存储空间会日益减少。特别是数据库日志,增长速度很快。一旦自由空间用尽,SQL Server在 缺省情况下挂起所有数据操纵事务,客户端应用程序停止执行。这样有可能会影响企业日常业 务处理流程。Sybase SQL Server System10提供自动监视数据库自由存贮空间的机制——阈值 管理,当数据库使用剩余空间低于一定值时,通过执行一个自定义的存储过程,来控制自由空 间。在空间用完之前,采取相应措施,这样有利于业务处理顺利进行。如果能充分利用SQL Server的阈值管理功能,用户能使一些数据库管理工作自动化,规程化。所以,在此我们将 SQL Server这一重要功能介绍给读者。
SQL Server的阈值管理允许用户为数据库的某个段上的自由空间设置阈值和定义相应的存 储过程。当该段上的自由空间低于所置阈值时,SQL Server自动运行相应存储过程。与阈值相 对应的存储过程由用户定义,SQL Server不提供。一般来说,数据库管理员可通过这些存储过 程来完成一些日常管理事务,例如:
◆备份数据库,清理日志和删除旧数据
◆备份数据库日志
◆扩展数据库空间
◆拷贝出表中的内容,清理日志,等等。
1.段(Segment)
SQL Server的阈值管理是基于段(Segment)的,因此,让我们先回顾一下段的概念。每个 数据库创建时,它有三个缺值段:(1)System段;(2)default段;(3) logsegment段。 以后,还可以为该数据库增加用户自定义段。将来所有的数据库对象都建立在这些段上,要么 是系统定义的段,要么是用户定义的段。数据库的系统表存放在System段上。在没有指明段时 ,建立的对象存放在default段上。数据库的事务日志放在logsegment段上,该段是通过使用 建立数据库( Create database )命令的log on 选项来定义的。
2.最后机会阈值(Last_chance Threshold)
缺省情况下,SQLServer监测日志段的自由空间,当自由空间量低于事务日志能成功转储的 需要时,SQL Server运行sp_ thresholdaction过程。此自由空间量称为最后机会阈值( Last_chance threshold ),它由SQL Server计算得来,并且用户不能改变。
sp_thresholdaction必须由用户编写,SQL Server不提供。另外,如果最后机会阈值越出 ,那么在日志空间释放前,SQL Server一直挂起所有事务。但可以使用sp_dboption对某一数 据库来改变这一行为。设置abort tran on log full选项为true,可使得最后机会越出时, SQL Server撤回所有还未被注册的事务。
3.阈值管理
系统缺省建立最后机会阈值,由用户编写缺省阈值处理存储过程( sp_thresholdaction ),来控制自由空间。除此之外,还可以使用以下存储过程管理阈值:
◆sp_addthreshold 建立一个阈值
◆sp_dropthreshold 删除一个阈值
◆sp_helpthreshold 显示阈值有关的信息
◆sp_dboption 改变阈值的“挂起或取消”行为和取消阈值管理
◆sp_helpsegment 显示某个段上空间大小和自由空间大小的信息
更多精彩
赞助商链接