oracle_dest

Olá a todos. Segue um pequeno artigo mostrando como alterar o DBNAME de uma base de dados usando a ferramenta da Oracle chamada DBNEWID.

Essa ferramenta permite alterar tanto o Database Identifier (DBID) quando o Database Name (DBNAME).

Alterar o DBID de uma base faz com que todos os backups desta sejam invalidados. Também será necessário abrir a base com a opção RESETLOGS. Mudar apenas o DBNAME não invalida os backups anteriores, pois o RMAN registra em seu catalogo o DBID da base de dados.

 

1) CONSIDERAÇÕES INICIAIS

Antes de invocar a ferramenta “nid”, a base de dados deve ser desligada de forma normal (SHUTDOWN IMMEDIATE)

O parâmetro do NID chamado SETNAME muda apenas o nome da base (DBNAME), deixando o DBID o mesmo. Caso o SETNAME seja omitido, serão alterados tanto o DBNAME quando o DBID da base.

Deve-se criar um PFILE a partir do SPFILE antes de chamar a ferramenta NID, pois será necessário alterar o parâmetro DBNAME no PFILE para subir a base com o novo DBNAME.

 

2) PASSOS – MUDANDO APENAS O NOME (DBNAME)

2.1) Criar um PFILE a partir do SPFILE atual da base

SQL> CREATE PFILE=’/tmp/pfile_base.ora’ FROM SPFILE;

2.2) Desligar de forma limpa a base de dados

SQL> SHUTDOWN IMMEDIATE;

2.3) Subir a base em modo MOUNT

SQL> STARTUP MOUNT;

2.4) Chamar a ferramenta NID, com um usuário que possua a role SYSDBA. Em DBNAME, deve-se colocar o novo nome da base de dados:

nid target=sys/senha@tnsbase dbname=novo_nome setname=yes

2.5) Após terminar a execução da ferramenta NID, alterar o ORACLE_SID para o novo nome

export ORACLE_SID=novo_nome

2.6) Iniciar a base de dados com o PFILE modificado no passo 1

startup pfile=’/tmp/pfile_base.ora’;

2.7) Criar um SPFILE novo a partir do PFILE usado para subir a base, depois baixar a base de dados:

SQL> CREATE SPFILE ‘+DATA/DBNAME/spfile<nome_novo>.ora’ FROM PFILE=’/tmp/pfile_base.ora’;
SQL> ALTER SYSTEM SET SPFILE=”+DATA/DBNAME/spfile<novo_nome>.ora’;
SQL> SHUTDOWN IMMEDIATE;

2.8) Criar um novo PFILE, chamado “init<novo_nome>.ora”, para apontar para o SPFILE criado anteriormente:

cd $ORACLE_HOME/dbs
vi init<novo_nome>.ora

SPFILE=’+DATA/DBNAME/spfile<nome_novo>.ora’

2.9) Subir a base normalmente

2.10) Caso seja um ambiente com o Clusterware instalado, remover o resource antigo e adicionar a nova base de dados

### como usuário “grid”
crsctl delete resource nome_resource -f

### como usuário “oracle”
srvctl add database -d dbnovo -n dbnovo -o ORACLE_HOME -p PATH_SPFILE
srvctl start database -d dbnovo

 

É isso ai caros amigos. Até a próxima.