ORA-00845: MEMORY_TARGET not supported on this system docker 容器下 Oracle 问题解决

2 篇文章 0 订阅
1 篇文章 0 订阅

如果 不是docker 容器下的 Oracle 可以通过 以下链接修改问题

https://blog.csdn.net/sunny05296/article/details/56495599 

============================== 分隔符 ==================================

环境:Oracle 11g 、Docker version 18.03.1

       最近发现Oracle 运行的特别慢,所以想要增大Oracle 的内存,修改 memory_max_target和memory_target 的值,但是 修改完后发现数据库启动不来了,报了ORA-00845: MEMORY_TARGET not supported on this system 的错误,查询了大量的资料,以下是问题原因以及解决方法:

问题原因:

   Oracle 9i引入pga_aggregate_target,可以自动对PGA进行调整;

   Oracle 10g引入sga_target,可以自动对SGA进行调整;

   Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

      我修改的是memory_max_target和memory_target 的值,想要通过修改这两个值,自动分配 sga 和 pga,但是 这两个值必须小于   /dev/shm 的内存大小(可通过 df -h 命令 查看),但是docker 容器如果没有初始化的时候设置的话(docker run 提供了一个参数 –shm-size= 可以指定/dev/shm的大小),默认就是 64M,根本不能满足使用需求 所以只能放弃这种方法;

 

解决方法:

    不能通过修改  /dev/shm 解决问题,于是我们直接通过修改Oracle配置修改值

[root@bogon ~]# docker exec -it oracle /bin/bash
[oracle@bfa5f971b076 /]$ source /home/oracle/.bash_profile
[oracle@bfa5f971b076 /]$ cd $ORACLE_HOME/dbs
[oracle@bfa5f971b076 dbs]$ ls
123.sp          init.ora_bak         lkHELOWIN     spfilehelowin.ora
hc_helowin.dat  inithelowin.ora      lkORCL        spfilehelowin.ora_bak
init.ora        inithelowin.ora_bak  orapwhelowin
_bak 结尾的是我备份的文件,正常配置文件是init实例名.ora 和 spfile实例名.ora ,我的实例名 helowin ,所以是 inithelowin.ora 和 spfilehelowin.ora 文件

[oracle@bfa5f971b076 dbs]$ vi inithelowin.ora

helowin.__db_cache_size=1191182336
helowin.__java_pool_size=16777216
helowin.__large_pool_size=16777216
helowin.__oracle_base='/home/oracle/app/oracle'#ORACLE_BASE set from environment
helowin.__pga_aggregate_target=1744830464
helowin.__sga_target=1610612736
helowin.__shared_io_pool_size=0
helowin.__shared_pool_size=369098752
helowin.__streams_pool_size=0
*.aq_tm_processes=0
*.audit_file_dest='/home/oracle/app/oracle/admin/helowin/adump'
*.audit_trail='FALSE'
*.compatible='11.2.0.0.0'
*.control_files='/home/oracle/app/oracle/oradata/helowin/control01.ctl','/home/oracle/app/oracle/flash_recovery_area/helowin/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_files=500
*.db_name='helowin'

*.memory_max_target=10485760

*.memory_target =10485760
*.db_recovery_file_dest='/home/oracle/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4070572032
*.diagnostic_dest='/home/oracle/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=helowinXDB)'
*.job_queue_processes=0
*.local_listener='LISTENER_HELOWIN'
*.open_cursors=300
*.pga_aggregate_target=1741684736
*.processes=3000
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1610612736
*.undo_tablespace='UNDOTBS1'

 

我们删除 红色 字体的配置 *.memory_max_target=10485760,*.memory_target =10485760

重新修改 绿色字体的配置*.pga_aggregate_target=1741684736,*.sga_target=1610612736(根据个人情况设置), inithelowin.ora 和 spfilehelowin.ora 文件是差不多的,两个文件都要修改。

修改完成保存重新登录Oracle

[oracle@bfa5f971b076 dbs]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri May 24 17:05:25 2019

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup

如果起不来的话就执行以下语句

SQL> startup pfile=$ORACLE_HOME/dbs/inithelowin.ora 


 

参考以下链接,并感谢以下博客的作者:

https://blog.csdn.net/fjseryi/article/details/50818843

https://blog.csdn.net/taotao821130/article/details/8994588

https://blog.csdn.net/xiaoyankevin/article/details/54177668

https://blog.csdn.net/ymkrdfewxf/article/details/7971057

https://www.cnblogs.com/totozlj/p/3337080.html

https://www.cnblogs.com/ios9/p/9633259.html

https://blog.csdn.net/sunny05296/article/details/56495599

https://blog.csdn.net/eva_1st/article/details/50085547

 

如果本文章对您有所帮助,您可以动一动您的金手指点个赞吧!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值