ABC
作者ABC·2011-05-21 09:28
数据库运维工程师·ABC

数据库日志的维护

字数 6081阅读 2527评论 0赞 0

使用 db2cklog 工具来检查归档日志文件

检查归档日志文件可确保需要前滚恢复时已知正常的日志文件可用并且恢复操作不会因为日志文件存在问题而失败。本主题中的信息告诉您如何使用 db2cklog 工具来检查日志文件以及日志文件验证未通过时如何操作。

开始之前

您需要对归档日志文件具有读许可权,以便 db2cklog 工具可读取日志文件并执行其检查。只有已关闭的日志文件(例如,归档日志文件)才能通过验证。如果对仍处于活动状态的日志文件运行此工具,那么此工具无法准确检查该文件,并且您将接收到一条警报,以便让您知道此文件仍处于活动状态。

关于此任务

db2cklog 工具读取单个日志文件或一定范围的编号日志文件并检查文件的内部有效性。通过验证并且没有任何错误消息或警报的日志文件是已知正常文件,可在前滚恢复操作期间使用这些文件。如果归档日志文件未通过验证并带有错误消息或返回了警报,那么不能在前滚恢复期间使用该日志文件。未通过验证的归档日志文件无法修复,并且您应遵循此任务中概述下一步如何操作的响应。

在以下场景中检查归档日志文件是否有用:

  • 刚好在前滚操作启动之前:如果需要执行前滚恢复操作,那么可先对执行前滚操作所需的所有归档日志文件运行 db2cklog 工具以确保这些日志文件有效。预先针对这些日志文件运行 db2cklog 工具有助于避免恢复操作因为日志文件存在问题而中途失败从而需要后续恢复操作。
  • 每次日志文件关闭并复制至日志归档目录时:作为日常操作的一部分,可检查归档日志文件作为额外预防以确保已知正常日志文件始终可用。通过此预防措施,您会立即知道是否需要查找日志文件的副本,或者是否需要完整数据库备份来建立新恢复点。这有助于减少需要前滚恢复时的任何延迟。

过程

要检查归档日志文件,应从命令行发出 db2cklog 命令并包括要检查的日志文件。请注意,使用 db2cklog 命令时不应指定完整日志文件名,而应仅指定包含在日志文件名中的数字标识。例如,S0000001.LOG 日志文件的数字标识为 1,例如,为检查该日志文件,您指定 db2cklog 1。如果这些归档日志文件不在当前目录中,请使用可选的 ARCHLOGPATH 参数添加这些日志文件的相对或绝对路径。

1.     如果要检查单个归档日志文件的有效性,请使用该命令将此日志文件的数字标识指定为 log-file-number1。例如,要检查/home/amytang/tests 目录中的 S0000000.LOG 日志文件的有效性,请发出命令 db2cklog 0 ARCHLOGPATH /home/amytang/tests

2.     如果要检查一定范围的归档日志文件的有效性,请使用该命令指定该范围的第一个和最后一个数字标识(从 log-file-number1 log-file-number2)。系统会检查此范围内的所有日志文件,除非使用 log-file-number2 参数指定的范围上限数字比使用log-file-number1 指定的范围起点数字低。在此情况下,仅检查 log-file-number1。例如,为检查/home/nrichers/tests 目录中从 S0000000.LOG  S0000005.LOG 的日志文件的有效性,您发出命令 db2cklog 0 TO 5 ARCHLOGPATH /home/nrichers/tests

结果

db2cklog 工具将对通过验证的任何文件返回零返回码。如果指定了一定范围的编号归档日志文件,那么 db2cklog 工具将按顺序读取每个文件,对每个文件执行检查并发出返回码。此工具会在遇到第一个错误时停止,即使指定了一定范围的日志文件并且此工具还有其他文件未检查也是如此。发现错误时返回的 DBT 消息可提供有关归档日志文件未通过验证的原因的更多信息,但您无法修正无效日志文件。如果接收到 DBT 警报消息,指示日志文件可能仍处于活动状态但您确切知道此文件是归档日志文件,那么您应将此归档日志文件视为无效并应遵循此任务中概述的有关下一步如何操作的响应。

示例

以下示例显示 db2cklog 命令解析日志文件(在此情况下为 S0000002.LOG)时的典型输出。此文件通过验证并且返回码为零。

$ db2cklog 2                                                     

     ____________________________________________________________________

 

                      _____     D B 2 C K L O G     _____

 

                            DB2 Check Log File tool

                                 I    B    M

 

 

          The db2cklog tool is a utility can be used to test the integrity

        of an archive log file and to determine whether or not the log file

                  can be used in the rollforward database command.

 

      ____________________________________________________________________

 

 

________________________________________________________________________________

 

 

 

========================================================

"db2cklog": Processing log file header of "S0000002.LOG"

 

"db2cklog": Processing log pages of "S0000002.LOG" (total log pages: "316840")

            ==> page "1" ...

            ==> page "25001" ...

            ==> page "50001" ...

            ==> page "75001" ...

            ==> page "100001" ...

            ==> page "125001" ...

            ==> page "150001" ...

            ==> page "175001" ...

            ==> page "200001" ...

            ==> page "225001" ...

            ==> page "250001" ...

            ==> page "275001" ...

            ==> page "300001" ...

 

"db2cklog": Finished processing log file "S0000002.LOG". Return code: "0".

========================================================                                                   

下一步做什么

如果归档日志文件未通过验证,那么响应取决于此日志文件是否有可通过 db2cklog 工具的验证的副本。如果不确定是否有此日志文件的副本,请检查 logarchmeth2 配置参数的设置,此设置会确定数据库服务器是否对每个日志文件的另一副本进行了归档。如果要验证的日志正在归档,并且还在数据服务器上配置了日志镜像,那么您可能仍可在日志镜像路径中找到此日志文件的副本,因为数据服务器未在归档后立即回收日志文件。

  • 如果您有此归档日志文件的副本,请对该副本使用 db2cklog 命令。如果此日志文件的副本通过验证,请将无法读取的日志文件替换为此日志文件的有效副本。
  • 如果此归档日志文件只有一个副本,并且无法验证该副本,那么此日志文件无法修复,并且无法用于前滚恢复。在此情况下,必须尽快进行完整数据库备份以建立新的不依赖于不可用日志文件进行前滚恢复的最近恢复点。

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广