WEB开发网
开发学院数据库DB2 DB2通过备份创建数据库 阅读

DB2通过备份创建数据库

 2009-10-11 00:00:00 来源:WEB开发网   
核心提示:最近在使用DB2时遇到一个问题:如何把服务器上备份下来的数据库在本地复原上呢? 在网上找啊找啊找啊好像没有真正的恢复,通过自己的研究终于整明白了,DB2通过备份创建数据库,和大家分享一下,希望对初学者有所帮助,DB20000IRESTOREDATABASE命令成功完成,这说明在新机器中原来的表空间不存在 回到服务器上通

最近在使用DB2时遇到一个问题:如何把服务器上备份下来的数据库在本地复原上呢?

在网上找啊找啊找啊好像没有真正的恢复,通过自己的研究终于整明白了,和大家分享一下,希望对初学者有所帮助。

由于是通过别的机器备份出来的文件进行复原一个新数据库所以不能通过控制中心复原。

首先将备份的数据库文件放在E:\DB2BAK里

然后打开命令行窗口执行

白金山:db2代码  

db2 restore database 原数据库名称 from E:\DB2BAK taken at 20090909090909(时间戳) into 新数据库名称 redirect without rolling forward 

会出现如下错误信息

白金山:db2代码   

SQL1277N 复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为 
 
“必须定义存储器”。 
DB20000I RESTORE DATABASE 命令成功完成。 

这说明在新机器中原来的表空间不存在

回到服务器上通过如下命令查看原来的表空间

白金山:db2代码  

db2 connect to 数据库名称 
db2 list tablespaces 

这里会看到

白金山:db2代码  

      当前数据库的表空间 
 
 表空间标识             = 0 
 名称                = SYSCATSPACE 
 类型                = 系统管理空间 
 内容                = 任何数据 
 状态                = 0x0000 
  详细解释: 
   正常 
 
 表空间标识             = 1 
 名称                = TEMPSPACE1 
 类型                = 系统管理空间 
 内容                = 系统临时数据 
 状态                = 0x0000 
  详细解释: 
   正常 

等字样把它记下来

回到自己的机器在D:\DB2DATA以上面表空间名称为文件名创建文件夹

回到自己的机器命令行执行如下命令

白金山:db2代码  

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执行下面最后一步

白金山:db2代码   

RESTORE DATABASE 原数据库名称 CONTINUE 

至此新的数据库就出来了

Tags:DB 通过 备份

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接