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

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
时间: 2024-10-25 06:11:58

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

Oracle误删除表空间的恢复

对于误删除表空间的恢复,本文通过基于数据库的时间点恢复和基于表空间的时间点恢复分别加以讨论 一 通过基于数据库的时间点恢复被误删除的表空间 1 需要注意的事项 a 基于数据库的时间点恢复将会回退整个数据库. b 误删除表空间,当数据库有之前可用于恢复的全库备份和相关归档,如果对数据库执行不完全恢复,恢复该数据库到删除表空间之前的状态,便可恢复误删除的表空间.但实际上当我们删除表空间,数据库备份中将不存在关于该表空间的的信息,直接进行恢复将会出现问题.如下所示: RMAN> list backup

DB2表空间管理的两种方式

下文将为您介绍DB2(DB2认证 DB2培训 ) 的表空间按管理方式,并附上相关问题的实例,供您参考,如果您对DB2表空间按管理方式感兴趣的话,不妨一看,会对您有所帮助. DB2 的表空间按管理方式分为两种:系统管理空间(System Management Space,SMS)和数据库管理空间(Database Management Space,DMS). 按类型分为:规则表空间.长整数表空间.系统临时表空间.用户临时表空间.其中长整数表空间只能是DMS的. 规则表空间中包含用户数据的表.默认用

DB2 表空间监控

默认DB2 缓冲池信息监控是OFF, 需要开启(DB2表空间是由缓冲池分配的) CollBufferpool : ============ The CollBufferpool collector collects information for the DB2UDB_BUFFERPOOL application class and provides the values for monitoring DB2 buffer pools. Note: For the CollBufferpool

UNDO表空间损坏导致数据库无法OPEN

在数据库undo表空间文件损坏,或者undo表空间文件缺失的情况下,无法打开数据库. 这两种情况都可以视为一种情况处理,解决方法一样. 场景:在23:10的时候新建一个undo表空间undotbs02,并切换至该undo表空间. 此时再闪回数据库至23:10. 由于闪回数据库时使用的是undotbs02,而23:10时使用的是undotbs01, 会造成undo表空间缺失,无法打开数据库.(注:闪回数据库之后需要resetlogs) 从上面的错误就可以看出来,此时undotbs02不存在,无法打

查看DB2表空间使用率

DB2表空间实用信息存放于视图"sysibmadm.tbsp_utilization"中.需要dba权限执行. SQL如下: select tbsp_id, varchar(tbsp_name,30), tbsp_used_size_kb/1024 as "usedsize(MB)", tbsp_max_size/1024/1024 as "maxsize(MB)", dec(cast(tbsp_used_size_kb as float)*10

oracle 使用备份的控制文件恢复,并且之后新建了表空间的恢复

1.备份的控制文件之后创建表空间,控制文件全部丢失,使用备份控制文件如何恢复 步骤如下: 1.备份数据库 rman target / catalog RC_ADMIN/[email protected] backup database plus archivelog delete all input; 2.创建表空间 [email protected]>create tablespace indx 2  datafile '/u01/app/oracle/oradata/PROD2/indx01

oracle 11g 手动删除表空间文件导致数据库报错处理方法

简单说下原因:当时图方便没进数据库,直接在datafile目录下删除了表空间对应的数据文件 导致后来数据库报错,并且不能删除表空间 错误如下:ORA-01116:error in opening database ****ORA-01110:data file 54:'/home3/datafile/arrange/NewArrange.dbf'ORA-27041:unable to open fileLinux Error:2: No Such file or directoryAdditio

RMAN恢复数据库实战

预设场景: 一般企业数据库的数据都用rman工具进行了全库备份,那么当数据库里面的控制文件,重做日志文件等全部丢失了之后怎么办呢?以下是解答思路: 1.利用全库备份的备份片恢复控制文件 2.恢复数据文件 3.挂载数据库 以下是详细步骤: 1 .先用rman restore备份的全库,找回控制文件: RMAN>  restore controlfile from '/u01/app/oracle/flash_recovery_area/JIAGULUN/backupset/2016_02_01/o

oracle基于表空间的恢复

RMAN> recover tablespace tbs_tspitr1,tbs_tspitr2 until time "to_date( '2019-08-26 13:50:38', 'yyyy-mm-dd hh24:mi:ss')" auxiliary destination '/tmp/aux'; Starting recover at 26-AUG-19 using channel ORA_DISK_1 RMAN-05026: WARNING: presuming fol