Oracle 12c Docker安装问题排查 sga_target 1536M is too small

一、问题描述

在虚拟机环境(4核16GB内存)上部署 truevoly/oracle-12c 容器镜像时,一切运行正常。然而,当在一台 128 核 CPU 和 512GB 内存的物理服务器上运行时,容器启动时出现了 ORA-00821 等错误,提示 SGA 的内存配置不足。

二、原因

通过在 GitHub 上查找相关资料,发现每个单独的线程大约会增加 22MB 的内存需求。因此,当核心数增多时,Oracle 数据库启动时会尝试为每个 CPU 核心分配内存,这就导致了内存需求大幅增加。

三、排查思路

刚开始可能走了点弯路,主要是在问AI,而忽略GitHub案例

1、启动镜像

docker run --restart always -d -p 8081:8080 -p 1522:1521 -v /usr/local/oracle/data_temp:/home/oracle/data_temp -v /etc/localtime:/etc/localtime:ro --name orac1 truevoly/oracle-12c

2、查看启动日志

docker logs -f 4eea316971a1706b1faf6dd469c276c334234f1f6f63824997aa71c00670abd5

正常情况下可以走到100%,访问数据库

Database not initialized. Initializing database.

Starting tnslsnr

posted @ 2025-02-26 20:31  fanhongtao  阅读(0)  评论(0)    收藏  举报  来源