Docker中启动Oracle报错 ORA-00845: MEMORY_TARGET not supported on this system

背景

在使用docker安装Oracle之后,按照正常的启动流程

  1. 切换到oracle用户 su - oracle
  2. 打开监听 lsnrctl start
  3. 切换到nolog方式 sqlplus /nolog
  4. 以dba权限登录 conn /as sysdba
  5. 启动 startup

问题

此时遇到了问题

ORA-00845: MEMORY_TARGET not supported on this system
在这里插入图片描述

原因

时间问题,未能总结,请上网搜索

解决

查看盘的大小,发现docker中的/dev/shm目录只有64M
在这里插入图片描述
修改大小

mount -t tmpfs shmfs -o size=4G /dev/shm

同时,修改/etc/fstab

vi /etc/fstab

把size调大

tmpfs                   /dev/shm                tmpfs   defaults,size=4G        0 0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"ora-12547: tns:lost contact" 是一种Oracle数据库的错误,通常位于使用Mac的Docker容器运行Oracle数据库时出现。这个错误表示Docker容器无法与Oracle数据库建立联系。 出现这个错误的原因可能有以下几种: 1. 网络配置问题:确保容器和宿主机之间的网络配置正确。可以尝试检查Docker网络设置,并确保容器可以正确访问Oracle数据库所在的主机。 2. TNS配置问题:检查容器的TNS配置文件(通常为tnsnames.ora)是否正确。确保其的连接字符串、主机名、端口号等信息正确匹配Oracle数据库的实际设置。 3. Oracle监听器问题:确认Oracle监听器是否正在运行,并监听着正确的端口。可以尝试在容器执行`lsnrctl status`命令来检查监听器的状态。 4. 容器资源限制:如果容器的资源限制过低,可能导致无法正常启动Oracle数据库。可以尝试增加容器的内存、CPU等资源限制,以确保数据库能够正常启动。 解决这个问题的方法可以尝试以下几种: 1. 检查网络配置:确保容器和宿主机之间的网络配置正确,容器可以访问到Oracle数据库所在的主机。 2. 检查TNS配置:确认容器的TNS配置文件的连接信息正确。可以尝试手动连接数据库,确保连接字符串、主机名、端口号等信息正确。 3. 检查监听器:确保Oracle监听器正在运行,并监听着正确的端口。可以尝试重启监听器,或者在容器重新配置监听器。 4. 调整资源限制:增加容器的资源限制,确保能够正常启动Oracle数据库。可以尝试给容器分配更多的内存、CPU等资源。 总而言之,解决这个问题需要检查网络配置,确认TNS配置和监听器设置正确,并适当调整容器的资源限制。通过这些步骤,应该能够解决"ora-12547: tns:lost contact"错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值