DB2数据库表空间重定向恢复实例分析

一、发出重定向恢复命令

DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT

其中,OLDDB是旧数据库、备份的数据库名称,NEWDB是新数据库名称,不用事先创建也可以,C:\OLDDBbak是备份文件放置的目录,20150717164847是

备份文件的时间戳,具体可看备份文件的名字OLDDB.0.DB2.NODE0000.CATN0000.20150717164847.001,TO "C:"是新数据库的路径,REDIRECT是进行重定向恢复。

二、重定向表空间

2.1列出表空间

DB2 LIST TABLESPACES

可以看到当前数据库的表空间状况

表空间标识                          = 2
 名称                                = SYSTOOLSTMPSPACE
 类型                                = 系统管理空间
 内容                                = 用户临时数据
 状态                   = 0x2000100
   详细解释:
     复原暂挂
     可以定义存储器

 表空间标识                          = 3
 名称                                = TBS_01
 类型                                = 数据库管理空间
 内容                                = 所有持久数据。大型表空间。
 状态                   = 0x2001100
   详细解释:
     复原暂挂
     必须定义存储器
     可以定义存储器

可以看到表空间3是“必须定义存储器”状态,这就要进行重定向了。

2.2查看要进行重定向的表空间详细信息

DB2 LIST TABLESPACE CONTAINERS FOR 3 SHOW DETAIL

结果如下

表空间 3 的表空间容器

 容器标识                            = 0
 名称                                = E:\OLDDB\TBS\CONTAINER_01_01
 类型                                = 文件
 总计页数                            = 25600
 可用页数                            = 25568
 可访问                              = 否
 容器标识                            = 1
 名称                                = E:\OLDDB\TBS\CONTAINER_01_02
 类型                                = 文件
 总计页数                            = 25600
 可用页数                            = 25568
 可访问                              = 否

可以看到,这个表空间的路径在目标系统是不可访问的,要进行重定向。

2.3进行重定向

这个表空间有两个容器,可以分别重定向

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01_01" 25600,FILE "C:\NEWDB\TBS\CONTAINER_01_02" 25600)

也可以合并重定向

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01" 51200)

页大小要大于等于原大小

这是数据库管理空间类型的重定向,如果是系统管理空间类型的,命令如下:

DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")

可能有很多个表空间要进行重定向,按实际环境,最后要执行的命令类似如下:

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01_01" 25600,FILE "C:\NEWDB\TBS\CONTAINER_01_02" 25600)
DB2 SET TABLESPACE CONTAINERS FOR 4 USING (FILE "C:\NEWDB\TBS\CONTAINER_02" 25600)
DB2 SET TABLESPACE CONTAINERS FOR 5 USING (FILE "C:\NEWDB\TBS\CONTAINER_03" 51200)
DB2 SET TABLESPACE CONTAINERS FOR 6 USING (FILE "C:\NEWDB\TBS\CONTAINER_04" 64000)
DB2 SET TABLESPACE CONTAINERS FOR 7 USING (FILE "C:\NEWDB\TBS\CONTAINER_05" 153600)
DB2 SET TABLESPACE CONTAINERS FOR 8 USING (FILE "C:\NEWDB\TBS\CONTAINER_06" 51200)
DB2 SET TABLESPACE CONTAINERS FOR 9 USING (FILE "C:\NEWDB\TBS\CONTAINER_07" 25600)
DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")
DB2 SET TABLESPACE CONTAINERS FOR 11 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_08")
DB2 SET TABLESPACE CONTAINERS FOR 12 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_04")
DB2 SET TABLESPACE CONTAINERS FOR 13 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_08")

最后重新执行2.1步骤检查看还有没“必须定义存储器”的表空间

三、完成重定向恢复

DB2 RESTORE DB OLDDB CONTINUE

DB2数据库重定向表空间恢复实例

db2 restore database sino  into jinan3 redirect without rolling forward

db2 "set tablespace containers for 2 using (file '/opt/data/jinan3/ct/userspace1' 65536, file '/opt/data/jinan3/ct/userspace2' 65536 , file '/opt/data/jinan3/ct/userspace3' 65536, file '/opt/data/jinan3/ct/userspace4' 65536 , file '/opt/data/jinan3/ct/userspace5' 65536)"
db2 "set tablespace containers for 3 using (path '/opt/data/jinan3/ct_temp_sys_16')"
db2 "set tablespace containers for 4 using (path '/opt/data/jinan3/ct_temp_user_16')"
db2 restore db sino continue
------------实际操作的过程--------注意:重新定向的表空间位置根据实际需求自己定义-----------------------
F:/2008_1_21>db2 restore db gzk_1_5 into gzk_1 redirect without rolling forward

F:/2008_1_21>db2 "set tablespace containers for 3 using (file 'E:/db2/gzk_1/data
8/data8-1.dat' 64000, file 'e:/db2/gzk_1/data8/data8-2.dat' 64000)"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 "set tablespace containers for 4 using (file 'E:/db2/gzk_1/data
16/data16-1.dat' 32000)"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 "set tablespace containers for 5 using (file 'E:/db2/gzk_1/inde
x8/index8-1.dat' 64000)"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 "set tablespace containers for 6 using (file 'E:/db2/gzk_1/long
8/long8-1.dat' 64000)"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 "set tablespace containers for 7 using (path 'E:/db2/gzk_1/temp
8')"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 "set tablespace containers for 8 using (path 'E:/db2/gzk_1/temp
16')"
DB20000I  SET TABLESPACE CONTAINERS命令成功完成。

F:/2008_1_21>db2 restore db gzk_1_5 continue
DB20000I  RESTORE DATABASE命令成功完成。

时间: 2024-11-08 19:44:16

DB2数据库表空间重定向恢复实例分析的相关文章

db2 restore之后,三个表空间重定向失败,如何恢复

问题描述 db2 restore之后,三个表空间重定向失败,如何恢复 原镜像的表空间容器类型是deceive 恢复的时候用 set tablespace containes for 4 using (FILE '/data/temp.dat' 131072);容器类型用了File 并且改变了大小,这三个表空间用命令还原不成功,没法查询数据,后来在qc上找到相应表空间,alter修改表空间,依旧是修改为file容器类型,其中一个成功了,另外两个不能alter 有没有人能帮忙解释下,如何改变容器类型

Oracle中如何设置EXCLUDE后STANDBY数据库只读表空间的恢复

在STANDBY数据库利用RMAN恢复主库上EXCLUDE的只读表空间,碰到了问题. 数据库恢复完成,但是恢复被主库EXCLUDE的只读表空间时,发现无法进行恢复: RMAN> restore tablespace clubstat2_bak; Starting restore at 14-FEB-11 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=1094 devtype=DISK file 22 is excluded from

Oracle 表空间时点恢复(TSPITR)

表空间时点恢复,是Oracle在基于冷备,热备恢复以外的一种以表空间为粒度的,不完全恢复的形式来将表空间恢复到过去某个特定的时间点的一种恢复方式.它整合了RMAN以及DataPump这2个备份恢复工具来实现时点恢复.那它具体的过程和逻辑是怎样的?下文是其具体的描述. 一.什么是表空间时点恢复 Oracle表空间时点恢复有2个需要理解的概念. 恢复粒度   表空间级别,也就是说恢复的粒度是以表空间为单位 时点恢复   时点恢复意味着是一个不完全恢复.也就是说可以把某个或几个表空间恢复到过去的特定时

探索ORACLE之RMAN_07 system表空间丢失恢复

探索ORACLE之RMAN_07 system表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com     1.     SYSTEM表空间数据文件丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 3.1 删除system表空间的所有数据文件. [oracle@wwldb WWL]$ rm -rf syste* [oracle@wwldb WWL]$ exit   3.2

探索ORACLE之RMAN_07整个业务表空间丢失恢复

探索ORACLE之RMAN_07整个业务表空间丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com   1.     整个业务表空间丢失恢复 注意:以下的所有实验,都是基于上面的全库备份来做的恢复. 2.1 删除wwl表空间的所有数据文件 [root@wwldb ~]# cd /DBData/WWL/ [root@wwldb WWL]# rm -rf wwl* [root@wwldb WWL]#

使用DB2DART降低DB2数据库管理表空间高水位标记

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;本文介绍如何通过使用 DB2DART 工具降低 DB2 数据库管理表空间的高水位标记.      对于 DB2 数据库管理(DMS)表空间的高水位标记(HWM)是指该表空间曾经使用到的最大数据页数.如果使用: db2 list tablespaces show detail 看到某个 DMS 表空间的已用页数低于高水位标记,则有可能通过如下方法降低高水位标记: 重组表

DB2数据库的备份和恢复_DB2

正在看的db2教程是:DB2数据库的备份和恢复.最近,我恢复了一个数据库.其中的辛苦不予言表,我想写出自己用到的一些语句,和遇到相同问题的xdjm共勉. 首先谈db2数据库的备份,我用的是backup命令. db2 backup database 数据库名(我的库是jsdb) 忘了说了,在backup之前需要停止你要备份的数据库,我用了db2stop force(之所以用force参数是因为这样好停懒省事:)和db2start.这样就保证可以成功backup了. 备份完成后db2会告诉你一个时间

非当前的还原表空间的恢复

在oracle系统中一些非关键的表空间可以不进行备份,如果表空间崩溃了,就可以通过重建进行恢复,对于非当前的还原表空间可以使用这一方法: 实验如下: SQL> conn system/yang已连接. 1.列出数据库中所有的还原表空间SQL> select tablespace_name ,status,contents  2  from dba_tablespaces where contents='UNDO'; TABLESPACE_NAME  STATUS    CONTENTS    

system表空间不足的问题分析(二)

今天收到一条不太起眼的报警邮件,大体内容是某个表空间的空间有些紧张了.大体内容如下:Tablesapce: CMBI_SNZG_DATA: 92.2%  [Warning!] 根据这个信息,很明显是需要添加数据文件了,但是同时还有一个警告就是磁盘空间也告警了,那么这个看起来简单的问题得好好琢磨琢磨了,其实是几件事,一件是做一些数据清理,释放部分表空间,甚至可以通过释放数据文件的空间来进一步释放磁盘空间,第二件是给表空间告警的表空间添加数据文件. 首先查看数据库中的用户占有的数据量的情况,可以看到