linux下调整sga,RAC下修改SGA的实战操作

在生产环境的EM检查ADDM,最近总会看到增加SGA大小的建议,当前SGA是4G,决定根据建议提高到5G。

环境:               双节点RAC环境,节点1 pdmcn1节点2pdmcn2

数据库 pdmcn 实例1 pdmcn1实例2 pdmcn2

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

CRS 10.2.0.4.0

32G内存注意:在RAC环境下修改 SGA一定是要指定实例逐个修改,sga_max_size是允许分配的最大的SGA大小,本次设置为8G,以为是静态参数所以要修改spfile并重启实例,sga_target是当前要分配的SGA大小根据ADDM的建议到5G,这是个动态参数可以动态修改。

一、修改操作系统内核参数

A、节点1

[root@pdmcn1 ~]# vi /etc/sysctl.conf

kernel.shmall = 4194304  #即支持最大16G共享内存段可用,我们这次要设置最大SGA为8G,所以要修改这个参数。

[root@pdmcn1 ~]# sysctl -p #生效修改

B、节点2

[root@pdmcn2~]# vi /etc/sysctl.conf

kernel.shmall = 4194304  #即支持最大16G共享内存段可用,我们这次要设置最大SGA为8G,所以要修改这个参数。

[root@pdmcn2 ~]# sysctl -p  #生效修改

关于shmall的一点补充:

kernel.shmall

该参数控制系统一次可以使用的共享内存总量(以页为单位,一页4k=4098),这个值的设定需要根据kernel.shmmax 大小来确定

kernel.shmall = 2097152  就是 2097152*4098= 8G 即最大一次可用8G的内存(这个在调整SGA时需要注意,SGA大小设置不可超过该值)

该值默认 2097152 ,但根据系统内存大小和使用的不同可以参考如下:

kernel.shmall = 2097152    ---内存8G

kernel.shmall = 4194304    ---内存16G

kernel.shmall = 8388608    ---内存32G

二、修改SGA

A、修改实例2的SGA

检查实例[oracle@pdmcn2 ~]$ srvctl status database -d pdmcn

Instance pdmcn1 is running on node pdmcn1

Instance pdmcn2 is running on node pdmcn2

确定各个实例均运行正常

开始关闭实例2

[oracle@pdmcn2 ~]$ srvctl stop instance  -d pdmcn -i pdmcn2

检查实例

[oracle@pdmcn2 ~]$srvctl status database -d pdmcn

Instance pdmcn1 is running on node pdmcn1

Instance pdmcn2 is not running on node pdmcn2

确定实例2已关闭

确定一个数据库实例时候业务正常

db 2上启动数据库到mount状态[oracle@pdmcn2 ~]srvctl start instance -d pdmcn -i pdmcn2 -o mount

修改实例2的sga_max_size到8G

修改db2的sga_target到5G

[oracle@pdmcn2 ~]$ sqlplus / as sysdba

ALTER SYSTEM SET sga_max_size = 8589934592 COMMENT='internally adjusted' SCOPE=SPFILE SID='pdmcn2'

System altered.

ALTER SYSTEM SET sga_target = 5368709120 SCOPE=SPFILE SID='pdmcn2'

System altered.

关闭实例2srvctl stop instance -d pdmcn-i pdmcn2

启动实例2

srvctl start instance  -d pdmcn-i pdmcn2 open

查看实例2的SGA信息

[oracle@wtdb2 ~]$ sqlplus / as sysdba

SQL> show parameter sga;

NAME               TYPE  VALUE

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

lock_sga            boolean  FALSE

pre_page_sga        boolean  FALSE

sga_max_size        big integer 8G

sga_target          big integer 5G

SGA修改成功

B、修改实例1的SGA

关闭实例1

[oracle@wtdb1 ~]$ srvctl stop instance -d pdmcn -i pdmcn1

检查实例状态

[oracle@wtdb1 ~]$ srvctl status database -d pdmcn

Instance pdmcn1 is not running on node pdmcn1

Instance pdmcn2 is running on node pdmcn2

确定实例1已经关闭

db1上启动数据库到mount状态

srvctl start instance -d pdmcn -i pdmcn1 -o mount

修改实例1的sga_max_size到8G

修改db2的sga_target到5G

[oracle@pdmcn2 ~]$ sqlplus / as sysdba

ALTER SYSTEM SET sga_max_size = 8589934592 COMMENT='internally adjusted' SCOPE=SPFILE SID='pdmcn1'

System altered.

ALTER SYSTEM SET sga_target = 5368709120 SCOPE=SPFILE SID='pdmcn1'

System altered.

关闭实例1srvctl stop instance -d pdmcn -i pdmcn1

启动实例1srvctl start instance  -d pdmcn -i pdmcn1 -o open

查看实例1的SGA信息

[oracle@pdmcn1 ~]$ sqlplus / as sysdba

SQL> show parameter sga;

NAME               TYPE  VALUE

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

lock_sga            boolean  FALSE

pre_page_sga        boolean  FALSE

sga_max_size        big integer 8G

sga_target          big integer 5G

SGA修改成功

检查数据库状态

[oracle@pdmcn1 ~]$ srvctl status database -d pdmcn

Instance pdmcn1 is running on node pdmcn1

Instance pdmcn2 is running on node pdmcn2

ok 全部正常

原文链接:

http://blog.csdn.net/newhappy2008/article/details/6864329

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值