[db2前滚命令输出在非目录分区的“已处理日志文件”列中显示'-'

问题描述 投票:0回答:1

我已在还原命令后前滚数据库。以下是查询的输出:

  db2 "rollforward db hdpf1 query status"

                                 Rollforward Status

 Input database alias                   = hdpf1
 Number of members have returned status = 3

 Member ID    Rollforward                 Next log             Log files processed        Last committed transaction
              status                      to be read
 -----------  --------------------------  -------------------  -------------------------  --------------------------
           0  DB  pending                 S0001422.LOG                     -              2019-10-22-17.26.46.000000 UTC
           1  DB  pending                 S0004726.LOG                     -              2019-10-22-17.40.25.000000 UTC
           2  DB  pending                 S0004583.LOG                     -              2019-10-22-17.52.59.000000 UTC
db2 "rollforward db hdpf1 to end of logs on all dbpartitionnums OVERFLOW LOG PATH ('/home/db2inst1/logs/db2inst1/HDPF1’)”
 
                                 Rollforward Status
 
Input database alias                   = hdpf1
Number of members have returned status = 3
 
Member ID    Rollforward                 Next log             Log files processed        Last committed transaction
              status                      to be read
-----------  --------------------------  -------------------  -------------------------  --------------------------
           0  DB  working                 S0001423.LOG         S0001422.LOG-S0001422.LOG  2019-10-27-07.32.56.000000 UTC
           1  DB  working                 S0004727.LOG                     -              2019-10-25-03.05.53.000000 UTC
           2  DB  working                 S0004584.LOG                     -              2019-10-25-03.04.32.000000 UTC
 
DB20000I  The ROLLFORWARD command completed successfully.

$ db2_all "db2 get db cfg for hdpf1 | grep -i 'First active log file'"
 
First active log file                                   = S0001421.LOG
db2 get db cfg for ... completed ok
 
First active log file                                   = S0004725.LOG
db2 get db cfg for ... completed ok
 
First active log file                                   = S0004582.LOG
db2 get db cfg for ... completed ok
 

似乎应用日志之前的状态是:

  1. 对于NODE0000,登录号为S0001421.LOG
  2. 对于NODE0001,登录号为S0004725.LOG
  3. 对于NODE0002,登录号为S0004582.LOG

然后,用户为日志提供了以下范围:

  1. 对于NODE0000:S0001421.LOG-S0001423.LOG
  2. 对于NODE0001:S0004725.LOG-S0004726.LOG
  3. 对于NODE0002:S0004582.LOG-S0004583.LOG

提供的日志已应用于数据库,我不确定为什么节点1和2的“已处理日志文件”列为空白。

我可以看到分区1和分区2中的日志编号更改(“下一个要读取的日志”列已更新),但输出未显示分区1和分区2的“已处理日志文件”列。可能的原因?

`

当我尝试另一个数据库时,此值也反映在非目录节点上:`

db2 "rollforward db hdpf2 query status"

                                 Rollforward Status

 Input database alias                   = hdpf2
 Number of members have returned status = 4

 Member ID    Rollforward                 Next log             Log files processed        Last committed transaction
              status                      to be read
 -----------  --------------------------  -------------------  -------------------------  --------------------------
           0  DB  pending                 S0000052.LOG                     -              2019-10-30-07.36.45.000000 UTC
           1  DB  pending                 S0000038.LOG                     -              2019-10-30-07.37.01.000000 UTC
           2  DB  pending                 S0000040.LOG                     -              2019-10-30-07.37.07.000000 UTC
           3  DB  pending                 S0000038.LOG                     -              2019-10-30-07.37.13.000000 UTC


db2 "rollforward db hdpf2 to end of logs on all dbpartitionnums OVERFLOW LOG PATH ('/home/db2inst1/log/HDPF')"

                                 Rollforward Status

 Input database alias                   = hdpf2
 Number of members have returned status = 4

 Member ID    Rollforward                 Next log             Log files processed        Last committed transaction
              status                      to be read
 -----------  --------------------------  -------------------  -------------------------  --------------------------
           0  DB  working                 S0000060.LOG         S0000052.LOG-S0000059.LOG  2019-10-31-10.32.32.000000 UTC
           1  DB  working                 S0000040.LOG         S0000038.LOG-S0000039.LOG  2019-10-30-07.37.01.000000 UTC
           2  DB  working                 S0000042.LOG         S0000040.LOG-S0000041.LOG  2019-10-30-07.37.07.000000 UTC
           3  DB  working                 S0000040.LOG         S0000038.LOG-S0000039.LOG  2019-10-30-07.37.13.000000 UTC

DB20000I  The ROLLFORWARD command completed successfully.

db2 db2-luw database-restore roll-forward
1个回答
0
投票

这仅仅是因为ROLLFORWARD命令在目录分区(成员0)上(并且只能)被调用,并且从那里控制其他分区上的日志重播。

© www.soinside.com 2019 - 2024. All rights reserved.