Gerenciando automaticamente a memória do Oracle 11g
Olá, galera!
Neste post irei ajudar a configurar o Oracle 11g, para que ele faça a
distribuição automática da memória, configurando apenas um parâmetro
de memória, o MEMORY_TARGET. Até o Oracle 10g, era necessário
configurar dois parâmetros os SGA_TARGET e PGA_AGGREGATE_TARGET.
Onde habilitar o gerenciamento automático?
No Oracle 11g, foi introduzido um novo parâmetro MEMORY_MAX_TARGET. Ele é o limite máximo para a memória da instância.
Os Parâmetros a seguir são do banco de dados não configurado com o 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 27M
sga_target big integer 165M
1. Vamos atribuir o valor do parâmetro MEMORY_MAX_TARGET, colocando assim o limite máximo de memória para a isntância.
SQL> alter system set memory_max_target = 200m scope = SPFILE;
System altered.
Vale lembrar que o memory_target = sga_target + pga_aggregate_target.
2. Shutdown e startup do banco de dados.
SQL> shutdown immediate
SQL> startup
3. Especificando o valor do MEMORY_TARGET para diferente de 0, e colocando os outros parâmetros para zero.
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 targer
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
Monitorando do gerenciamento automático da memória
SQL> select * from v$memory_target_advice order by memory_size;
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
———– —————— ———— ——————- ———-
180 .5 458 1.344 0
270 .75 367 1.0761 0
360 1 341 1 0
450 1.25 335 .9817 0
540 1.5 335 .9817 0
630 1.75 335 .9817 0
720 2 335 .9817 0
REFERÊNCIA: http://docs.oracle.com/cd/B28359_01/server.111/b28310/memory003.htm#BGBIAGCI
Créditos: Carlos Gomes
Vida Longa e Próspera! Eu sou o Rafael, um empreendedor em TI com uma vontade louca de transformar profissionais de TI em vencedores! Tenho todas as principais certificações técnicas que preciso e também sou premiado pela Microsoft como MVP (Most Valuable Professional) por 7 anos! Depois dá uma olhadinha na minha página do Facebook, fb.com/bernardes.rafael, lá eu realizo Lives todos os dias!
E quando o banco não volta e da a msg: specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET ????
Como faço pra retornar, se o banco não da startup?
Boa noite. O autor do artigo não costuma verificar os comentários, mas estou deixando o contato dele no Linkedin para você tirar a sua dúvida diretamente com ele.
https://www.linkedin.com/in/rafabernardes/