WEB开发网
开发学院数据库DB2 DB2事务日志使用经验 阅读

DB2事务日志使用经验

 2008-11-24 16:34:15 来源:WEB开发网   
核心提示: 其次,总有些我们无法预料的操作发生,DB2事务日志使用经验(7),可能某个维护人员某天发出一个不适当的命令,删除了大量的数据,占用的日志不能被重用,导致日志满现在看另外一个场景,导致日志满,整个系统无法运行

其次,总有些我们无法预料的操作发生,可能某个维护人员某天发出一个不适当的命令,删除了大量的数据,导致日志满,整个系统无法运行,如何规避这样的操作带来的系统运行影响呢?可以设置参数:max_log和DB2_FORCE_APP_ON_MAX_LOG注册变量。

max_log此参数指示一个事务可以消耗的主日志空间的百分比。该值是为 logprimary 配置参数指定的值的百分比。如果该值设置为 0,那么对一个事务可以消耗的总的主日志空间的百分比没有限制。我们可以配合设置DB2_FORCE_APP_ON_MAX_LOG注册变量来规定如果应用程序违反了 max_log 配置,我们对该应用如何处理,DB2_FORCE_APP_ON_MAX_LOG设置为true,则超过max_log的应用回被强制与数据库断开连接,事务将被回滚,并且将返回错误 SQL1224N。如果 DB2_FORCE_APP_ON_MAX_LOG 注册表变量设置为 FALSE,则违反了max_log设置的的事务将失败,并返回错误 SQL0964N。该应用程序仍然可以提交在工作单元中由先前语句完成的工作,它也可以回滚已完成的工作以撤销该工作单元。

通过次设置我们可以保证即使有大事务操作,总有(1-max_log/100)*log_primary+log_second的日志可以用来处理日常交易,从而避免系统中断。

注意: 由 max_log 配置参数施加的限制不适用于下列 DB2 命令:ARCHIVE LOG、BACKUP DATABASE、LOAD、REORG TABLE(联机)、RESTORE DATABASE 和 ROLLFORWARD DATABASE。

C、 事务日志满场景二:某个事务一直未提交,占用的日志不能被重用,导致日志满

现在看另外一个场景,我在一个会话中执行了如下命令:

C:Documents and Settingsadministrator>db2 +c call proc_testlog(3)

SQL0964C 数据库的事务日志已满。 SQLSTATE=57011

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:DB 事务 日志

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接