Na versão anterior (Oracle 10g) havia dois parâmetros para gerenciamento de memória automático:
1. SGA_TARGET = NNN G
2. PGA_AGGREGATE_TARGET = NNN G
Assim o SGBD Oracle automaticamente aloca espaço para Buffer cache, Shared pool, Large Pool, etc.
Na versão Oracle 11g foi introduzido um novo parâmetro chamado "MEMORY_TARGET", para configuração de alocação da SGA e PGA.
Para a configuração de memória, se especificar o parâmetro MEMORY_TARGET para a instância, não é necessário especificar SGA_TARGET ou PGA_AGGREGATE_TARGET. O banco de dados Oracle irá automaticamente alocar memória para os parâmetros de memória.
Como habilitar o gerenciamento automático de memória?
O novo parâmetro MEMORY_MAX_TARGET na versão 11g (como o prévio SGA_MAX_SIZE) é o limite máximo para a memória da instância de banco Oracle.
Os parâmetros abaixo são de banco de dados ainda não configurado com o parâmetro MEMORY_TARGET
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 0
memory_target big integer 0
pga_aggregate_target big integer 25M
sga_target big integer 172M
1. Primeiro atribuir valor para o parâmetro MEMORY_MAX_TARGET - ajustando assim o limite máximo de memória para a instância.
SQL> alter system set memory_max_target=200M scope=SPFILE;
System altered.
OBSERVAR: memory_target=(sga_target+pga_aggregate_target)
2. Shutdown e startup do banco de dados
SQL> shutdown immediate
SQL> startup
NOTE: ORA-00843: Parameter not taking MEMORY_MAX_TARGET into account, see alert log for more information
O erro acima ocorre quando o valor para o parâmetro MEMORY_MAX_TARGET é menor do que o valor para o parâmetro SGA_MAX_SIZE. Então, ou deve ser removido o valor para o parâmetro SGA_MAX_SIZE ou deve ser aumentado o valor para o parâmetro MEMORY_MAX_TARGET.
SQL> create pfile='c:\temp\init.ora' from spfile;
File created.
SQL> --after editing recreate new spfile.SQL> create spfile from pfile='c:\temp\init.ora';
File created.
SQL> startup
3. SET MEMORY_TARGET para valor não-zero e SET "0" para o parâmetro SGA ou PGA_AGGREGATE_TARGET.
SQL> alter system set memory_target=200m;
System altered.
SQL> alter system set sga_target=0;
System altered.
SQL> alter system set pga_aggregate_target=0;
System altered.
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 200M
memory_target big integer 200M
pga_aggregate_target big integer 0
sga_target big integer 0
Monitoramento do gerenciamento automático de memória
Nova view V$ : V$MEMORY_DYNAMIC_COMPONENTS mostra o valor atual do tamanho da SGA e da PGA.
e a nova view V$ : v$MEMORY_TARGET_ADVICE exibe sugestão para o valor do parâmetro MEMORY_TARGET
REFERÊNCIA: http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/memory003.htm#BGBJAHEJ
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário