Social Icons


Aprenda Oracle investindo pouco, por assinatura, no "Portal ABC do Oracle"

18 de set de 2012

Renomeando datafiles em Oracle Database


Olá pessoal,

     No artigo de hoje vou demonstrar de um modo simples que é possível renomear datafiles sem ter que reiniciar o Banco de Dados, se o Bancos de Dados estiver em modo ARCHIVELOG. Para saber mais sobre archive logs, leia o artigo Configurando Bancos de Dados para gerar Archive Logs.

     A idéia de escrever este artigo veio após a pergunta de um ex-aluno, há aproximadamente 1 mês atrás, sobre como renomear datafiles no Banco de Dados, caso eles tivessem sido criados, por exemplo, em uma pasta errada, ou se você fez uma migração/clonagem e deseja mudar o padrão de estrutura de pastas. 

      Na aula em que o aluno fez essa pergunta a gente fez um exemplo em sala de aula e eu montei o rascunho de um script. Recentemente criei um Data warehouse e passei pela mesma situação que o aluno (criei os datafiles em pastas erradas), então peguei o script que eu havia gerado em aula, fiz algumas alterações e irei compartilhar o roteiro e os comandos através do passo-a-passo abaixo:

------------------------------------------------------------------------------------------------------
É necessário conectar-se no BD com uma conta de usuário que tenha privilégios administrativos 
(Ex. role DBA) para executar o passo-a-passo abaixo
------------------------------------------------------------------------------------------------------

Passo 1: Alterando o tablespace para OFFLINE
     Para alterar o(s) datafile(s) de um tablespace sem tirar o BD do ar, o primeiro passo necessário é mudar o tablespace para OFFLINE. Considerando um tablespace com nome teste, segue abaixo um código de exemplo:
           SQL> ALTER TABLESPACE TESTE OFFLINE IMMEDIATE;

Passo 2: Alterando o nome dos datafiles no sistema de arquivos
     Mova os arquivos no sistema de arquivos para o local correto. Segue abaixo um exemplo de comando para mover os arquivos em uma janela de terminal do SO Linux:
              mv /pasta1/teste.dbf /pasta2/teste.dbf

Passo 3: Alterando o nome dos datafiles no tablespace
     Renomeie os datafiles do tablespace users indicando o novo caminho deles:
           SQL> ALTER TABLESPACE TESTE RENAME DATAFILE '/pasta1/users.dbf' to '/pasta2/users.dbf';


Passo 4: Recuperando o tablespace
     Recupere (atualização de redo logs e SCN) o tablespace utilizando o RMAN (ver Imagem 01):
           RMAN> RECOVER TABLESPACE TESTE;


Imagem 01 - Recuperando um tablespace antes de alterar seu estado para ONLINE

Passo 5: Alterando o tablespace para ONLINE
     Mude o tablespace novamente para o estado original (ONLINE):
           SQL> ALTER TABLESPACE TESTE ONLINE;

   
     Pronto! Se todos os passos foram executados com os valores corretos, você terminou de renomear os datafiles sem ter que parar o BD! Em BDs de produção isso é extremamente útil, pois dificilmente podemos tirá-los do ar!

Por hoje é só!

[]s

4 comentários:

 

LINKS ÚTEIS

Suporte remoto alunos

Seguidores

Meu One Drive (antigo Sky Drive)