如何进行ORACLE RAC SGA参数调整

2023-10-18 1068阅读

如何进行ORACLE RAC SGA参数调整,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。环境:

双节点

RAC

环境,节点1 wtdb1 节点2 wtdb2


数据库

zjcsc 实例1 zjcsc1 实例2 zjcsc2


Oracle

Database

1开发云主机域名0g

Enterprise Edition Release 10.2.0.4.0 – 64bit Production

CRS 10.2.0.4.0

32G内存

如何进行ORACLE RAC SGA参数调整
(图片来源网络,侵删)

注意:

在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二、修改SGAA、修改实例2的SGA检查实例

[oracle@wtdb2 ~]$ srvctl status database -d zjcscInstance 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 zjcscInstance 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 sysdbaSQL> 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 sysdbaSQL> 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 zjcscInstance zjcsc1 is running on node wtdb1

Instance zjcsc2 is running on node wtdb2ok 全部正常关于如何进行ORACLE RAC SGA参数调整问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注开发云行业资讯频道了解更多相关知识。

本文从转载,原作者保留一切权利,若侵权请联系删除。

《如何进行ORACLE RAC SGA参数调整》来自互联网同行内容,若有侵权,请联系我们删除!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]