Differences

This shows you the differences between two versions of the page.

Link to this comparison view

configurando_o_oracle_10g_para_utilizar_mais_do_que_8gb_de_ram_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Configurando o Oracle 10G para utilizar mais do que 8 GB de ram ======
 +
 +
 +E ai galera, aqui eu vou mostrar como habilitar o Oracle 10 G a utilizar mais do que 8GB de ram.
 +
 +O problema aqui começa quando tentamos modificar a sga o sistema aceita a modificação porém quando vamos subir o banco temos uma mensagem que não temos memória suficiente.
 +
 +Mais na verdade o que acontece é que não temos memória compartilhada suficiente o default do sistema CentOS ou SuSE é 8GB podemos conferir isso da seguinte forma
 +<sxh bash>
 +ipcs -ml
 +- Limites da memória compartilhada -
 +max number of segments = 4096
 +max seg size (kbytes) = 32768
 +max total shared memory (kbytes) = 8388608
 +min seg size (bytes) = 1
 +</​sxh>​
 +
 +Note que o max total shared memory é 8388608 que da um total de 8GB.
 +
 +Agora vamos ver a variável do kernel que controla isso
 +<sxh bash>
 +cat /​proc/​sys/​kernel/​shmall
 +2097152
 +</​sxh>​
 +
 +Agora vamos pegar o tamanho do arquivo de paginação
 +<sxh bash>
 +getconf PAGE_SIZE
 +4096
 +</​sxh>​
 +
 +Agora podemos calcular a quantidade de memória que podemos disponibilizar que é 2097152 * 4096 = 8589934592 podemos dividir isso e vamos ter 8589934592/​1024/​1024/​1024 = 8GB
 +
 +Agora podemos modificar a nossa variável shmall para 4194304 * 4096 = 17179869184 podemos dividir isso e vamos ter 17179869184/​1024/​1024/​1024 = 16GB assim vamos poder utilizar até 16GB de ram para o Oracle sempre utilize uns 80% da memória total no máximo para o Oracle.
 +
 +Vamos fazer esta alteração da variável de controle do kernel
 +<sxh bash>
 +echo 4194304 > /​proc/​sys/​kernel/​shmall
 +</​sxh>​
 +
 +Agora podemos deixar esta variável na inicialização do sistema da seguinte forma
 +<sxh bash>
 +echo "​kernel.shmall=4194304"​ >> /​etc/​sysctl.conf
 +</​sxh>​
 +
 +Agora vamos alterar a SGA via sqlplus
 +
 +Vamos logar no sqlplus
 +<sxh sql>
 + ​sqlplus /nolog
 +SQL*Plus: Release 10.2.0.3.0 - Production on Fri May 24 08:19:35 2013
 +Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
 +SQL> connect / as sysdba
 +Connected to an idle instance.
 +</​sxh>​
 +
 +Agora vamos alterar o sga_max_size que controla até onde a nossa SGA pode chegar
 +<sxh sql>
 +SQL> alter system set sga_max_size=14G scope=spfile;​
 +System altered.
 +</​sxh>​
 +
 +Agora vamos alterar o valor inicial que a sga_target que controla o valor inicial da nossa SGA
 +<sxh sql>
 +SQL> alter system set sga_target=14G scope=spfile;​
 +System altered.
 +</​sxh>​
 +
 +Agora vamos baixar o banco, pode demorar o banco para baixar mas não desligue ele de forma inadequada pode dar a maior merda
 +<sxh sql>
 +SQL> shutdown immediate
 +Database closed.
 +Database dismounted.
 +ORACLE instance shut down.
 +</​sxh>​
 +
 +Agora vamos subir o banco de dados novamente
 +<sxh sql>
 +SQL> startup
 +ORACLE instance started.
 +Total System Global Area 4294967296 bytes
 +Fixed Size 2078264 bytes
 +Variable Size 1610615240 bytes
 +Database Buffers 2667577344 bytes
 +Redo Buffers 14696448 bytes
 +Database mounted.
 +Database opened.
 +</​sxh>​
 +
 +Agora o nosso banco esta com 14GB de ram :D
 +
 +====== Referências ======
 +  - https://​wiki.palantir.com/​pgkb/​how-do-i-configure-oracle-to-use-more-than-8gb-of-memory.html