Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1849643
  • 博文数量: 293
  • 博客积分: 10127
  • 博客等级: 上将
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 19:05
文章分类

全部博文(293)

文章存档

2011年(11)

2010年(282)

我的朋友

分类:

2010-11-16 19:49:08

db2的重定向恢复

db2的重新定向恢复是一个比较快的数据库迁移方式,它通过类似克隆的方式,在新的环境中建立和当前数据库一致的一个新数据库,这里说的

新的环境包括:1.当前实例下;2不同实例下或者别的服务器下,今天抽了点时间做了一个重新定向恢复的例子,现在分享给大家。

首先,重新定向恢复的大致包括如下4个步骤:
(一)       备份数据库BACKUPDATABASEOLDDB TO XX
(二)       恢复数据库RESTORE DATABASE,这里需要加上重新定向的参数REDIRECT,类似:RESTORE DATABASE OLDDB FROM OLDDBBACKUPDIR

TAKEN AT XX [TO F(F代表盘符:即需要将数据库恢复到那个盘符) ] INTO NEWDB REDIRECT [WITHOUT ROLLING FORWARD]
(三)       定义新数据库的表空间容器SET TABLESPACE CONTAINERS 0—tablesapceid USING( FILE/[PATH] “F:\ssss”----容器目录[4096

---对于DMS必须设置容器大小])
(四)       再次恢复数据库,这时候需要增加一个参数:CONTINUE类似:RESTORE DATABASE OLDDB CONTINUE

我这边用到了2个例子,其一:在当前实例下把当前的数据库DWZXT重新定向恢复为DWZ;其二:在新的实例下恢复重新定向恢复数据库DWZXT为

DWZ


第一个例子:当前实例下的重定向恢复

1.       得到当前实例

C:\>db2 get instance

当前数据库管理器实例是:DB2

2.       查看实例下的数据库

C:\>db2 list db directory

系统数据库目录


数据库1条目:

数据库别名                      = DWZXT
数据库名称                      = DWZXT
数据库驱动器                    = D:\DB2
数据库发行版级别                = a.00
注释                            =
目录条目类型                    =间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =

3.       连接到数据库,并进行数据库备份,对应第一步骤

C:\>db2 connect to dwzxt

   数据库连接信息

数据库服务器         = DB2/NT 8.2.0
SQL授权标识         = ADMINIST...
本地数据库别名       = DWZXT


C:\>db2 force applications all
DB20000I FORCE APPLICATION命令成功完成。
DB21024I 该命令为异步的,可能不会立即生效。


C:\>db2 backup database dwzxt to e:\dbres

备份成功。此备份映像的时间戳记是:20080223144514

4.       恢复数据库,对应第二步骤

C:\>db2 restore database dwzxt from e:\dbres taken at 20080223144514 into dwz r
edirect without rolling forward
SQL1277N 复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为

“必须定义存储器”。
DB20000I RESTORE DATABASE命令成功完成。

5.       查看新数据库需要定义的表空间容器,并生成容器目录[文件](在当前命令行编辑器中)
C:\>db2 list tablespaces

           当前数据库的表空间

表空间标识                        = 0
名称                              = SYSCATSPACE
类型                              =系统管理空间
内容                              =任何数据
状态                              = 0x2001100
   详细解释:
     复原暂挂
     必须定义存储器
     可以定义存储器

表空间标识                        = 1
名称                              = TEMPSPACE1
类型                              =系统管理空间
内容                              =系统临时数据
状态                              = 0x2001100
   详细解释:
     复原暂挂
     必须定义存储器
     可以定义存储器

表空间标识                        = 2
名称                              = USERSPACE1
类型                              =系统管理空间
内容                              =任何数据
状态                              = 0x2001100
   详细解释:
     复原暂挂
     必须定义存储器
     可以定义存储器

表空间标识                        = 3
名称                              = USERTMPSP
类型                              =系统管理空间
内容                              =用户临时数据
状态                              = 0x2001100
   详细解释:
     复原暂挂
     必须定义存储器
     可以定义存储器
由以上可以看出我们需要定义4个系统管理表空间的容器:0:SYSCATSPACE、1:TEMPSPACE1、2:USERSPACE1、3:USERTMPSP,最终建好如下目录:
C:\>dir E:\dwzx
驱动器E中的卷没有标签。
卷的序列号是0E00-006F

E:\dwzx的目录

2008-02-23 14:48   

          .
2008-02-23 14:48              ..
2008-02-23 14:49              SYSCTBS
2008-02-23 14:49              SYSTMPTBS1
2008-02-23 14:50              USERTMPTBS
2008-02-23 14:50              USERTBS1
               0个文件              0字节

6.       定义新数据库的表空间容器,对应步骤3

C:\>db2 set tablespace containers for 0 using (path "E:\dwzx\SYSCTBS")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。

C:\>db2 set tablespace containers for 1 using (path "E:\dwzx\SYSTMPTBS1")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。

C:\>db2 set tablespace containers for 2 using (path "E:\dwzx\USERTBS1")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。

C:\>db2 set tablespace containers for 3 using (path "E:\dwzx\USERTMPTBS")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。

C:\>db2 list tablespaces

           当前数据库的表空间

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

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

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

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

7.       再次恢复数据库,对应步骤4

C:\>db2 restore database dwzxt continue
DB20000I RESTORE DATABASE命令成功完成。

Ok,搞定下来看一下连接会不会出问题
C:\>db2 list db directory

系统数据库目录

目录中的条目数= 2

数据库1条目:

数据库别名                      = DWZ
数据库名称                      = DWZ
数据库驱动器                    = C:\DB2
数据库发行版级别                = a.00
注释                            =
目录条目类型                    =间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =

数据库2条目:

数据库别名                      = DWZXT
数据库名称                      = DWZXT
数据库驱动器                    = D:\DB2
数据库发行版级别                = a.00
注释                            =
目录条目类型                    =间接
目录数据库分区号                = 0
备用服务器主机名                =
备用服务器端口号                =

阅读(4157) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-11-18 17:23:57

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com