【2017/4/10】Oracle 11g修改MEMORY_TARGET

来源:互联网 发布:类似沙盘的软件 编辑:程序博客网 时间:2024/06/08 08:49

参考: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
原创粉丝点击