Db2重定向恢复显示成功,但连库却报SQL1119N

问题描述: 

Db2重定向恢复的命令都没有报错(Error),显示成功,但连库却报SQL1119N: A connection to or activation of database "SAMPLE1" cannot be made because a previous restore is incomplete or still in progress.

Session 1:
inst105@db2a:~$   db2 restore db sample1 taken at 20180303061305 redirect
SQL1277W  A redirected restore operation is being performed. During a table 
space restore, only table spaces being restored can have their paths 
reconfigured. During a database restore, storage group storage paths and DMS 
table space containers can be reconfigured.
DB20000I  The RESTORE DATABASE command completed successfully.
inst105@db2a:~$ db2 "SET TABLESPACE CONTAINERS FOR 2 USING ( FILE 'file02' 10000)"
DB20000I  The SET TABLESPACE CONTAINERS command completed successfully.
inst105@db2a:~$ db2 RESTORE DATABASE sample1 CONTINUE
SQL1277W  A redirected restore operation is being performed. During a table 
space restore, only table spaces being restored can have their paths 
reconfigured. During a database restore, storage group storage paths and DMS 
table space containers can be reconfigured.
DB20000I  The RESTORE DATABASE command completed successfully.
inst105@db2a:~$  db2 connect to sample1
SQL0752N  Connecting to a database is not permitted within a logical unit of 
work when the CONNECT type 1 setting is in use.

Session 2:
inst105@db2a:~$ db2 connect to sample1
SQL1119N  A connection to or activation of database "SAMPLE1" cannot be made 
because a previous restore is incomplete or still in progress.  SQLSTATE=57019

原因解析:

其实,如果真正恢复成功的话,第三步的db2 RESTORE DATABASE sample1 continue命令是不应该再有SQL1277W 的warning的。如果查看db2diag.log,则会发现有Warning,这里的warning是说set tablespace container时指定的数据页太少,应该至少为81952页
2018-03-03-06.47.58.865029-480 I37572E871            LEVEL: Warning
PID     : 1507                 TID : 140060812896000 PROC : db2sysc 0
INSTANCE: inst105              NODE : 000            DB   : SAMPLE1
APPHDL  : 0-138                APPID: *LOCAL.inst105.180303144743
AUTHID  : INST105              HOSTNAME: db2a
EDUID   : 1021                 EDUNAME: db2agent (SAMPLE1) 0
FUNCTION: DB2 UDB, database utilities, sqludCheckRedirectedStatus, probe:1154
DATA #1 : <preformatted>
Insufficient space in tablespace USERSPACE1; you must have at least 81920
usable pages. (The "usable pages" total does not include pages used
internally by DB2, so the value specified on the SET TABLESPACE
CONTAINERS operation should be increased by one extent per container.
Based on the latest SET TABLESPACE CONTAINERS values specifed, the
tablespace should have 81952 pages in total.)

在之前备份的时候,表空间USERSPACE1的使用状态如下,可以看到,虽然Used pages很少,只有160,但重定向恢复要求SET TABLESPACE CONTAINERS 时指定的页数要大于高水位,这里的高水位是81920,但SET TABLESPACE CONTAINERS 指定值为10000,所以会有上面的Warning,导致数据库实际上没有恢复成功:
 Tablespace ID                        = 2
 Name                                 = USERSPACE1
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0000
   Detailed explanation:
     Normal
 Total pages                          = 524288
 Useable pages                        = 524256
 Used pages                           = 160
 Free pages                           = 524096
 High water mark (pages)              = 81920
 Page size (bytes)                    = 4096
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1
 

解决方案

可以在Session 1里使用 db2 RESTORE DATABASE sample1 abort,或者直接删除数据库,然后重新从头开始恢复(RESTORE DATBASE .. REDIRECT),恢复到SET TABLESPACE CONTAINERS这一步时指定一个足够大的页数。

Session 1:

inst105@db2a:~$  db2 RESTORE DATABASE sample1 abort
SQL2001N  The utility was interrupted.  The output data may be incomplete.
inst105@db2a:~$ db2 restore db sample1 taken at 20180303061305 redirect
SQL1277W  A redirected restore operation is being performed. During a table 
space restore, only table spaces being restored can have their paths 
reconfigured. During a database restore, storage group storage paths and DMS 
table space containers can be reconfigured.
DB20000I  The RESTORE DATABASE command completed successfully.
inst105@db2a:~$ db2 "SET TABLESPACE CONTAINERS FOR 2 USING ( FILE 'file02' 100000)"
DB20000I  The SET TABLESPACE CONTAINERS command completed successfully.
inst105@db2a:~$ db2 RESTORE DATABASE sample1 continue
DB20000I  The RESTORE DATABASE command completed successfully.
inst105@db2a:~$ db2 connect to sample1

   Database Connection Information

 Database server        = DB2/LINUXX8664 10.5.8
 SQL authorization ID   = INST105

 Local database alias   = SAMPLE1


参考资料:

http://www-01.ibm.com/support/docview.wss?uid=swg21246513
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值