【2017/4/10】Oracle 11g修改MEMORY_TARGET
2017-04-10 22:32
489 查看
参考: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>
参考《创建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>
相关文章推荐
- 有时候修改过SGA,导致 ORACLE 启动不了,这需要手动 修改 MEMORY_TARGET
- oracle 11g中的memory_target小结
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 说明
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 报错处理
- oracle修改 11g processes参数导致:无法启动解决方法 shared memory realm does not exists
- Oracle 修改 MEMORY_TARGET
- 修改oracle memory_target
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 说明
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 说明
- Oracle 11g新特性:Memory_target与自动内存管理
- ORA-00845 Oracle 启不来修改 MEMORY_TARGET
- oracle 11g 启动实例 ORA-00845: MEMORY_TARGET not supported on this system
- oracle 11g中的memory_target小结
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 说明
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system 说明
- ORA-00845 Oracle 启不来修改 MEMORY_TARGET
- Oracle 11g ORA-00845: MEMORY_TARGET not supported on this system
- linux操作系统下,oracle db 11g中增大memory_max_target和memory_target应该注意的
- Oracle 11g AMM: MEMORY_TARGET, MEMORY_MAX_TARGET and /dev/shm
- Oracle 11gR2修改MEMORY_TARGET参数