Oracle/DB2/Postgresql/Mysql/Hadoop/Greenplum/Postgres-xl/Mongodb
分类: DB2/Informix
2014-09-01 15:41:18
在backup 数据库之后,想在restore时 重新命名数据库。该如何操作呢,和大家分享下;
1、备份数据库:
db2 backup db finpro (你要备份的数据库名)。
2、恢复数据库:
db2 restore db finpro from D:\FINPRO.0\DB2\NODE0000\CATN0000\20081218 taken at 20081218162607 to E into laspro redirect
a、D:\FINPRO.0\DB2\NODE0000\CATN0000\20081218 :如果你是在当前备份目录下操作,此处可省略,如不是需要指定你备份的数据编目。
b、20081218162607 :是你备份的数据库时间段。可到备份目录下查找,是年月日小时秒。
c、laspro :是你要重新命名的数据库。
d、E : 是你要重名数据库的db2编目。可根据需要选择相应的盘符。
执行我完成会出现下列提示:
SQL1277N
复原已检测到一个或多个表空间容器不可存取,或者已将它们的状态设置为“必须定义存储器”。
DB20000I RESTORE DATABASE 命令成功完成。
出现这个不要担心,是正常反应。
3、在此时你要重新定义你的数据库表空间。因为你恢复的数据库是在之前的数据库基础上,所以用的表空间要重新定义。
a、先查看你用了那些表空间
db2 list tablespaces show detail
b、用到的表空间最好都重新定义一次,根据自己需要指定到什么盘符。至于表空间名字可随意。
指定表空间:db2 set tablespace containers for 0 using (path 'e:\db2\ts0 ')
a、0 为你的表空间标识。可以和之前的表空间标识一样。
b、e:\tabs\ts0 为你要指定的盘符 和表空间的名称。
4、重新定义完表空间之后,执行下列命令是把数据写入到表空间中去。
db2 restore db finpro continue
如果在这步还出现一下问题“SQL1277N 复原已检测到一个或多个表空间容器不可存取,或者已将它们的状态设置为“必须定义存储器”。说明你说的表空间重新定义没有成功。继续搞定它就OK了。