十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何进行ORACLE RAC SGA参数调整,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联是一家集网站建设,广安企业网站建设,广安品牌网站建设,网站定制,广安网站建设报价,网络营销,网络优化,广安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。环境:
双节点RAC环境,节点1 wtdb1 节点2 wtdb2
数据库 zjcsc 实例1 zjcsc1 实例2 zjcsc2
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、节点2
[root@wtdb2 ~]# vi /etc/sysctl.conf
kernel.shmall = 4194304 即支持大16G共享内存段可用,我们这次要设置大SGA为8G,所以要修改这个参数。
[root@wtdb2 ~]# sysctl -p
生效修改
B、节点1
[root@wtdb1 ~]# vi /etc/sysctl.conf
kernel.shmall = 4194304 即支持大16G共享内存段可用,我们这次要设置大SGA为8G,所以要修改这个参数。
[root@wtdb1 ~]# 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@wtdb2 ~]$ srvctl status database -d zjcsc
Instance zjcsc1 is running on node wtdb1
Instance zjcsc2 is running on node wtdb2
确定各个实例均运行正常
开始关闭实例2
[oracle@wtdb2 ~]$ srvctl stop instance -d zjcsc -i zjcsc2
检查实例
[oracle@wtdb2 ~]$srvctl status database -d zjcsc
Instance zjcsc1 is running on node wtdb1
Instance zjcsc2 is not running on node wtdb2
确定实例2已关闭
确定一个数据库实例时候业务正常
db2上启动数据库到mount状态
[oracle@wtdb2 ~]srvctl start instance -d zjcsc -i zjcsc2 -o mount
修改实例2的sga_max_size到8G
修改db2的sga_target到5G
[oracle@wtdb2 ~]$ sqlplus / as sysdba
ALTER SYSTEM SET sga_max_size = 8589934592 COMMENT='internally adjusted' SCOPE=SPFILE SID='zjcsc2'
System altered.
ALTER SYSTEM SET sga_target = 5368709120 SCOPE=SPFILE SID='zjcsc2'
System altered.
关闭实例2
srvctl stop instance -d zjcsc -i zjcsc1
启动实例2
srvctl start instance -d zjcsc -i zjcsc2 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 zjcsc -i zjcsc1
检查实例状态
[oracle@wtdb1 ~]$ srvctl status database -d zjcsc
Instance zjcsc1 is not running on node wtdb1
Instance zjcsc2 is running on node wtdb2
确定实例1已经关闭
db1上启动数据库到mount状态
srvctl start instance -d zjcsc -i zjcsc1 -o mount
修改实例1的sga_max_size到8G
修改db2的sga_target到5G
[oracle@wtdb2 ~]$ sqlplus / as sysdba
ALTER SYSTEM SET sga_max_size = 8589934592 COMMENT='internally adjusted' SCOPE=SPFILE SID='zjcsc1'
System altered.
ALTER SYSTEM SET sga_target = 5368709120 SCOPE=SPFILE SID='zjcsc1'
System altered.
关闭实例1
srvctl stop instance -d zjcsc -i zjcsc1
启动实例1
srvctl start instance -d zjcsc -i zjcsc1 -o open
查看实例1的SGA信息
[oracle@wtdb1 ~]$ 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@wtdb1 ~]$ srvctl status database -d zjcsc
Instance zjcsc1 is running on node wtdb1
Instance zjcsc2 is running on node wtdb2
ok 全部正常
关于如何进行ORACLE RAC SGA参数调整问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联-成都网站建设公司行业资讯频道了解更多相关知识。