Linux Centos6/7 Oracle11g 内存16G调整32G
前情提要:公司新创建的数据库 需要将数据库内存16G调整32G (若要32G换成16G 本文章通用)
1.登录oracle用户权限
[root@localhost ~]# su oracle
[oracle@localhost ~]$ sqlplus / as sysdba
2.16G oracle配置
注:可能没有pga_aggregate_limit这个值,直接跳过就好
SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
allow_group_access_to_sga boolean FALSE
lock_sga boolean FALSE
pre_page_sga boolean TRUE
sga_max_size big integer 8096M
sga_min_size big integer 0
sga_target big integer 8000M
unified_audit_sga_queue_size integer 1048576
SQL> show parameter pga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 2400M
pga_aggregate_target big integer 798M
SQL> show parameter target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 128
pga_aggregate_target big integer 798M
sga_target big integer 8000M
target_pdbs integer 0
3.16G sysctl.conf配置
[root@localhost ~]# cat /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
4.32G oracle配置
[oracle@localhost ~]$ sqlplus / as sysdba;
Connected.
SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
allow_group_access_to_sga boolean FALSE
lock_sga boolean FALSE
pre_page_sga boolean TRUE
sga_max_size big integer 9664M
sga_min_size big integer 0
sga_target big integer 9664M
unified_audit_sga_queue_size integer 1048576
SQL> show parameter pga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit big integer 6436M
pga_aggregate_target big integer 3218M
SQL> show parameter target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 128
pga_aggregate_target big integer 3218M
sga_target big integer 9664M
target_pdbs integer 0
5.32G sysctl.conf配置
[root@localhost ~]# cat /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 3294590
kernel.shmmax = 16868304896
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
6.修改16G oracle 的sysctl.conf
[root@localhost ~]# vim /etc/sysctl.conf
将
kernel.shmall = 2097152
kernel.shmmax = 4294967295
改为
kernel.shmall = 3294590
kernel.shmmax = 16868304896
执行命令使修改生效
[root@localhost ~]# sysctl -p
7.修改16G oracle的配置
注:主要根据sga,pga,target参数改就好
SQL> alter system set sga_max_size = 9664M scope=spfile;
System altered.
SQL> alter system set sga_target=9664M scope=spfile;
System altered.
SQL> alter system set pga_aggregate_target=3218M scope=both;
System altered.
SQL> alter system set pga_aggregate_limit=6436M scope=both;
System altered.
8.重启oracle
[oracle@localhost ~]$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup;
9.已成功修改服务器内存16G改为32G
总结:本文主要参考大佬文章,其中少部分为自己个人看法和配置,个人记性不好,所以总结加记要;再次感谢CSDN各位大佬的贡献,我只是个小小搬运工。
参考大佬文献