Oracle- Sga monitorando a memória livre

Para verificar o tamanho da Sga(System Global Area) disponível é muito simples basta acessar o sql plus e rodar as queries abaixo:


sqlplus> select * from v$sgastat where name = 'free memory';


POOL         NAME                            BYTES
------------ -------------------------- ----------
shared pool  free memory                 243958752
large pool   free memory                 244376096
java pool    free memory                  16777216


Verificando o tamanho em MB.

select pool, name, bytes, round(bytes/(1024*1024)) from v$sgastat where name = 'free memory'


POOL         NAME                            BYTES ROUND(BYTES/(1024*1024))
------------ -------------------------- ---------- ------------------------
shared pool  free memory                   243888232                      233
large pool   free memory                     244376096                      233
java pool    free memory                     16777216                       16

Error oracle- Corrigindo ORA-00845: MEMORY_TARGET not supported on this system

Esse erro acontece ao alteramormos o memory target no linux acima de 1G
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system


Para resolver esse problema basta seguir os passos abaixo:

Acesso o sqlplus e conecte-se ao banco:

sqlplus> conn sys / as sysdba

Execute os comando abaixo:

sqlplus> alter system set memory_target=2000m scope=spfile;
sqlplus>alter system set memory_MAX_target=2500M scope=spfile;
sqlplus>ALTER SYSTEM SET pga_aggregate_target=0 SCOPE=SPFILE;
sqlplus>ALTER SYSTEM SET sga_target=0 SCOPE=SPFILE;

sqlplus>shutdown immediate
sqlplus>startup

Agora altere novamente o tamanho da  pga_aggregate_target e da sga_target novamente para os parametros anteriores:
alter system set sga_max_size=1500M scope=spfile;
ALTER SYSTEM SET pga_aggregate_target=356m scope=spfile;

Faça um shutdown e um startup novamente no banco para que carregue novamente as configurações e resolva o problema.

sqlplus>shutdown immediate
sqlplus>startup



Error oracle- Corrigindo ORA-00384 insufficient memory to grow cache troubleshooting 11g

Esse erro acontece ao tentarmos alterar o tamanho do db_cache_size de um banco oracle e salvar as configurações no spfile.

Ex:


SQL>alter system set db_cache_size=50M scope=spfile
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-00384: Insufficient memory to grow cache

Vamos Verificar agora qual o tamanho do nosso parametro db_cache_size:

 SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 172M

Esse pametro provavelmente foi criado no seu arquivo init.ora no qual foi criado o seu spfile.

Resolvendo:

Altere o seu arquivo ini.ora adicionando o tamanho do db_cache_size desejado no nosso exemplo 512M termo em negrito abaixo.


#Arquivo init.ora

db_name='teste'
memory_target=2200M
memory_max_target=2500M
sga_max_size=1500M
shared_pool_size=512M
large_pool_size=256M
pga_aggregate_target=356M
processes = 150
audit_file_dest='/u01/app/oracle/admin/prodnew/adump'
audit_trail ='db'
db_block_size=8192
db_cache_size=512M
db_domain=''
db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=prodnew)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

Salve o arquivo.

Acesse o sqlplus de um shutdown no banco e depois um start usando o arquivo pfile alterado:

 SQL>conn sys / as sysdba

Fazendo o shutdown no banco:

 SQL> shutdown immediate;

Iniciando o banco através do nosso arquivo ini.ora


SQL>startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/init.ora'

Verificando agora o dbcahe:


 SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 512M


Finalizando agora iremos criar novamente o arquivo spfile para que essa configuração continue nas próximas inicializações:

 SQL>create spfile from pfile;


Esse pode ser utilizado em outros parâmetros de inicialização do oracle.