gpt4 book ai didi

oracle - 如何关闭 docker 容器内的 oracle 数据库?

转载 作者:行者123 更新时间:2023-12-02 18:09:28 25 4
gpt4 key购买 nike

我从 official dockerfile 运行 Oracle 数据库 12.2.0.1 .据我所知,如果我这样做了

docker stop <container_id>

数据库的当前状态丢失,下次它会做一些干净的启动。

如何正确关闭数据库并停止容器,但保存当前状态?

如果我这样做

./sqlplus sys as sysdba
SHUTDOWN IMMEDIATE

容器仍在运行并且仍然消耗 11GB 的 16GB RAM,据我猜测,要停止容器我可能应该终止一些进程,但不清楚我应该什么时候做

docker commit <container_id>

理想情况下,我需要像 shutdown_oracle_and_commit_container.sh 这样的东西。

在 docker 容器内,oracle 实例以 runOracle.sh 启动,但没有 stopOracle.sh

最佳答案

你应该使用 docker volume将数据库中的数据存储在容器外部。因此使用 -v选项并将您想要存储数据的任何路径挂载到 /opt/oracle/oradata在容器内。

来自docs :

-v /opt/oracle/oradata

The data volume to use for the database.

Has to be writable by the Unix "oracle" (uid: 54321) user inside the container!

If omitted the database will not be persisted over container recreation.

所以根据那个运行:

docker run -v /path/to/your/datastore/:/opt/oracle/oradata oracle/database

您数据库中的数据现在存储在容器外部。如果你使用 docker stop <container_id>甚至 docker rm <container_id>然后您再次重新创建一个容器,您的数据将是相同的。有关详细信息和配置参数,请参阅 docs .

关于oracle - 如何关闭 docker 容器内的 oracle 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55169750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com