发布网友 发布时间:2022-05-02 07:53
共3个回答
懂视网 时间:2022-05-02 12:14
SGA的大小:一般物理内存20%用作操作系统保留,其他80%用于数据库。
SGA普通数据库可以分配40%-60%之间,PGA可以分配20%-40%之间。
1、以system的身份登录
并查看SGA信息:
SQL>show parameter sga;
查看PGA信息:
SQL>show parameter pga;
2、修改sga_target
SQL>alter system set sga_target=436M;
3、修改sga_max_size
SQL> alter system set sga_max_size=436M scope=spfile;
www.2cto.com
4、重启数据库使其生效:
SQL>shutdown immediate;
注意,重启前一定先完成上述两部操作,且sga_target不得大于sga_max_size,一般保持两者相等。否则可能导致数据库无法启动。
SQL>startup
5、查看SGA是否生效:
SQL>show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- -----
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 436M
sga_target big integer 436M
6,查询PGA大小
SQL> show parameter workarea
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 90M
pga_aggregate_target默认特别小只90M
当然太小了,因为我们当前使用的是非生产环境,90M无所谓,因为我们没有什么连接,到底需要满足多少连接到底该设多大呢
一般是物理内存的80%*20%是16%,一般生产里面都是16G的空间,16G*16% = 2.56G 接近3G给pga
_pga_max_size参数:是每一个会话能够分配的最大空间的数量,这个值不是固定的
SQL>select ksppinm "Name", ksppstvl/1024/1024 ||‘M‘ "Value", ksppdesc "Desc" from x$ksppi x, x$ksppcv y where x.indx = y.indx and ksppinm =‘_pga_max_size‘;
结果
Name Value Desc
------------- ------ --------------------------------------------------
_pga_max_size 200M Maximum size of the PGA memory for one process
从结果看这个参数是200M(默认值),也就是对每个session来讲最大只能分200M,对当前来讲每个session最多在pga空间只能分200M
7,修改PGA的自动管理方式和大小
SQL> alter system set workarea_size_policy=auto scope=both;
SQL> alter system set pga_aggregate_target=3072m scope=both;
修改后重启数据库。
线上oracle数据库建议内存修改方式:
1),系统总内存:64G
2),目前数据库使用内存:
sga:2G
pga:90M
3),建议调整后的大小:
sga:30G
pga:10G
4),查看具体参数:
SQL> show parameter sga; --------------查看sga的区域大小
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 2G
sga_target big integer 2G
SQL> show parameter pga; --------------查看pga的默认区域大小
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 90M
SQL> show parameter workarea; ----------查看oracle内存区域的工作方式(确保是在自动的模式下)
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO
5),修改参数:
SQL> alter system set sga_max_size=30720M scope=spfile; ---------------先修改最大pga的大小
SQL> shutdown immediate;----------- 重启,使得以上的修改生效
SQL> startup
SQL> alter system set sga_target=30720M; --------- 接着修改sga的大小(该大小不能超过以上设置的最大的pga的大小。否则报错)
SQL> alter system set pga_aggregate_target=10240M scope=both;
SQL> shutdown immediate;----------- 重启,使得以上的修改生效
SQL> startup
6),查看修改后的效果
SQL> show parameter sga;
SQL> show parameter pga;
oracle中增加pga和sga
标签:one max ssi family 模式 修改 10g ram 为我
热心网友 时间:2022-05-02 09:22
到Oracle9i安装目录下有文件夹dbs,里面有一个初始化文档样本initde.ora。追答如果用10g还不如用11g。10g是过渡版本,11g性能更稳定,功能更强。还有10g、11g都有SGA自动管理机制。如果你实在弄不好内存分配,就设置内存自动管理吧。
自动SGA管理和自动PGA管理的设置
⑴ 自动SGA管理
采用自动SGA内存管理时,确定自动调整组件大小的主要参数是SGA_TARGET。这个参数可以在数据库启动并运行时动态调整,最大可以达到SGA_MAX_SIZE参数设置的值,如果没有设置默SGA_MAX_SIZE,则SGA_TARGET的最大值就是自己本身。设置方法如下:
alter system set memory_target=0 SCOPE=SPfile;
alter system set sga_max_size=480M SCOPE=SPfile;
alter system set sga_target=320M SCOPE=SPfile;
alter system set log_buffer=4915200 SCOPE=SPfile;
Startup force
在修改参数文件中,SCOPE=BOTH表示立即执行改变,并永久地使用改变;SCOPE=SPFILE表示重新启动后才生效。
⑵ 自动PGA管理
自动PGA管理是通过调整pag_aggregate_target参数和把workarea_size_policy设置成AUTO。设置方法如下:
alter system set memory_target=0 SCOPE=SPfile;
alter system set workarea_size_policy = Auto SCOPE=SPfile;
alter system set pag_aggregate_target=40M SCOPE=SPfile;
Startup force
热心网友 时间:2022-05-02 10:40
不懂