曾经14年刚开始进行实施工作时跟着同事学习weblogic建域发布应用,尽管买了本《WebLogic企业级运维实战》,却就最初翻了几页,搁置了,每每一个新的地方进行部署发布迁移,就进行老一套操作,建域,建数据源,改配置文件,发布。
去年有一天一项目同事想着直接把域复制过来,结果没成功,找我给处理了下,那个域有些特殊,用到了jms store的一些东西,可能由此失败了。然后这半年又经历了半年多洗礼,终于悟到貌似所有配置文件都在domain下的config文件夹下,然后配jdbc直接在config下的jdbc下找。
然后近段时间想起是不是可以真的按我同事说的方式来操作,原样迁移,改下配置。
今天遇到的问题就是单节点扩双节点,负载通过nginx处理,weblogic版本一致,所以迁移时可以一试的。
相同操作系统,相同weblogic版本10.3.6,相同的域路径,相同的应用路径
源主机A,迁移主机B
tar -czvf test_domain.tar.gz test_domain/
我这里用ftp,根据情况scp,ftp均可,不再赘述
tar -xzvf test_domain.tar.gz /home/weblogic/Oracle/Middleware/user_projects/domains/
我一开始没修改就报错了
<2019-9-11 下午03时17分35秒 CST> <Emergency> <Security> <BEA-090087> <Server failed to bind to the configured Admin port. The port may already be used by another process.>
<2019-9-11 下午03时17分35秒 CST> <Critical> <WebLogicServer> <BEA-000362> <Server failed. Reason: Server failed to bind to any usable port. See preceeding log message for details.>
<2019-9-11 下午03时17分35秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FAILED>
<2019-9-11 下午03时17分35秒 CST> <Error> <WebLogicServer> <BEA-000383> <A critical service failed. The server will shut itself down>
<2019-9-11 下午03时17分35秒 CST> <Error> <Server> <BEA-002606> <Unable to create a server socket for listening on channel "Default". The address 192.168.1.3 might be incorrect or another process is using port 7001: java.net.BindException: Cannot assign requested address.>
<2019-9-11 下午03时17分35秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
cd /home/weblogic/Oracle/Middleware/user_projects/domains/test_domain/config/
vi config.xml
如下大约这段,30-40行的位置,如果需要修改端口,把7001改了,改ip把192.168.1.3踹了。
<server>
<name>TestServer</name>
<complete-message-timeout>480</complete-message-timeout>
<listen-port>7001</listen-port>
<listen-address>192.168.1.3</listen-address>
</server>
改完保存:wq退出
[weblogic@localhost config]$ cd /home/weblogic/Oracle/Middleware/user_projects/domains/test_domain/bin
[weblogic@localhost bin]$ nohup ./startWebLogic.sh & tail -10f nohup.out
启动成功,舒爽。
<2019-9-11 下午03时22分03秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<2019-9-11 下午03时22分03秒 CST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
总结下:
这种方法的好处,不用建域,不用重新建数据源,不用重新发布应用,更改省事,迁移省事。
不太适用的情况:
有jms_store等的域,没验证
weblogic或操作系统跨版本,即两台机子版本不一致,没验证