Para alterarmos o nome de uma instância no banco de dados Oracle, devemos:
1) Fazer um backup do banco de dados
É recomendado a execução de um backup FULL do banco de dados antes da atividade.
2) Criar um arquivo pfile
Devemos, antes de fazer qualquer alteração, criar um arquivo pfile através do arquivo spfile existente no banco de dados.
SQL> create pfile='/home/oracle/pfileX.ora' from spfile;
3) Alterar o arquivo pfile
Antes de alterar o arquivo pfile que criamos no passo 2, devemos fazer uma cópia desse arquivo e deixar salvo em um diretório seguro, pois o mesmo pode ser necessário para subir o banco de dados em caso de erro durante o procedimento.
$> cp /home/oracle/pfileX.ora /home/oracle/pfileX-copia-seguranca.ora
Após termos uma cópia segura do pfile, editaremos o arquivo e alteraremos todos os parâmetros de configuração que contiverem o nome da instância antiga, trocando para o nome da instância nova.
4) Identificar a localização do SPFILE
É importante termos a localização do arquivo atual do SPFILE no banco de dados, pois posteriormente, teremos que recriar o arquivo SPFILE.
show parameter spfile
NAME TYPE VALUE
----------- ----------- --------------------------------------
spfile string +DG_001/<BANCO>/PARAMETERFILE/spfile.ora
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DG_001/<BANCO>/PARAMETERFILE/spfile.ora
5) Parar o banco de dados
Após a criação do arquivo pfile e identificarmos a localização do arquivo spfile, devemos parar o banco de dados.
SQL> shutdown immediate;
6) Alterar a variável de ambiente ORACLE_SID
Neste momento, já com o banco de dados parado e uma cópia do SPFILE, gerado no arquivo PFILE, devemos configurar a variável de ambiente ORACLE_SID para o valor com o novo nome da instância que desejamos criar.
$> export ORACLE_SID=NOVA_INST
7) Alterar o nome dos arquivos pfile e do spfile
Neste momento, devemos alterar o nome do arquivo pfile e do spfile para o novo nome de instância que desejamos, mas algumas ações devem ser tomadas, como:
- Fazer uma cópia do pfile e do spfile originais;
$ mv $ORACLE_HOME/dbs/pfileINST.ora $ORACLE_HOME/dbs/pfileINST_ORIGINAL.ora
$ mv $ORACLE_HOME/dbs/spfileINST.ora $ORACLE_HOME/dbs/spfileINST_ORIGINAL.ora
* Estamos entendendo que o arquivo spfile está armazenado no diretório $ORACLE_HOME/dbs/
Aqui, estamos alterando o nome do arquivo pfile que foi alterado no passo 3.
$ cp /home/oracle/pfileX.ora $ORACLE_HOME/dbs/pfileNOVA_INST.ora
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
8) Criar um novo arquivo de senhas
Agora, vamos criar um novo arquivo de senhas para ser utilizada com a nova instância que estamos criando.
$ orapwd file=$ORACLE_HOME/dbs/orapwNOVA_INST password=PASSWORD entries=5
Observação: Este passo é opcional.
9) Iniciar a instância do banco de dados
O banco de dados deverá ser iniciado utilizando o arquivo pfile onde foi feita a alteração do nome da instância, já copiado para $ORACLE_HOME/dbs/.
$ sqlplus / as sysdba
SQL> startup pfile='$ORACLE_HOME/dbs/pfileNOVA_INST.ora'
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
10) Verificar se o nome da instância foi alterada
SQL> show parameter instance_name;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string NOVA_INST
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
11) Forçar o checkpoint e o switch dos redo`s:
SQL> alter system checkpoint;
SQL> alter system switch logfile;
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
12) Criar o spfile a partir do pfile
Agora que já verificamos a alteração do nome da instância, devemos recriar o spfile utilizando o arquivo pfile.
As informações para criação do spfile foram obtidas nos passos 2,3,4 e 7.
SQL> create spfile='+DG_001/<BANCO>/PARAMETERFILE/spfile.ora' from pfile='$ORACLE_HOME/dbs/pfileNOVA_INST.ora';
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
13) Reiniciar o banco de dados.
Após a alteração do spfile, devemos parar o banco de dados e reiniciá-lo.
SQL> shutdown immediate
SQL> startup
Observação: Se for um ambiente RAC, este procedimento deverá ser feito em todas as instâncias do banco de dados.
Referência:
https://veduardodba.wordpress.com/2012/01/24/alterando-o-nome-da-instancia-e-do-banco-de-dados-oracle/