ITPub博客

首页 > 数据库 > Oracle > ORA-00845: MEMORY_TARGET not supported on this system

ORA-00845: MEMORY_TARGET not supported on this system

Oracle 作者:记录每一次错误 时间:2018-11-27 22:41:19 0 删除 编辑

今天测试数据库所在主机关机,重新启动数据库的时候出现

ORA-00845: MEMORY_TARGET not supported on this system


SYS@sjpt110>startup  

ORA-00845: MEMORY_TARGET not supported on this system

我的处理过程是:切换至root用户执行

[root@BJODSDB0110 ~]# sudo  mount -o remount,size=20G  /dev/shm

[root@BJODSDB0110 ~]# su - oracle

[oracle@BJODSDB0110 ~]$ sqlplus /  as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 27 22:32:26 2018


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


Connected to an idle instance.


SYS@sjpt110>startup

ORACLE instance started.


Total System Global Area 5227814912 bytes

Fixed Size                  2262368 bytes

Variable Size            3103787680 bytes

Database Buffers         2113929216 bytes

Redo Buffers                7835648 bytes

Database mounted.

Database opened.

具体原理参考以下文章:

修改Oracle的memory_max_target和memory_target

最初安装Orale11g时,采用默认自动内存管理,使用1/2Mem。后来想增大最大内存使用值。

系统内存16G Mem,想修改为3/4Mem: 16*3/4=12G=12288M。

# vim /etc/sysctl.conf

kernel.shmmax = 12884901888

# sysctl -p

再修改ORACLE 参数

sql> show parameter target;

sql> alter system set memory_max_target=12288M scope=spfile;

sql> alter system set memory_target=12288M scope=spfile;



需要重启数据库才能生效。



sql> startup 时报错:


ORA-00845: MEMORY_TARGET not supported on this system


查找资料后发现在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,


这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。



解决方案:


1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm


# mount -t tmpfs shmfs -o size=12288M /dev/shm


但如果之前已经mount过了,则执行remount


# mount -o remount,size=12288M /dev/shm



2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件


tmpfs /dev/shm tmpfs  defaults,size=12288M      0 0



3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载,执行目录查看:


# df -h



下面是我的操作流程:

[root@localhost ~]# df -h


Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root  184G   24G  160G  13% /

devtmpfs                 7.8G     0  7.8G   0% /dev

tmpfs                    7.8G   80K  7.8G   1% /dev/shm

tmpfs                    7.8G  8.8M  7.8G   1% /run

tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup

/dev/sda1                497M  109M  389M  22% /boot

tmpfs                    1.6G   12K  1.6G   1% /run/user/42

tmpfs                    1.6G     0  1.6G   0% /run/user/0

[root@localhost ~]# 

[root@localhost ~]# cat /etc/fstab 



#

# /etc/fstab

# Created by anaconda on Wed Feb 22 19:26:05 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos-root /                       xfs     defaults        0 0

UUID=2fafd7f5-0ceb-46ea-9d57-165f82e04dfe /boot                   xfs     defaults        0 0

/dev/mapper/centos-swap swap                    swap    defaults        0 0

[root@localhost ~]# 


[root@localhost ~]# mount -o remount,size=12288M /dev/shm


[root@localhost ~]# 


[root@localhost ~]# df -h


Filesystem               Size  Used Avail Use% Mounted on

/dev/mapper/centos-root  184G   24G  160G  13% /

devtmpfs                 7.8G     0  7.8G   0% /dev

tmpfs                     12G   80K   12G   1% /dev/shm

tmpfs                    7.8G  8.8M  7.8G   1% /run

tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup

/dev/sda1                497M  127M  370M  26% /boot

tmpfs                    1.6G   12K  1.6G   1% /run/user/42

tmpfs                    1.6G     0  1.6G   0% /run/user/0

[root@localhost ~]# 


[root@localhost ~]# vim /etc/fstab 



#

# /etc/fstab

# Created by anaconda on Wed Feb 22 19:26:05 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/centos-root /                       xfs     defaults        0 0

UUID=2fafd7f5-0ceb-46ea-9d57-165f82e04dfe /boot                   xfs     defaults        0 0

/dev/mapper/centos-swap swap                    swap    defaults        0 0

tmpfs /dev/shm tmpfs  defaults,size=12288M      0 0

~                                                                              



启动数据库还是报错:


$ sqlplus / as sysdba


SQL> startup


ORA-00845: MEMORY_TARGET not supported on this system


SQL> 



网上搜索,发现是/dev/shm还是不够大,/dev/shm必须大于MEMORY_TARGET,等于也会报错。


所以继续调整/dev/shm为13G:


# mount -o remount,size=13G /dev/shm



启动数据库成功。



持久化修改


# vim /etc/fstab


tmpfs /dev/shm tmpfs  defaults,size=13G      0 0




修改成功,查看:




SQL> show parameter target;


NAME                                 TYPE

------------------------------------ ---------------------------------

VALUE

------------------------------

archive_lag_target                   integer


db_flashback_retention_target        integer

1440

fast_start_io_target                 integer


fast_start_mttr_target               integer


memory_max_target                    big integer



NAME                                 TYPE

------------------------------------ ---------------------------------

VALUE

------------------------------

12G

memory_target                        big integer

12G

parallel_servers_target              integer

32

pga_aggregate_target                 big integer


sga_target                           big integer


SQL> 




已经变成12G了。

--------------------- 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31547066/viewspace-2221881/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
性格开朗,有较强的学习能力,对oracle数据库的体系结构,搭建RAC,timesten,goldengate,分布式数据库,dataguard,系统调优有较深入的了解, 尤其是oracle优化,深入学习的主机命令,对数据库的优化,SQL语句的优化有深入的认识,目前正在shell脚本,mysql,以后会有计划学习大数据和python。

注册时间:2018-07-23

  • 博文量
    182
  • 访问量
    325225