GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Mudando o nome do Banco de Dados no Oracle

Fala Pessoal

Em alguma hora da sua vida de DBA alguém vai levantar a hipótese, ou solicitar ou exigir a mudança do nome do banco de dados, ou em outras palavras a sua ORACLE_SID vai mudar, rs. E aconteceu comigo, precisei mudar o nome de dois bancos no ambiente de homologação, e pra fazer isso usei o DBNEWID ,vou explicar como fiz esse procedimento, que na maioria dos outros SGBDs seria muito mais simples.

OBS_1:Antes de começar certifique-se de que você tem um backup do banco de dados inteiro, afinal como diria Hermes e Renato, “Merdas acontecem”.

Efetue o shutdown do banco e depois apenas monte o banco, não abra.

SQL> SHUDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

Agora va para o prompt(windows) ou console(linux) e execute o DBNEWID (nid) especificando o novo DBNAME(Nome do banco de dados) na linha de comando utilizando um usuário com privilégios SYSDBA, conforme o exemplo abaixo:

OBS2: Estou considerando que se você esta em um ambiente linux, todas as variavéis de ambiente estão corretamente setadas ou exportadas.

$ nid TARGET=SYS/XXXX@HTAJ DBNAME=RAMOS SETNAME=YES

O utilitário DBNEWID executa validações nos cabeçalhos dos arquivos de dados e arquivos de controle. Se a validação for bem sucedida, então DBNEWID solicita para você confirmar a operação.

DBNEWID: Release 11.1.0.6.0 - Production on Qui mar 1 17:57:02 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to database HTAJ (DBID=2627274358)

Connected to server version 10.2.0

Control Files in Database:

D:\U01\APP\HSANTOS\ORADATA\HTAJ\CONTROL01.CTL,

D:\U01\APP\HSANTOS\ORADATA\HTAJ\CONTROL02.CTL, D:\U01\APP\HSANTOS\ORADATA\HTAJ\CONTROL03.CTL

Change database ID and database name HTAJ to RAMOS? (S/[N]) => Y

Proceeding with operation
Changing database ID from 2627274358 to 7627274658
Changing database name from HTAJ to RAMOS Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL01.CTL - modified Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL02.CTL - modified Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL03.CTL - modified Datafile D:\U01\APP\HSANTOS\ORADATA\HTAJ\SYSTEM01.DBF - dbid changed, wrote new name Datafile D:\U01\APP\HSANTOS\ORADATA\HTAJ\UNDOTBS01.DBF - dbid changed, wrote new name Datafile D:\U01\APP\HSANTOS\ORADATA\HTAJ\SYSAUX01.DBF - dbid changed, wrote new name Datafile D:\U01\APP\HSANTOS\ORADATA\HTAJ\USERS01.DBF - dbid changed, wrote new name Datafile D:\U01\APP\HSANTOS\ORADATA\HTAJ\TEMP01.DBF - dbid changed, wrote new name Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL01.CTL - dbid changed, wrote new name Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL02.CTL - dbid changed, wrote new name Control File D:\U01\APP\HSANTOS\ORADATA\RAMOS\CONTROL03.CTL - dbid changed, wrote new name

Instance shut down
Database name changed to RAMOS.
Modify parameter file and generate a new password file before restarting.
Database ID for database RAMOS changed to 7627274658
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Successfully changed database name and ID.
DBNEWID - Completed successfully.

Caso o DBNEWID não tenha efetuado o shutdown do banco, logue com o sql plus e pare o banco.

SQL> SHUDOWN IMMEDIATE;

Altere o parâmetro de inicialização DB_NAME no arquivo de parâmetro de inicialização (PFILE) para o nome novo banco de dados.

SQL> STARTUP MOUNT;

SQL > ALTER SYSTEM SET DB_NAME=RAMOS SCOPE=spfile;

SQL> SHUDOWN IMMEDIATE;

Agora vamos subir o banco de dados, não precisamos usar a RESETLOGS.

SQL> STARTUP OPEN;

SQL> SHOW PARAMETER DB_NAME

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string RAMOS

Agora como o seguro morreu de velho, backup do banco de novo.

Bem assim eu mudei o nome dos bancos de homologação, aqui na empresa já tem 2 meses e até agora tudo tranqüilo e calmo.Eu segui os procedimentos do link abaixo, quem quiser maiores informações é só clicar, Abraços!!!!.

OBS3: Não se esqueça que as entradas no tnsnames vão ter que ser alteradas, o listener o DBNEWID altera automaticamente

Fonte

http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14215/dbnewid.htm

http://www.oracle-base.com/articles/9i/DBNEWID.php

Share

You may also like...

4 Responses

  1. Rodrigo disse:

    Olá Hudson, realmente esse utilitário é muito interessante, acho que a grande “graça” dele é realmente alterar o DBID que é muito importante em ambientes RMAN. testei e funcionou legal, ótimo artigo.
    Abraço

  2. Hudson Santos disse:

    Fala Rodrigo,

    Sim por ele executar várias tarefas automaticamente incluindo a alteração do DBID ele é muito interessante, caso tivessemos de alterar tudo sozinho na mão, a chance de erros ia ser muito maior.
    Abraço!

  3. Diego Lenhardt disse:

    É possível alterar apenas o nome também, sem alterar o DBID, é mais simples um pouco, bacana cara, valeu

  4. Hudson Santos disse:

    Eu não conheço esse método, mas legal também
    Abraços!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *