Oracle 10g的内存管理自动管理功能, ASMM的一部分. 当设置sga_target不为零的值,并且设置statistics_level=ALL或TYPICAL时起用内存自动管理. 此时另外一个参数sga_max_size也会变为sga_target的值. 如果不满足ASMM的条件, 则使用传统的内存管理方式. 但是log_buffer的值是可以通过修改参数来改变的. Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\hawk>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 7月 23 16:07:51 2006 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> connect sys/sys as sysdba 已连接到空闲例程。 SQL> startup ORACLE 例程已经启动。 Total System Global Area 121634816 bytes Fixed Size 787748 bytes Variable Size 95419100 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga_target NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_target big integer 0 SQL> show parameter sga_max_size NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_max_size big integer 116M SQL> SQL> show parameter log_buffer NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_buffer integer 262144 SQL> show parameter statistics_level NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ statistics_level string TYPICAL SQL> alter system set log_buffer=1048576 2 ; alter system set log_buffer=1048576 * 第 1 行出现错误: ORA-02095: 无法修改指定的初始化参数 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 --这里修改d:\pfile里面的参数,加 *.log_buffer=1048576 SQL> startup pfile='d:\pfile'; ORACLE 例程已经启动。 Total System Global Area 121634816 bytes Fixed Size 787748 bytes Variable Size 94632668 bytes Database Buffers 25165824 bytes Redo Buffers 1048576 bytes 数据库装载完毕。 数据库已经打开。 SQL> SQL> SQL> show parameter log_buffer NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_buffer integer 1048576 SQL> SQL> --在初始化参数中设置sga_target的值. Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:\Documents and Settings\hawk>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production on 星期日 7月 23 16:39:36 2006 Copyright (c) 1982, 2004, Oracle. All rights reserved. SQL> connect sys/sys as sysdba 已连接。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup pfile='d:\pfile'; ORACLE 例程已经启动。 Total System Global Area 159383552 bytes Fixed Size 787928 bytes Variable Size 94632488 bytes Database Buffers 62914560 bytes Redo Buffers 1048576 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga_ NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_max_size big integer 152M sga_target big integer 152M SQL> show parameter log_buffer NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_buffer integer 1048576 SQL> alter system set log_buffer=1100000; alter system set log_buffer=1100000 * 第 1 行出现错误: ORA-02095: 无法修改指定的初始化参数 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 SQL> startup pfile='d:\pfile'; ORACLE 例程已经启动。 Total System Global Area 159383552 bytes Fixed Size 787928 bytes Variable Size 94579240 bytes Database Buffers 62914560 bytes Redo Buffers 1101824 bytes 数据库装载完毕。 数据库已经打开。 SQL> show parameter sga_ NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_max_size big integer 152M sga_target big integer 152M SQL> SQL> show parameter log_buffer NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_buffer integer 1100288 SQL> SQL> alter system set log_buffer=1048576; alter system set log_buffer=1048576 * 第 1 行出现错误: ORA-02095: 无法修改指定的初始化参数 SQL> --当以下情况发生时,系统将log buffer的内容写入日志, Commit时、 每3秒、 log_buffer空间使用使用1/3、 达到1M、 检查点(checkpoint) 所以,设置太大的log_buffer意义不大. 但是具体设置多大, 可以使用statpack的统计数据查看是否有日志写等待或日志同步写问题,或log buffer space问题时. 如果存在则可以考虑加大log_buffer的大小. |
|