DB2中,怎么把A数据库的完整备份恢复至B数据库中!

DB2中,怎么把A数据库的完整备份恢复至B数据库中!,第1张

backup命令备份出来的数据库,比如simpleA,只能回复成simpleA的数据库;

按照你的需求,可以使用db2move的方式,进行导入和导出,这样可以实现把A数据库的完整备份恢复至B数据库中。

命令具体使用方法:

cd /opt/backup/

mkdir 2011-11-16

cd 2011-11-16

db2move simpleA export -u username -p password ##导出到当前目录

db2move simpleB import -u username -p password ##从当前目录导入

看一下表空间是不是挂起了,按照如下步骤:

1、db2    list tablespaces   show   detail,可能的输出如下:

表空间标识= 1

名称 = TEMPSPACE1

类型 = 系统管理空间

内容 = 系统临时数据

状态 = 0x0000

详细解释:

  装入暂挂

 总页数                          = 1652

 可用页数                        = 1652

 已用页数                         = 1652

 空闲页数                         = 不适用

 高水位标记(页)                 = 不适用

 页大小(字节)                   = 4096

 盘区大小(页)                   = 32

 预读取大小(页)                 = 32

 容器数                           = 1

 状态更改表空间标识                    = 2

 状态更改对象标识                      = 59

这样的话,表明id为59的表使表空间挂起了

2、下面的语句查看引起挂起的表名

select tabname,tableid from syscat.tables where tableid=59

3、你这种情况有可能是备份文件里面指定的表空间容器没有创建,所以导致表空间无法恢复,可以用如下命令查看出有问题的表空间的容器,手动创建好,再执行恢复

db2 list tablespace containers for 1 show detail,其中for后面的1表示的是表空间标识,可能输出为:

表空间 1 的表空间容器

容器标识= 0

名称= C:\DB2\NODE0000\SQL00001\SQLT0001.0

类型= 路径

总计页数= 1

可用页数= 1

可存取 = 是

则按照这个容器的信息手动创建容器后执行恢复试一下

只能用

db2look

+db2move

进行迁移。

1.提取ddl

用如下命令

db2look

-d

yn

-e

-l

-o

db2look_yn.ddl

//提取出

yn(云南)

这个数据库

所有用户对象,包括表空间等。

2.用db2move

导出数据

如下

如你在

db2inist1

用户目录下

建立一个

data

目录

然后执行

db2move

yn

export

在data

目录下

会有好多

后缀名为ixf

和msg

的文件,其中ixf为数据表文件,msg后缀的为消息文件,其中最重要的

是db2move.lst

存放导出表和消息文件的对应关系。

3.去windows

下建立一个数据库

db2

create

db

yn

pagesize

8

k”

//这里的pagesize需要和

ddl的统一

然后修改

yn.ddl

文件下

linux下面

的路径

替换为windows

的路径然后执行db2

-tvf

yn.ddl

4.导入数据库

db2move

yn

load

其中会生成

一个load.out的文件

记录错误信息或者

导入失败的表

,如加载了多少行,拒绝多少行

等。

5.查看load.out

找到那些导入不成功的进行

处理,然后倒入。然后进行完整性约束

这些检查。如有问题

q

我吧。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9999241.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存