oracle 11.2.0.3 set memory_target 3/4 of physical memory on rhel x86_64

前情提要:

        由于长时间压抑于某数据库性能一直龟速,某一天客户对11g的新特性突然大发骚兴,认为如果将oracle的memory_target设置大点,是不是非常有益,但可惜用户只是做了简单测试就得出结论,比如3/4的物理内存理论上不可行。故事的发展过程记录如下:


用户尝试如下:

ora10:/u01/oracle/admin/cucds01/dpdump # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  4.7G   42G  11% /
devtmpfs        7.8G  128K  7.8G   1% /dev
tmpfs           7.8G  100K  7.8G   1% /dev/shm
/dev/sdb1       295G   95G  201G  33% /u01

17:01:36 SQL> create spfile from pfile;
16:55:17 SQL> alter system set memory_target=12000M scope=spfile;
16:55:42 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
16:55:56 SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system

我作为旁观者建议用户看看这个问题的具体原因是啥?客户打了下oerr ora 00845:(后来查阅mos上[ID 1399209.1]也有此文章)

oracle@ora10:/u01/oracle/product/11gR1/db/dbs> 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.
ora10:/u01/oracle/admin/cucds01/dpdump # umount tmpfs
umount: tmpfs: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

用户大吃一惊:哦,原来如此 一刚(某地方言象声词)。好,那就说明我只要把/dev/shm 的大小设置成超过12G 就可以了咯?说是迟那时快(笑而不语),一个umount就过去了(次系统为非核心业务系统,用户有足够折腾的权力),呀,还busy了?

ora10:/u01/oracle/admin/cucds01/dpdump # umount tmpfs
umount: tmpfs: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

有提示就好办,lsof或者fuser 来查看一番么?

ora10:~ # lsof /dev/shm
COMMAND    PID USER  FD   TYPE DEVICE SIZE/OFF  NODE NAME
gnome-set 3792 root mem    REG   0,16 67108904 10752 /dev/shm/pulse-shm-2721841381
gnome-vol 3843 root mem    REG   0,16 67108904 13745 /dev/shm/pulse-shm-2674159113
pulseaudi 3853 root mem    REG   0,16 67108904 11633 /dev/shm/pulse-shm-1760779642

这三个是嘛玩意?

烦请各位网友,度娘或者谷哥一把。反正不是关键进程,干掉他.........

ora10:~ # kill -9 3792
ora10:~ # kill -9 3843
ora10:~ # kill -9 3853
ora10:~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  4.7G   42G  11% /
devtmpfs        7.8G  128K  7.8G   1% /dev
tmpfs           7.8G  100K  7.8G   1% /dev/shm
/dev/sdb1       295G   95G  201G  33% /u01
ora10:~ # umount tmpfs
ora10:~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  4.7G   42G  11% /
devtmpfs        7.8G  128K  7.8G   1% /dev
/dev/sdb1       295G   95G  201G  33% /u01

很顺利,终于干掉,大功告成? 革命尚未成功,xx想遇到oo 那就得继续努力,少年.....

ora10:~ # mount -t   tmpfs shmfs -o size=13000M /dev/shm
ora10:~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        48G  4.7G   42G  11% /
devtmpfs        7.8G  128K  7.8G   1% /dev
/dev/sdb1       295G   95G  201G  33% /u01
shmfs            13G     0   13G   0% /dev/shm

习惯先看看是否想给memory_target 12G大小,物理内存够没够...

oracle@ora10:~> top
top - 09:22:00 up 32 min,  3 users,  load average: 0.69, 0.21, 0.11
Tasks: 155 total,   1 running, 154 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.3%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:     15953M total,      926M used,    15027M free,       17M buffers
Swap:     2053M total,        0M used,     2053M free,      582M cached

嗯,看来没问题,骚年得继续努力:

oracle@ora10:~> export ORACLE_SID=cucds01
oracle@ora10:~> echo $ORACLE_SID
cucds01
oracle@ora10:~> sqlplus

SQL*Plus: Release 11.2.0.3.0 Production on Wed May 8 09:22:23 2013

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

Enter user-name: /as sysdba
Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1.2827E+10 bytes
Fixed Size                  2240344 bytes
Variable Size            5872025768 bytes
Database Buffers         6945767424 bytes
Redo Buffers                7335936 bytes
Database mounted.
Database opened.
SQL> show parameter instance

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
active_instance_count                integer
cluster_database_instances           integer     1
instance_groups                      string
instance_name                        string      cucds01
instance_number                      integer     0
instance_type                        string      RDBMS
open_links_per_instance              integer     4
parallel_instance_group              string
parallel_server_instances            integer     1
SQL> show parameter mem

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 12G
memory_target                        big integer 12G
shared_memory_address                integer     0

全集终,如有雷同,也未必是巧合,现在各种翻新,炒冷饭的剧还少么.....囧!!多谢各位观众观看....再见!!





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值