docker部署文档(三)-关于oracle容器重启后导致应用容器启动失败的解决办法
admin
2023-03-03 03:20:50
0

注意:

  1. 如果应用工程没有变动, 那oracle服务重启后, 应用会自动重新连接, 服务也会恢复正常.

  2. 但是如果应用工程在启动时oracle未运行, 数据库连接失败会直接导致工程启动失败, oracle重新运行后也无法恢复, 只能重启应用工程.

为实现服务器启动 -> docker服务启动 -> oracle容器启动 -> oracle服务启动 -> 应用容器启动的顺序保持不变. 以及实现docker服务启动后, 添加防火墙规则允许容器内部访问宿主机, 需要做如下修改.

1. 修改oracle容器的init.sh脚本

oracle容器中, /root/init.sh脚本原来是使sysctl内核参数及ulimit生效的, 现在修改如下

#!/bin/bashsysctl -p
chown oracle:oinstall /opt/oracle
su - oracle << EOF
lsnrctl  start
sqlplus "/as sysdba" << EOF
startup
EOF## 上面的EOF将被两个'<<'符号共用.echo 'complete...'

oracle容器启动后没有运行服务, 进入到容器中, 执行这个脚本就可以启动oracle了.

2. 实现docker服务启动后按顺序启动数据库与应用容器

编辑/usr/lib/systemd/system/docker.service文件(这是一个类.ini的配置文件). 在[Service]块中添加如下行

ExecStartPost=/bin/bash /root/onDockerStart.sh

ExecStartPost表示在docker服务启动后执行的操作, 上述行表示在docker服务启动后, 执行onDockerStart.sh脚本. 脚本内容如下

#!/bin/bash## 解除容器内部访问宿主机的限制## 有些情况下可能不存在INPUT_direct链iptables -I INPUT_direct -s 172.21.0.0/16 -j ACCEPT || iptables -I INPUT -s 172.21.0.0/16 -j ACCEPT## 启动oracleoracle_cid=$(docker ps | grep oracle-final | awk '{print $1}')
docker exec $oracle_cid bash /root/init.shexit 0

对于应用与数据库分离的情况, 只要保证数据库已经启动, 然后重启启动{cas,skydata-se,drgs,hdc-manager,etlloader}这些容器就可以了.

docker stop|start {cas,skydata-se,drgs,hdc-manager,etlloader}


上一篇:初始化脚本

下一篇:docker部署文档(二)

相关内容

热门资讯

世界遗产+1!景德镇打卡地图,... 北京时间7月25日,在韩国釜山举行的第48届世界遗产大会上,由我国申报的“景德镇手工瓷业遗存”项目经...
有人呼吁白宫“封杀”中国开源大... 未来一段时间,将有多款中国开源模型发布。Kimi K3定于7月27日正式开源,阿里即将开源2.4万亿...
20名“高考状元”选择学医!此... 2026年香港高考的24名“状元”中,有20人明确表示将留港攻读医科。多年来,香港最顶尖的“学霸们”...
“抢人大战”,风向有变? 各地一场“抢老人”的大战,已然徐徐拉开大幕。最近,有着人口净流出压力的吉林,计划拿出3亿元发展旅居康...
石家庄一家不限量的爱心素食面馆... 7月24日正午时分,记者来到位于石家庄市新华区东明家居西二环店北门旁的“素面”小店,不大的店面里坐满...
中材科技申请风电叶片外补强辅助... 国家知识产权局信息显示,中材科技(伊吾)风电叶片有限公司申请一项名为“风电叶片外补强辅助固化装置”的...
为人工智能治理提供重要公共产品 图为2026世界人工智能大会暨人工智能全球治理高级别会议举办期间,在世博展览馆灵心巧手展位,参观者观...
泽连斯基称俄对乌多地发动大规模... 当地时间25日,乌克兰总统泽连斯基通报称,俄军于当日凌晨对乌克兰多地发动大规模空袭,使用2枚导弹、近...
不怕没水!武汉科学家找到水稻身... 干旱来了,水稻启动"抗旱模式",可一启动就长不大、结得少——这是困扰育种界几十年的老难题。7月23日...
多款手机涨价超1000元,大存... 今年暑期消费旺季,国内智能手机市场迎来一轮显著的价格上调。第一财经记者走访深圳多家品牌门店发现,以v...