oracle - Docker:Oracle 数据库 18.4.0 XE 想在启动时配置一个新数据库
问题描述
我正在尝试配置 Oracle 数据库容器。我的问题是每当我试图重新启动容器时,启动脚本想要配置一个新的数据库并且没有这样做,因为已经在指定的卷上配置了一个数据库。
我该怎么做才能让容器知道我想使用我现有的数据库?
启动脚本是我从 Oracle GitHub 下载的库存脚本: 链接
更新:很明显,当/etc/init.d/oracle-xe-18c start
返回没有配置数据库时会出现问题,这会触发启动脚本尝试配置一个。
更新2:我尝试在没有传递任何环境变量的情况下创建数据库,并且在重新启动容器后,数据库已启动并运行。这是一个烦人的解决方法,但这是似乎有效的解决方法。如果您有其他想法,请告诉我
解决方案
我认为您应该使用以下方式连接到 linux 映像:
docker exec -ti containerid bash
到达那里后,您应该手动检查以下内容:
如果 $ORACLE_BASE/oradata/$ORACLE_SID 与脚本一样存在,如果 $ORACLE_BASE/admin/$ORACLE_SID/adump 不存在。
您应该手动执行的另一件事是
/etc/init.d/oracle-xe-18c start | grep -qc "Oracle Database is not configured
评论后更新=====
我没有脚本,但您应该使用 bash -x 运行它以查看脚本在寻找什么,以便调试正在发生的事情
没有意义的是,您说 $ORACLE_BASE/admin/$ORACLE_SID/adump 不存在,但如果部署了 docker 并且您有一个数据库正在运行,那么脚本第一次运行时它应该已经创建了这个。
推荐阅读
- javascript - 使用 moment js 将分钟转换为天、小时和分钟
- html - 向右移动 gif 图像
- reactjs - 出现错误:反应中未定义函数
- php - Illuminate\Database\QueryException SQLSTATE[23000]:完整性约束违规:1048 列“f_name”不能为空
- python - 无法更新谷歌电子表格 api 中的对齐方式,未知名称“字段”,python,如何修复?
- c# - 我正在使用 WinForms C#,我想创建一个事件,在按住鼠标时执行我的命令,而不是重复点击
- wpf - 材料设计 wpf 图标按钮不停靠在右侧
- node.js - 容器无法运行时如何进入 Docker 映像文件系统
- java - UTF_8 编码器不编码 Unicode_escapes
- dpdk - DPDK Hello world:在自定义 Linux 中分配 rte 服务数组时出错