六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 66|回复: 0

DB2通过备份创建数据库

[复制链接]

升级  21.67%

73

主题

73

主题

73

主题

举人

Rank: 3Rank: 3

积分
265
 楼主| 发表于 2013-1-13 18:49:25 | 显示全部楼层 |阅读模式
最近在使用DB2时遇到一个问题:如何把服务器上备份下来的数据库在本地复原上呢?
在网上找啊找啊找啊好像没有真正的恢复,通过自己的研究终于整明白了,和大家分享一下,希望对初学者有所帮助。
由于是通过别的机器备份出来的文件进行复原一个新数据库所以不能通过控制中心复原。
首先将备份的数据库文件放在E:\DB2BAK里
然后打开命令行窗口执行
db2 restore database 原数据库名称 from E:\DB2BAK taken at 20090909090909(时间戳) into 新数据库名称 redirect without rolling forward
会出现如下错误信息
SQL1277N  复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为“必须定义存储器”。DB20000I  RESTORE DATABASE 命令成功完成。
这说明在新机器中原来的表空间不存在
回到服务器上通过如下命令查看原来的表空间
db2 connect to 数据库名称db2 list tablespaces
这里会看到
           当前数据库的表空间 表空间标识                          = 0 名称                                = SYSCATSPACE 类型                                = 系统管理空间 内容                                = 任何数据 状态                                = 0x0000   详细解释:     正常 表空间标识                          = 1 名称                                = TEMPSPACE1 类型                                = 系统管理空间 内容                                = 系统临时数据 状态                                = 0x0000   详细解释:     正常
等字样把它记下来
回到自己的机器在D:\DB2DATA以上面表空间名称为文件名创建文件夹
回到自己的机器命令行执行如下命令
db2 set tablespace containers for 0 using (path "D:\DB2DATA\SYSCATSPACE")DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。db2 set tablespace containers for 1 using (path "D:\DB2DATA\TEMPSPACE1")
D:\DB2DATA是新数据的位置记住这里除了文件夹以外什么都不能有哦。
OK执行下面最后一步
RESTORE DATABASE 原数据库名称 CONTINUE
至此新的数据库就出来了
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表