金融其它数据库

DB2重定向恢复

环境:
old :
server:  HP380
    OS:  Windows
DB2版本:企业版V9.1
DB2安装:D盘
DB、TableSpace、Log:D盘
new :
server:  HP580
    OS:  Windows
DB2版本:企业版V9.1
DB2安装:C盘(只有C、E两个盘)
DB、TableSpace、Log:E盘 (E盘空间比较大)

在旧服务器上backup数据库后,拿到新服务器上restore

由于路径变化,这种情况很显然直接restore是不对的,故需要重定向恢复。

如果你直接在新机上restore,会报如下错误:
SQL3012C  发生系统错误(原因码 = "")。无法处理后续的 SQL 语句。
解释:
发生系统错误。
用户响应:
记录消息中的消息号 (SQLCODE) 和原因码。
如果跟踪是活动的,则在操作系统命令提示符处
调用“独立跟踪设施”。然后与技术服务代表联系
并提供以下信息:
o   问题描述
o   SQLCODE 和嵌入式原因码
o   SQLCA 内容(如果有可能)
o   跟踪文件(如果有可能)。
联合系统用户:找出使请求失败的数据源中的问
题(参阅 问题确定指南 以确定哪个数据源导致 SQL
语句处理失败)并对该数据源执行必需的诊断步骤
。数据源的问题确定过程各有不同,因此参阅适用
的数据源手册。
sqlcode :  -902
sqlstate :  58005

下面是重定向恢复:(备份的文件放在新机E:databackup2008-12-26  下)

1、先在新机 db2cmd 执行以下命令:
db2 restore db Angeli  FROM "E:databackup2008-12-26" TAKEN AT 20081226092557  redirect generate script  restore.clp

生成restore.clp脚本如下:

-- *****************************************************************************
-- ** 自动创建了重定向复原脚本
-- *****************************************************************************
UPDATE COMMAND OPTIONS USING S ON Z ON Angeli_NODE0000.out V ON;
SET CLIENT ATTACH_DBPARTITIONNUM  0;
SET CLIENT CONNECT_DBPARTITIONNUM 0;
-- *****************************************************************************
-- ** 自动创建了重定向复原脚本
-- *****************************************************************************
RESTORE DATABASE Angeli
-- USER  <用户名>
-- USING '<密码>'
FROM 'E:databackup2008-12-26'TAKEN AT 20081226092557
-- ON 'D:DB2Angeli'
-- DBPATH ON '<目标目录>'
INTO Angeli
-- NEWLOGPATH 'E:DB2AngeliNODE0000SQL00002SQLOGDIR'
-- WITH <缓冲区数目> BUFFERS
-- BUFFER <缓冲区大小>
-- REPLACE HISTORY FILE
-- REPLACE EXISTING
REDIRECT
-- PARALLELISM WITHOUT ROLLING FORWARD
-- WITHOUT PROMPTING;
-- *****************************************************************************
-- ** 表空间定义(略)
-- *****************************************************************************
SET TABLESPACE CONTAINERS FOR 7
-- IGNORE ROLLFORWARD CONTAINER OPERATIONSUSING (  PATH   'DB2INFOSPACE');
-- *****************************************************************************
-- *****************************************************************************
-- ** 启动已重定向的复原
--*****************************************************************************
RESTORE DATABASE Angeli CONTINUE;
-- *****************************************************************************
-- ** 文件末尾
-- *****************************************************************************

2、修改表空间路径,修改后脚本如下:

-- *****************************************************************************
-- ** 自动创建了重定向复原脚本
-- *****************************************************************************
UPDATE COMMAND OPTIONS USING S ON Z ON Angeli_NODE0000.out V ON;
SET CLIENT ATTACH_DBPARTITIONNUM  0;
SET CLIENT CONNECT_DBPARTITIONNUM 0;
-- *****************************************************************************
-- ** 自动创建了重定向复原脚本
-- *****************************************************************************
RESTORE DATABASE Angeli
-- USER  <用户名>
-- USING '<密码>'
FROM 'E:databackup2008-12-26'
TAKEN AT 20081226092557
    ON 'E:DB2Angeli'
    DBPATH ON 'E:'
INTO Angeli
  NEWLOGPATH 'E:DB2AngeliNODE0000SQL00002SQLOGDIR'
  WITH 2 BUFFERS
  BUFFER 1024
  REPLACE HISTORY FILE
  REPLACE EXISTING
  REDIRECT
  PARALLELISM 1 WITHOUT ROLLING FORWARD
  WITHOUT PROMPTING;
-- *****************************************************************************
-- ** 表空间定义(略)
-- *****************************************************************************
SET TABLESPACE CONTAINERS FOR 7
-- IGNORE ROLLFORWARD CONTAINER OPERATIONSUSING (  PATH   'DB2INFOSPACE');
-- *****************************************************************************
-- *****************************************************************************
-- ** 启动已重定向的复原
-- *****************************************************************************
RESTORE DATABASE Angeli CONTINUE;
-- *****************************************************************************
-- ** 文件末尾
-- *****************************************************************************

3、在新机上建好相应的目录
      restore from...taken at ....ON 'E:DB2Angeli'
      DBPATH ON 'E:'
      NEWLOGPATH 'E:DB2AngeliNODE0000SQL00002SQLOGDIR'


4、执行修改后的restore.clp脚本
   db2 -tvf  restore.clp

5、命令成功完成,RESTORE成功。
参与15

15同行回答

px320067px320067其它wfefwqf
呵呵收起
互联网服务 · 2013-07-22
浏览871
wangqh_2008wangqh_2008数据库管理员科迈
回复 1# Angeli 不错,收藏了。:)显示全部
回复 1# Angeli

不错,收藏了。:)收起
互联网服务 · 2011-07-14
浏览881
124525061124525061IT顾问hisoft
虽然已经会了,还是顶一下显示全部
虽然已经会了,还是顶一下收起
IT咨询服务 · 2011-05-25
浏览941
124525061124525061IT顾问hisoft
好,学习了显示全部
好,学习了收起
IT咨询服务 · 2011-05-25
浏览943
778856778856IT支持b
我不是有意挖坟啊 我按楼主的方法做 怎么提示我 在“redirect”之后发现意外标记“generate”。期望标记包括“语句结束”。 SQLSTATE=42601诶呀 DB2的restore 折磨我 两天了  先是SQL3012c 然后又是SQL0104n...显示全部
我不是有意挖坟啊 我按楼主的方法做 怎么提示我

在“redirect”之后发现意外标记“generate”。期望标记包括“语句结束”。 SQLSTATE=42601






诶呀 DB2的restore 折磨我 两天了  先是SQL3012c 然后又是SQL0104n收起
金融其它 · 2011-04-21
浏览891
shou cang le显示全部
shou cang le收起
2009-03-09
浏览1047
原理再讲深入一些就完美了,不错啊显示全部
原理再讲深入一些就完美了,不错啊收起
2009-02-20
浏览960
foryulingforyuling系统架构师skyon
:victory:显示全部
:victory:收起
互联网服务 · 2009-02-18
浏览1000
学习了,谢啦显示全部
学习了,谢啦收起
2009-02-18
浏览986
好文章丫!显示全部
好文章丫!收起
2009-01-13
浏览967

提问者

Angeli
数据库管理员中软融鑫

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2008-12-31
  • 关注会员:0 人
  • 问题浏览:26769
  • 最近回答:2013-07-22
  • X社区推广