You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

手动重启gvenzl/oracle-xe:21-slim容器后持续重启并报数据文件缺失错误

问题

使用gvenzl/oracle-xe:21-slim镜像通过以下Docker Compose文件运行Oracle容器:

version: '2'
services:
  oracle:
    image: gvenzl/oracle-xe:21-slim
    restart: always
    environment:
      - ORACLE_PASSWORD=root
    ports:
      - 1521:1521
    volumes:
      - oracle-volume:/opt/oracle/oradata
volumes:
   oracle-volume:

手动重启容器后,已创建的数据文件丢失,出现错误:

ORA-01157: cannot identify/lock data file 20 - see DBWR trace file ORA-01110: data file 20: '/opt/oracle/homes/OraDBHome21cXE/dbs/{filename}.dat'

容器持续自动重启,求解决办法?

解决办法

1. 停止故障容器

先停止当前循环重启的容器,避免操作冲突:

docker-compose down

2. 修正数据卷挂载配置

问题根源是你创建的数据文件被写入了容器内/opt/oracle/homes/OraDBHome21cXE/dbs目录,但该目录未被挂载到外部卷,重启容器后这部分数据直接丢失。修改Docker Compose,把该目录也加入挂载:
修改后的配置文件:

version: '2'
services:
  oracle:
    image: gvenzl/oracle-xe:21-slim
    restart: always
    environment:
      - ORACLE_PASSWORD=root
    ports:
      - 1521:1521
    volumes:
      - oracle-volume:/opt/oracle/oradata
      - oracle-dbs-volume:/opt/oracle/homes/OraDBHome21cXE/dbs
volumes:
   oracle-volume:
   oracle-dbs-volume:

如果不想单独挂载多个目录,也可以直接挂载整个/opt/oracle目录(会包含容器内更多文件,按需选择):

version: '2'
services:
  oracle:
    image: gvenzl/oracle-xe:21-slim
    restart: always
    environment:
      - ORACLE_PASSWORD=root
    ports:
      - 1521:1521
    volumes:
      - oracle-volume:/opt/oracle
volumes:
   oracle-volume:

3. 恢复现有数据(可选)

如果之前有重要数据未备份,先启动临时容器挂载原卷,尝试复制残留数据:

docker run -d --name temp-oracle -v oracle-volume:/opt/oracle/oradata gvenzl/oracle-xe:21-slim sleep 3600

进入临时容器查找并复制数据文件:

docker exec -it temp-oracle bash
# 容器内执行复制操作,示例:
cp /opt/oracle/oradata/your_backup/*.dat /opt/oracle/homes/OraDBHome21cXE/dbs/
# 退出后清理临时容器
docker stop temp-oracle && docker rm temp-oracle

4. 重新启动容器

用修改后的配置启动容器:

docker-compose up -d

5. 后续预防

  • 创建表空间或数据文件时,明确指定路径到/opt/oracle/oradata目录,避免写入容器内未挂载的路径
  • 定期用expdp等工具导出数据,做好备份

内容的提问来源于stack exchange,提问作者Hani Bikdeli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 22:46:00