首先,你本地的IDC是什么操作系统的,DB2的备份与恢复只能在同种类操作系统中进行;如果不是AIX,那么不能使用备份和恢复的方法来迁移数据;比较复杂;
如果本地IDC是AIX的话
使用DB2的用户Telnet到远程IDC上:(一般是DB2INST1)
做一个离线全备份:
当所有用户都不在线的情况下,你需要通知所有的用户下线,最好是关闭客户端上有关数据库的应用;
然后执行:
#db2 force application all
#db2 terminate
#db2stop
#db2start
假设你的数据库别名为Sample;备份到磁盘上,要注意估算空间;
假设有一个目录是/db2inst1/backup 要注意该DB2用户需要有权限去读写该目录;
#db2 backup db sample to /db2inst1/backup
这样在该目录下会生成一个备份文件;
将其FTP回来;
恢复的过程有些麻烦;
你先要看你需要迁移的表空间的定义情况:
使用下面的命令:
#db2 connect to sample user USERNAME using PASSWORD
#db2 list tablespaces
#db2 list tablespace containers for tablespace_ID
来查看表空间的定义情况,如果情况允许的话你可以在本地建立与远端数据库同样表空间的数据库,这样恢复最方便;
如果不行可以使用从定向恢复:
下使用简单的恢复:
#db2 restore db sample from 本地含有该备份的目录 taken at 备份镜象的时间;
备份镜象的时间格式是YYYYMMDDHHMMSS;
在备份镜象的文件名上可以获得该信息;
下面使用重定向恢复:
在本地服务器上,用DB2的用户进入;
#db2 create db sample
#db2 restore db sample from 本地含有该备份的目录 taken at 备份镜象的时间 redirct
#进行表空间的容器定义(这一部分比较复杂,你还是看一下文档吧 Command Reference)
#db2 restore db sample continue