由于业务需要对线上的一台应用程序为WebSphere的服务器进行迁移,开始在网上搜索了一下,基本上没有看到迁移成功的案例,所以只好自己慢慢弄了,WebSphere的迁移工作一共用了2天的时间,其中包括Web容器及Web程序的复制,数据库迁移,排错等步骤,由于数据库的迁移是由DBA完成的所以这里我就不进行描述了。

一、原服务器上的操作

利用tar命令对WebSphere和其http程序进行打包

tar fvc IBM.tar.gz /opt/IBM
tar fvc IBMIHS.tar.gz /opt/IBMIHS

检查环境变量和服务器的基本设置

#查看是否有配置环境变量
cat ~/.bash_profile
cat ~/.bashrc
cat /etc/profile
cat /etc/bashrc
#查看是否有hosts作的域名解析
cat /etc/hosts
#查看是否有WebSphere专用用户
cat /etc/passwd

经过上述检查,没有发现服务器有单独配置,所以直接将包复制到目标服务器

scp IBM.tar.gz 192.168.0.2:/opt
scp IBMIHS.tar.gz 192.168.0.2:/opt

二、目标服务器上的操作

解包

tar fvx IBM.tar.gz
tar fvx IBMIHS.tar.gz

尝试启动WebSphere

#启动WebSphere
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1
#启动Web容器
/opt/IBMIHS/bin/httpd -d /opt/IBMIHS -k start

这里在启动Web容器时出现报错提示libaprutil.so.10这个动态链接库文件没有找到,查看/usr/lib和/usr/lib64目录,发现在/usr/lib64目录中有该文件,在/usr/lib目录中没有该文件。所以在/usr/lib目录做软连接

ln -s /usr/lib64/libaprutil.so.10 /usr/lib/libaprutil.so.10

完成后启动Web容器依旧报错提示该文件找不到,查看IBMIHS的目录,发现该目录的lib子目录中有该文件,用ldconfig -v命令查看,发现在ldconfig中没有/opt/IBMIHS/lib这个路径,所以定义环境变量

export LD_LIBRARY_PATH=/opt/IBMIHS/lib

启动Web容器正常,所以将该配置写到/root/bash_profile文件(或者写到/etc/profile文件中)。

用浏览器访问测试页提示空指针,此时回到WebSphere的目录下检查应用程序的配置,发现应用程序链接数据库的SID是oracl,而数据库设置的SID是orcl,让DBA修改数据库SID后访问正常。

迁移完成