Pular para o conteúdo

Mudando o nome do Banco de Dados no Oracle

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

Hudson Santos

Hudson Santos

Hudson é DBA Oracle com grande experiência em segmentos de Telecomunicações,WEB e Baking. É Especialista em performance e em alta disponibilidade com RAC. É certifcado Oracle OCA 11G e atuou em empresas lideres dos segmentos acima tais como: Orga Systems(Germany),Mih Naspers atuando no Buscape.com,Cetip S.A,Claro Brasil. Hudson também possui experiência com outros RDBMS e tecnologias de cache e motor de busca tais como: MySQL,SQL Server,Memcached,Sphinxs.

 

Comentário(s) da Comunidade

  1. 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. 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!

Deixe um comentário

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

plugins premium WordPress