问题:DB2服务器装在AIX上,不允许直接利用服务器做数据的导出导入。但是由于项目需要,需要频繁的对一些表进行数据的备份和恢复。所以只能在一个其他服务器上安装DB2客户端,通过客户端来实现数据的备份和恢复。
思路:先从IBM官网下载客户端;然后安装到一个应用服务器上(Centos6);然后通过脚本实现指定表的备份和恢复。
实现:
1,从IBM网站下载客户端,需要注意选择 DSClients-linuxx64-client-10.5.0.6-FP006 (564.5 MB) 。
2,上传到linux服务器上
pscp d:\download\v10.5fp6_linuxx64_client.tar.gz user@hostname:/home/user
3,登录到服务器,进行安装,需要root用户
#tar -zxvf v10.5fp7_linuxx64_client.tar.gz
#cd client
#sh db2_install
##安装过程中提示安装为止,选择默认 /opt/ibm/db2/V10.5/
##创建用户(DB2的用户即系统用户,所以需要提前创建)
useradd zhang
passwd zhang
##给用户创建实例
cd /opt/ibm/db2/V10.5/instance
./db2icrt zhang
4,用新追加用户登录,并设置环境
#su - zhang
#vim .bash_profile
#在最后加入以下内容,就是db2环境变量设置等内容放到db2profile文件里头了
if [ -f ~/sqllib/db2profile ]; then
source ~/sqllib/db2profile
echo “source db2profile return $?”
fi
#执行一下
..bash_profile
#验证一下,不提示命令找不到就说明环境安装好了
#db2
5,连接远程服务器 192.168.0.110,端口:50000,数据库:sample,在客户端本地上编目
#db2 catalog tcpip node dbsrv remote 192.168.0.110 server 50000
##dbsrv为服务器节点名,所有在这个服务器这个端口上的数据库都可以通过这个节点名来访问。
#db2 catalog database sample at node dbsrv
##sample为数据库名
##连到远程的db2数据库
#db2 connect to sample user db2admin using password
6,由于远程数据库不支持db2 backup,所以只能用export方式来导出,导入。
##导出,由于不进行数据编辑和其他库的导入,这里选择ixf格式
#db2 "export to ./ifx/cm_user.ixf OF IXF select * from cm_user"
##导入,每次导入的时候直接替换掉原来数据
#db2 "import from ./ifx/cm_user.ixf OF IXF REPLACE_CREATE into cm_user"
7,实现定时对多表导出和导入的shell,请从这里下载。
踩过的雷:
1,选择版本一定要注意,我第一次就没看清,选择了 linuxppc64,结果又下载一次。
2,如果系统用户不存在的话,创建实例也不会失败,但是无法使用。所以一定要先创建用户,再创建实例。
3,远程的db2 backup不好用,不用尝试远程进行backup操作了。