Oracle 11g修改MEMORY_TARGET

参考:http://www.linuxidc.com/Linux/2015-07/120424.htm

参考《创建pfile和spfile》:http://blog.csdn.net/test_me/article/details/5676410

默认情况下,Oracle 11g是使用AMM(Automatic Memory Management,自动内存管理)的。我们在安装数据库过程中,指定Oracle使用内存的百分比,这个取值就作为MEMORY_TARGET和MEMORY_MAX_TARGET的初始取值使用。如果这两个参数设置为非零取值,那么Oracle就是采用AMM管理策略的。

下面演示一下如何修改MEMORY_TARGET的值。

1.environment

SQL> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE 11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production

 

2.when use AMM:

sga_max_size、sga_target、pga_aggregate_target=0 && memory_max_target 、memory_target<>0。

 

SQL> create pfile from spfile;

SQL> alter system set memory_max_target=1024m scope=spfile;

SQL> alter system set memory_target=1000m scope=spfile;

SQL> alter system set sga_target=0 scope=spfile;

SQL>  alter system set sga_max_size=0 scope=spfile;

SQL> alter system set pga_aggregate_target=0 scope=spfile;

SQL> shutdown immediate

SQL> startup

SQL> show parameter target
 
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target     integer 0
db_flashback_retention_target     integer 1440
fast_start_io_target     integer 0
fast_start_mttr_target     integer 0
memory_max_target     big integer 1G
memory_target     big integer 1000M
parallel_servers_target     integer 64
pga_aggregate_target     big integer 0
sga_target     big integer 0
SQL> show parameter sga_
 
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_max_size     big integer 768M
sga_target     big integer 0
SQL> show parameter pga_
 
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target     big integer 0
SQL> 

 

 
 

3.modify MEMORY_TARGET

    我们通过alter system语句来修改MEMORY_TARGET,需要注意的是,MEMORY_TARGET是个动态参数,而MEMORY_MAX_TARGET是个静态参数。

    这样一来,当修改值<=MEMORY_MAX_TARGET时,我们可以随意修改MEMORY_TARGET值;但是,当修改值>MEMORY_MAX_TARGET时,我们必须首先修改MEMORY_MAX_TARGET参数值,重启数据库使静态参数生效后再去修改MEMORY_TARGET值,否则,数据库会报错。

SQL> alter system set memory_target=1025m scope=spfile;

SQL> startup force

ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

SQL> 

 

1、Oralce在启动实例的时读取$ORACLE_HOME/dbs下面的初始化文件。
初始化文件分为:
A、静态参数文件PFILE,一般名为initSID.ora
B、永久参数文件SPFILE,一般名为spfileSID.ora
在Oracle9i之前启动实例时都读取的是静态参数文件initSID.ora,9i之后使用了永久参数文件spfileSID.ora。
因为修改了静态参数文件需要重启数据库实例后才生效,而永久参数文件则不是。

2、创建PFILE
(1)根据$ORACLE_HOME/dbs/init.ora文件创建
复制init.ora文件,按照需求修改该文件,并将文件名命名为initSID.ora,否则需要使用
startup pfile=$ORACLE_HOME/dbs/修改的文件.ora方式启动实例。
但是,可能$ORACLE_HOME/dbs/init.ora文件很老,即使修改了可能启动时也会出错
(2)根据SPFILE文件创建PFILE
CREATE PFILE=$ORACLE_HOME/dbs/initSID.ora FROM SPFILE $ORACLE_HOME/dbs/spfileSID.ora
若都使用默认的,则可简写为:
CREATE PFILE FROM SPFILE 

 

 

[oracle@wyzc ~]$ tail /u01/oracle/11g/dbs/initwyzc11g.ora

*.local_listener='LISTENER_WYZC11G'

*.memory_max_target=1073741824

*.memory_target=1004790400

*.open_cursors=300

*.pga_aggregate_target=0

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_max_size=0

*.sga_target=0

*.undo_tablespace='UNDOTBS1'

[oracle@wyzc ~]$ 

 

[oracle@wyzc ~]$ sqlplus /nolog

SQL> conn / as sysdba

SQL> startup pfile

SP2-0714: invalid combination of STARTUP options

SQL> startup pfile='/u01/oracle/11g/dbs/initwyzc11g.ora'

 

SQL> show parameter target

 

NAME     TYPE VALUE

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

archive_lag_target     integer 0

db_flashback_retention_target     integer 1440

fast_start_io_target     integer 0

fast_start_mttr_target     integer 0

memory_max_target     big integer 1G

memory_target     big integer 960M

parallel_servers_target     integer 64

pga_aggregate_target     big integer 0

sga_target     big integer 0

SQL> 

SQL> create spfile from pfile;

 

[oracle@wyzc ~]$ tail /u01/oracle/11g/dbs/spfilewyzc11g.ora 

*.memory_max_target=1073741824

*.memory_target=1004790400

*.open_cursors=300

*.pga_aggregate_target=0

*.processes=150

*.remote_login_passwordfilCC"56e='EXCLUSIVE'

*.sga_max_size=0

*.sga_target=0

*.undo_tablespace='UNDOTBS1'

 
SQL> shutdown immediate
SQL> startup
ORACLE instance started.
 
Total System Global Area  801755136 bytes
Fixed Size    2232512 bytes
Variable Size  234884928 bytes
Database Buffers  557842432 bytes
Redo Buffers    6795264 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
 
NAME     TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile     string /u01/oracle/11g/dbs/spfilewyzc
11g.ora
SQL> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值