quinta-feira, 12 de abril de 2012

Erros [ ORA-1653 e ORA-1652 ] - Adicionar Datafile e Tempfile.


Senhores(as), boa tarde,

Hoje vamos falar um pouco sobre os erros ORA-1652 e ORA-1653, Banco de dados Oracle.
Estas mensagens de erros, indicam que não foi possível estender o segmento da tablespace, ou seja, a mesma atingiu a sua capacidade máxima de armazenamento de dados.
Para resolver este problema, basta adicionar um TempFile se for uma Tablespace Temporária ou um DataFile se for uma Tablespace de Dados.




> Mas, antes de iniciarmos as verificações, cerifique que a mensagem de erro identificada é conforme a mesma abaixo.

(datafile)
ORA-1653: unable to extend table OWNER.DADOS by 8192 in tablespace                           DADOS

> ou

(temfile)
ORA-1652: unable to extend temp segment by 128 in tablespace                 TEMP



> Verifique o espaço físico disponível no seu servidor para realizar a adição do DataFile ou TempFile, feito isso, podemos prosseguir com a adição.

> Para adicionar o datafile ou tempfile, segue o procedimento abaixo:

> datafile:

SQL> select file_name, tablespace_name, maxbytes from dba_data_files where tablespace_name = 'DADOS;

FILE_NAME                                TABLESPACE_NAME                            MAXBYTES
---------------------------------------- ---------------------------------------- ----------
/u01/oradata/bdteste/DADOS01.dbf         DADOS                                    8589934592

SQL>



> Após coletar estas informações, monte o comando para realizar a adição do segundo datafile, pois, estamos cientes que o datafile DADOS01.dbf já existe:

alter tablespace DADOS add datafile '/u01/oradata/bdteste/DADOS02.dbf' size 256m autoextend on next 256m maxsize 8192m;


> Apenas para entendimento do que foi feito no comando acima, segue detalhes abaixo:
> Executando o comando acima, adicionaremos um datafile a tablespace DADOS, com o nome DADOS02.dbf, tamanho inicial de 256mb, auto-extensível de 256mb em 256mb até atingir 8GB.


> Para adicionar o tempfile, os comandos são praticamente idênticos, segue procedimento abaixo:
> tempfile:

> Como podemos notar, no meu banco de dados, existe dois tempfiles, neste caso, adicionaremos o terceiro tempfile:
> Continuando:

SQL> select file_name, tablespace_name, maxbytes from dba_temp_files where tablespace_name = 'TEMP';

FILE_NAME                                TABLESPACE_NAME                            MAXBYTES
---------------------------------------- ---------------------------------------- ----------
/u01/oradata/bdtest/temp01.dbf           TEMP                                     4294967296
/u01/oradata/bdtest/temp02.dbf           TEMP                                     4294967296


> Portanto, o comando para adição do terceiro TempFile, ficaria da seguinte forma:

alter tablespace TEMP add temopfile '/u01/oradata/bdtest/temp03.dbf' size 128m autoextend on next 128m maxsize 4096m;

> Ou seja, executando o comando, adicionaremos um tempfile a tablespace temporária TEMP, com o nome (TEMP03.dbf), tamanho inicial de 128mb, auto-extensível de 128mb em 128mb até atingir 4GB.



Qualquer dúvida, deixe seu comentário.
Abraços.

2 comentários: