You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用重定向恢复DB2在线备份后执行前滚操作失败

问题:DB2恢复后执行Rollforward报错SQL0752N,Restore进程卡住

我执行的恢复命令

create db MYDBNAME 
restore db MYDBNAME from D:\ on C: dbpath on C: NEWLOGPATH 'C:\DB2\NODE0000\MYDBNAME\LOGS\' REDIRECT 
SET TABLESPACE CONTAINERS FOR 9 USING (PATH 'TBSP32K0000') 
SET TABLESPACE CONTAINERS FOR 11 USING (PATH 'TBSP32K0001') 
SET TABLESPACE CONTAINERS FOR 13 USING (PATH 'TBSP32K0002') 
SET STOGROUP PATHS FOR IBMSTOGROUP ON 'C:\' 
restore db MYDBNAME continue 
rollforward db MYDBNAME to end of logs and complete

备份文件信息

MEDIA HEADER REACHED: 
=====================
Server Database Name -- MYDBNAME
Server Database Alias -- MYDBNAME
Client Database Alias -- MYDBNAME
Timestamp -- 20180430230002
Database Partition Number -- 0
Instance -- CTGINST2
Database Configuration Type -- 0 (Non-shared data)
Sequence Number -- 1
Database Member ID -- 0
Release ID -- 0x1000 (DB2 v10.5)
AL version -- V:10 R:5 M:0 F:9 I:0 SB:0
Database Seed -- 0x4F18E7E4
DB Comment's Codepage (Volume) -- 0
DB Comment (Volume) -- 
DB Comment's Codepage (System) -- 0
DB Comment (System) -- 
Authentication Value -- 255 (Not specified)
Backup Mode -- 1 (Online)
Includes Logs -- 1 (Yes)
Compression -- 1 (Compressed)
Backup Type -- 0 (Database-level)
Backup Granularity -- 0 (Non-incremental)
Merged Backup Image -- 0 (No)
Status Flags -- 0x60
LOGARCHMETH1 is set
LOGARCHMETH2 is set
System Catalogs in this image -- 1 (Yes)
Catalog Partition Number -- 0
DB Codeset -- UTF-8
DB Territory -- GB
LogID -- 1323886033
LogPath -- X:\DBLOGS\NODE0000\LOGSTREAM0000\
Backup Buffer Size -- 4194304 (1024 4K pages)
Number of Sessions -- 1
Platform -- 0x17 (NT-64)

遇到的问题

  1. 执行最终的rollforward命令时触发错误:

SQL0752N Connecting to a database is not permitted within a logical unit of work when the CONNECT type 1 setting is in use. SQLSTATE=0A001

  1. 查看dbdiag.log得到:

Rollforward failed to connect to database. sqlcode -752.

  1. 后续查询结果:
  • 执行list tablespaces show details,所有表空间状态为restore pending, storage may be defined
  • 执行list utilities show detail,发现restore工具一直处于Executing状态,没有进展

环境说明

  • DB2版本:10.5(运行在Windows Server 2008 R2)
  • 备份文件位置:D:\根目录
  • DB2安装路径:C:\DB2\

解决思路和步骤

我之前处理过类似的恢复卡住+Rollforward报错的情况,咱们一步步来搞定:

1. 先终止卡住的Restore进程

首先得把一直卡在Executing状态的restore进程停下来,不然后续操作都没法正常进行:

  • 先查找到当前运行的restore工具ID:
    list utilities show detail
    
  • 用工具ID终止进程:
    terminate utility <你的restore工具ID>
    
  • 如果上面的命令没效果,就强制断开所有应用并重启DB2实例:
    force application all
    db2stop force
    db2start
    

2. 检查并准备好所有必要的路径

从你的恢复命令看,指定了几个表空间容器路径和新日志路径,这些路径必须提前创建好,而且DB2实例用户要有读写权限:

  • 手动创建以下路径:
    • C:\TBSP32K0000
    • C:\TBSP32K0001
    • C:\TBSP32K0002
    • C:\DB2\NODE0000\MYDBNAME\LOGS\
  • 确认这些路径的权限,给DB2实例用户(比如CTGINST2)分配完全控制权限

3. 重新执行恢复流程,确保每一步完成后再走下一步

这次要放慢节奏,每一步都确认完成后再执行下一个命令:

  1. 先删除之前残留的数据库(如果存在):
    drop db MYDBNAME
    
  2. 创建空数据库:
    create db MYDBNAME
    
  3. 执行带REDIRECT的restore命令,这一步会暂停等待容器配置:
    restore db MYDBNAME from D:\ on C: dbpath on C: NEWLOGPATH 'C:\DB2\NODE0000\MYDBNAME\LOGS\' REDIRECT
    
  4. 配置表空间容器和存储组:
    SET TABLESPACE CONTAINERS FOR 9 USING (PATH 'C:\TBSP32K0000')
    SET TABLESPACE CONTAINERS FOR 11 USING (PATH 'C:\TBSP32K0001')
    SET TABLESPACE CONTAINERS FOR 13 USING (PATH 'C:\TBSP32K0002')
    SET STOGROUP PATHS FOR IBMSTOGROUP ON 'C:\'
    
  5. 继续执行restore,这一步要等它完全完成(用list utilities show detail确认状态变成Completed):
    restore db MYDBNAME continue
    
  6. 最后执行rollforward,最好新开一个DB2命令行窗口执行,避免同一个会话的LUW冲突:
    rollforward db MYDBNAME to end of logs and complete
    

4. 关于SQL0752N错误的补充说明

这个错误本质是因为在同一个逻辑工作单元(LUW)里,使用CONNECT Type 1时不允许重复连接数据库。你之前遇到这个问题,大概率是因为restore还没完成就急着执行rollforward,或者在同一个会话里连续执行这些命令导致LUW冲突。所以一定要等restore彻底完成,最好换个新会话执行rollforward,就能避免这个问题。


内容的提问来源于stack exchange,提问作者falter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:35:44