11g修改内存大小

本文档介绍了如何在Oracle 11g中查看和修改SGA_max_size, sga_target, PGA_AGGREGATE_TARGET以及MEMORY_TARGET参数。通过SQL查询展示参数值,并说明了如何通过创建pfile、调整Linux系统参数以及重启数据库来修改内存设置。当系统参数tmpfs小于MEMORY_TARGET时,会遇到'ORA-00845: MEMORY_TARGET not supported on this system'错误,需要通过调整/dev/shm的大小来解决。" 123284193,12483013,Python中的列表与元组详解,"['Python', '数据结构', '算法', '编程基础']

1.确认当前参数文件

SQL> show parameter pfile

 

NAME                                        TYPE       VALUE

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

spfile                                          string     /u01/oracle/product/11.2.0.4/d

                                                        bs/spfileappserv.ora

SQL>

sga_max_size为实例允许使用的sga上限,一个静态参数,是不能动态修改的

SQL> show parameter sga_max_size

 

NAME                                       TYPE       VALUE

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

sga_max_size                         big integer 8384M

SQL>

 

sga_target为10g推出的sga自动管理的参数,动态参数,可以动态修改.

SQL> show parameter sga_target

 

NAME                                        TYPE       VALUE

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

sga_target                               big integer 8384M

SQL>

 

PGA_AGGREGATE_TARGET-此参数用来指定所有session总计可以使用最大PGA内存。这个参数可以被动态的更改,取值范围从10M -- (4096G-1 )bytes。

SQL> show parameter  pga_aggregate_target

 

NAME                                        TYPE       VALUE

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

pga_aggregate_target                  big integer 2258291200

SQL>

 

Oracle 11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

SQL> show parameter MEMORY_TARGET

 

NAME                                        TYPE       VALUE

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

memory_target                               big integer 0

SQL>

 

11g 中新增MEMORY_MAX_TARGET 参数

功能:memory_max_target是设定Oracle能占OS多大的内存空间

SQL> show parameter memory_max_target

 

NAME                                        TYPE       VALUE

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

memory_max_target                     big integer 0

SQL>

 

 

2.由当前spfile创建pfile(作备份用)

[root@appserv172 dbs]# ls -lrt

total 48

-rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora

-rw-r----- 1 oracle oinstall   24 Jan 16  2014 lkAPPSERV

-rw-r----- 1 oracle oinstall 1536 Jan 16  2014 orapwappserv

-rw-r--r-- 1 oracle oinstall  974 Feb  2  2015 initappserv.ora

-rw-rw---- 1 oracle oinstall 1544 Oct 30 19:30 hc_appserv.dat

-rw-r----- 1 oracle oinstall 3584 Nov  2 16:36 spfileappserv.ora

[root@appserv172 dbs]#

SQL> create pfile from spfile;

 

File created.

 

SQL>

[root@appserv172 dbs]# ls -lrt

total 48

-rw-r--r-- 1 oracle oinstall 2851 May 15  2009 init.ora

-rw-r----- 1 oracle oinstall   24 Jan 16  2014 lkAPPSERV

-rw-r----- 1 oracle oinstall 1536 Jan 16  2014 orapwappserv

-rw-rw---- 1 oracle oinstall 1544 Oct 30 19:30 hc_appserv.dat

-rw-r----- 1 oracle oinstall 3584 Nov  2 16:36 spfileappserv.ora

-rw-r--r-- 1 oracle oinstall 1006 Nov  3 09:55 initappserv.ora

[root@appserv172 dbs]#

[root@appserv172 dbs]# cat  initappserv.ora

appserv.__db_cache_size=7449083904

appserv.__java_pool_size=33554432

appserv.__large_pool_size=234881024

appserv.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment

appserv.__pga_aggregate_target=2281701376

appserv.__sga_target=8791261184

appserv.__shared_io_pool_size=0

appserv.__shared_pool_size=1006632960

appserv.__streams_pool_size=0

*._serial_direct_read='NEVER'

*.audit_file_dest='/u01/oracle/admin/appserv/adump'

*.audit_trail='none'

*.compatible='11.2.0.4.0'

*.control_files='/u01/oracle/oradata/appserv/control01.ctl','/u01/oracle/fast_recovery_area/appserv/control02.ctl'

*.db_block_size=8192

*.db_domain=''

*.db_name='appserv'

*.db_recovery_file_dest='/u01/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

*.diagnostic_dest='/u01/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=appservXDB)'

*.open_cursors=300

*.pga_aggregate_target=2258291200

*.processes=500

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=555

*.sga_target=8774873600

*.undo_tablespace='UNDOTBS1'

[root@appserv172 dbs]#

 

3.检查linux系统参数限制

 

看下   /dev/shm 的大小

[root@appserv172 ~]#df -h | grep shm

tmpfs                 8.0G     0  8.0G   0% /dev/shm

[root@appserv172 ~]#

 /dev/shm  小了,

会报“ORA-00845: MEMORY_TARGET not supported on this system”

一会启动不起来了

 

[root@appserv172 ~]# cat /etc/fstab

LABEL=/                 /                       ext3    defaults        1 1

LABEL=/u01              /u01                    ext3    defaults        1 2

LABEL=/home             /home                   ext3    defaults        1 2

LABEL=/tmp              /tmp                    ext3    defaults        1 2

tmpfs                   /dev/shmtmpfsdefaults,size=8G        0 0

devpts                  /dev/pts                devptsgid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

LABEL=SWAP-sda2         swap                    swap    defaults        0 0

[root@appserv172 ~]#

 

12+4

PGA+sga总和

 

SQL> startup

 ORA-00845: MEMORY_TARGET not supported on this system

这个是由于系统tmpfs小于MEMORY_TARGET导致的,需要调整tmpfs的大小

1.>mount -t tmpfsshmfs -o size=3g /dev/shm

 2.>vi /etc/fstab

tmpfs                  /dev/shmtmpfsdefaults,size=16G      0 0

修改size的大小

重新挂载

mount -o remount /dev/shm

mount -o remount /dev/shm这个貌似不好使,用上面的就可以了

验证下

df -h

4.修改spfile

 

SQL> alter system set sga_max_size=14g scope=spfile;

SQL> alter system set sga_target=14g scope=spfile;

 

SQL> alter system set pga_aggregate_target=4g scope=spfile;这个不做了

 

SQL>  alter system set sga_max_size=14g scope=spfile;

 

System altered.

 

SQL> alter system set sga_target=14g scope=spfile;

 

System altered.

5.重启

SQL> shutdown immediate

SQL> startup

 

 

 

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>  startup

ORACLE instance started.

 

Total System Global Area 1.4965E+10 bytes

Fixed Size              2267792 bytes

Variable Size              1476396400 bytes

Database Buffers    1.3455E+10 bytes

Redo Buffers                31272960 bytes

Database mounted.

Database opened.

SQL>

 

6.检查修改后参数

SQL> show parameter pfile

 

NAME                                        TYPE       VALUE

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

spfile                                          string     /u01/oracle/product/11.2.0.4/d

                                                        bs/spfileappserv.ora

SQL>

SQL> show parameter sga_max_size

 

NAME                                        TYPE       VALUE

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

sga_max_size                         big integer 14G

SQL>

SQL> show parameter sga_target

 

NAME                                        TYPE       VALUE

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

sga_target                               big integer 14G

SQL>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值