tempfs shm oracle sga,ORA-000845与/dev/shm(tempfs)

5268f80b9b1e01f982625ef6fac83ca1.png

MEMORY_TARGET参数在Oracle 11g被引进,主要是用于控制Oracle对于系统内存的使用,首次将SGA与PGA整合到一起实现自动管理。一旦设

MEMORY_TARGET参数在Oracle 11g被引进,主要是用于控制Oracle对于系统内存的使用,首次将SGA与PGA整合到一起实现自动管理。一旦设置了MEMORY_TARGET参数值,Oracle会根据需要自动调整SGA与PGA以合理的分配及使用内存。但如果MEMORY_TARGET设置不当,就容易引起ORA-00845,因为MEMORY_TARGET与/dev/shm(tempfs)息息相关,本文即是对由此引发问题的描述。

1、故障现象

[oracle@linux1 catadb]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 13 21:38:41 2013

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

Connected to an idle instance.

idle> startup nomount;

ORA-00845: MEMORY_TARGET not supported on this system

2、故障分析

[oracle@linux1 trace]$ oerr ora 00845

00845, 00000, "MEMORY_TARGET not supported on this system"

// *Cause: The MEMORY_TARGET parameter was not supported on this operating system or /dev/shm was not sized correctly on Linux.

// *Action: Refer to documentation for a list of supported operating systems.

Or, size /dev/shm to be at least the SGA_MAX_SIZE on each Oracle instance running on the system.

#从上面的描述可知,/dev/shm的大小应该至少是当前系统每一个实例的SGA_MAX_SIZE,个人认为这个描述不是很准确

#下面查看告警日志

[oracle@linux1 trace]$ more alert_catadb.log

Wed Nov 13 21:38:48 2013

Starting ORACLE instance (normal)

WARNING: You are trying to use the MEMORY_TARGET feature. This feature requires the /dev/shm file system to be mounted for at least

1073741824 bytes. /dev/shm is either not mounted or is mounted with available space less than this size. Please fix this so that

MEMORY_TARGET can work as expected. Current available is 901312512 and used is 161312768 bytes.

Ensure that the mount point is /dev/shm for this directory. memory_target needs larger /dev/shm

#告警日志给出了比较精确的描述,/dev/shm至少是1GB,因为我们的参数文件中定义的MEMORY_TARGET为1GB

#同时也给出了/dev/shm当前已使用的和剩余空间的大小。剩余空间大小901312512不够1GB,因此需要考虑增加dev/shm或减少MEMORY_TARGET的值

#延伸思考

/dev/shm实际上就是对应到tmpfs,也可以称之为临时文件系统(不是块设备)。有点类似于Oracle数据库的临时表空间一样啊,,用于加速和优化系统。

我们可以通过df -h来查看到该加载点,该目录并不位于磁盘,而是在内存里,默认情况下,其大小为当前内存的一半,该文件系统会被自动加载。

/dev/shm的分配是按需分配,如我们前面的错误描述,当前分配了1GB,实际使用了154MB,剩余860MB。也就是说这860MB依旧可分配给其他应用程序。

使用tmps文件系统有一些优点,可以实现动态文件系统大小,其次是由于驻留内存,可以闪电加速。重启后被清空,也就是相当于闪存。

#当前系统的/dev/shm

[oracle@linux1 trace]$ df -h | grep shm

tmpfs 1014M 154M 860M 16% /dev/shm

[oracle@linux1 ~]$ ls -hltr /dev/shm

total 154M

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:06 ora_+ASM1_2686978_68

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:06 ora_+ASM1_2686978_39

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:06 ora_+ASM1_2686978_40

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:06 ora_+ASM1_2686978_41

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:06 ora_+ASM1_2686978_42

...............

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:47 ora_+ASM1_2686978_66

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:47 ora_+ASM1_2686978_52

-rw-r----- 1 grid oinstall 4.0M Nov 14 11:47 ora_+ASM1_2686978_67

更多详情见请继续阅读下一页的精彩内容:

相关阅读:

ORA-01172、ORA-01151错误处理

ORA-00600 [2662]错误解决

ORA-01078 和 LRM-00109 报错解决方法

ORA-00471 处理方法笔记

ORA-00314,redolog 损坏,或丢失处理方法

ORA-00257 归档日志过大导致无法存储的解决办法

logo.gif

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值