DB2通过备份创建数据库

 

最近在使用DB2时遇到一个问题:如何把服务器上备份下来的数据库在本地复原上呢?
在网上找啊找啊找啊好像没有真正的恢复,通过自己的研究终于整明白了,和大家分享一下,希望对初学者有所帮助。
由于是通过别的机器备份出来的文件进行复原一个新数据库所以不能通过控制中心复原。
首先将备份的数据库文件放在E:/DB2BAK里
然后打开命令行窗口执行
白金山:db2代码 复制代码
  1. db2 restore database 原数据库名称 from E:/DB2BAK taken at 20090909090909(时间戳) into 新数据库名称 redirect without rolling forward  

会出现如下错误信息
白金山:db2代码 复制代码
  1. SQL1277N  复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为   
  2.   
  3. “必须定义存储器”。   
  4. DB20000I  RESTORE DATABASE 命令成功完成。  

这说明在新机器中原来的表空间不存在
回到服务器上通过如下命令查看原来的表空间
白金山:db2代码 复制代码
  1. db2 connect to 数据库名称   
  2. db2 list tablespaces  

这里会看到
白金山:db2代码 复制代码
  1.           当前数据库的表空间   
  2.   
  3. 表空间标识                          = 0  
  4. 名称                                = SYSCATSPACE   
  5. 类型                                = 系统管理空间   
  6. 内容                                = 任何数据   
  7. 状态                                = 0x0000  
  8.   详细解释:   
  9.     正常   
  10.   
  11. 表空间标识                          = 1  
  12. 名称                                = TEMPSPACE1   
  13. 类型                                = 系统管理空间   
  14. 内容                                = 系统临时数据   
  15. 状态                                = 0x0000  
  16.   详细解释:   
  17.     正常  

等字样把它记下来
回到自己的机器在D:/DB2DATA以上面表空间名称为文件名创建文件夹
回到自己的机器命令行执行如下命令
白金山:db2代码 复制代码
  1. db2 set tablespace containers for 0 using (path "D:/DB2DATA/SYSCATSPACE")   
  2. DB20000I  SET TABLESPACE CONTAINERS 命令成功完成。   
  3. db2 set tablespace containers for 1 using (path "D:/DB2DATA/TEMPSPACE1")  

D:/DB2DATA是新数据的位置记住这里除了文件夹以外什么都不能有哦。
OK执行下面最后一步
白金山:db2代码 复制代码
  1. RESTORE DATABASE 原数据库名称 CONTINUE  

至此新的数据库就出来了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值