Você está na página 1de 7

Alterando o nome da Instancia e do Banco de

Dados Oracle
01/24/2012veduardodbaDeixe um comentrioGo to comments

Vamos primeiro alterar o nome da instancia para depois alterar o nome do banco:

1 Fazer um backup da base inteira

2 Criar o pfile do spfile e abaixar a instncia:


SQL> create pfile from spfile;
SQL> shutdown immediate;

3 Alterar as variveis ORACLE_SID:


Windows:
set ORACLE_SID=NEWORCL

Linux:
export ORACLE_SID=NEWORCL

4 Altere o nome do pfile e do spfile:


$ mv $ORACLE_HOME/dbs/pfileORCL.ora
$ORACLE_HOME/dbs/pfileNEWORCL.ora
$ mv $ORACLE_HOME/dbs/spfileORCL.ora
$ORACLE_HOME/dbs/spfileNEWORCL.ora

6 Crie um novo arquivo de senhas:


$ orapwd file=$ORACLE_HOME/dbs/orapwNEWORCL password=PASSWORD
entries=5

7 Inicie a instncia e verifique se o nome da instncia mudou:

SQL> show parameter instance_name;

NAME TYPE VALUE



instance_name string NEWORCL

8 Forar o checkpoint e o switch dos redo`s:


SQL> alter system checkpoint;
SQL> alter system switch logfile;

Criar o spfile a partir do pfile:


SQL> create spfile from pfile;

Agora vamos alterar o nome do banco de dados:


1 Forar o checkpoint e o switch dos redo`s conforme a quantidade dos redo`s, se tiver 4
redo`s, fazer 4 switch:
SQL> alter system checkpoint;
SQL> alter system switch logfile;

2 Gerar 1 trace do control file para ser editado para abrir com resetlogs, segue:
SQL> alter database backup controlfile to trace as /u01/backupcontrolfiletotrace.sql
resetlogs;

3 Abaixar a instncia:
SQL> shutdown immediate

4 Edite o pfile salvo e altere as opes:


db_name=NEWORCL
db_unique_name=NEWORCL

Se existir o spfile renomear ou deletar.

6 Edite o trace gerado do controlfile (/u01/backupcontrolfiletotrace.sql) e altere as


seguintes parametros:
DE:
CREATE CONTROLFILE REUSE DATABASE ORCL RESETLOGS
PARA:
CREATE CONTROLFILE SET DATABASE NEWORCL RESETLOGS

OBS: possvel recriar o controlfile utilizando a sintaxe de reuse, porm no


renomear/mover/deletar os controlfiles existentes eles vo ser substituidos, sem precisar
deletar o controlfile antigo, segue sintax:
CREATE CONTROLFILE REUSE SET DATABASE NEWDBNAME RESETLOGS

Comentar a linha de recover, segue:


DE:
RECOVER DATABASE USING BACKUP CONTROLFILE
PARA:
RECOVER DATABASE USING BACKUP CONTROLFILE

OBSERVAO: Lembrar de retirar todas as linhas em branco do arquivo do trace do


controlfile(/u01/backupcontrolfiletotrace.sql) que encontrar.

7 Alterar/mover o nome dos controlfiles atuais para evitar problemas no momento de


gerar os novos controlfiles.

mv control01.ctl control01.ctl_bkp
mv control02.ctl control02.ctl_bkp
mv control03.ctl control03.ctl_bkp

8 Conecte no banco e executa o arquivo de trace, este arquivo criar novamente os


controlfiles alterando o nome do banco de dados para o novo nome.
SQL> @backupcontrolfiletotrace.sql
ORACLE instance started.

Total System Global Area 369098752 bytes


Fixed Size 1219496 bytes
Variable Size 109053016 bytes
Database Buffers 251658240 bytes
Redo Buffers 7168000 bytes

Control file created.


PL/SQL procedure successfully completed.
Database altered.
Tablespace altered.

SQL>

Criar o spfile do pfile:


$ sqlplus / as sysdba
SQL> create spfile from pfile;

Verificar os nomes para checkar se tudo foi mudado realmente:


SQL> show parameter name;

SQL> show parameter name;

NAME TYPE VALUE



db_file_name_convert string
db_name string NEWORCL
db_unique_name string NEWORCL
global_names boolean FALSE
instance_name string NEWORCL
lock_name_space string
log_file_name_convert string
service_names string NEWORCL

Aps todo o processo, Abaixar a instancia e subir novamente e realizar um backup o


quanto antes possivel.
Pronto nome do banco e da instancia alterados
Abrao
Outra forma de alterao do nome do banco de dados:

Como alterar o nome do seu


banco de dados Oracle?
Boa Tarde amigos!

Hoje vamos mostrar como alterar o nome do seu banco de dados de forma simples e
rapida!

1 Conecte no banco que voce deseja alterar o nome.

[oracle@localhost ~]$ sqlplus / as sysdba


Cheque o nome de seu banco:

SQL> select name from v$database;

NAME

TEST

Quero alterar o nome do banco de TEST para HOMOLOG.

Baixe seu banco de dados de forma consistente:

SQL> shutdown immediate;


Banco de dados fechado.
Banco de dados desmontado.
Instancia ORACLE desativada.

Subir o banco em modo mount restrict para que s voce tenha acesso:
SQL> startup mount quiet restrict;
Instancia ORACLE iniciada.
Banco de dados montado.

Use o comando host para retornar ao sistema operacional:

SQL> host
Esse o comando que ir trocar o nome do banco.
nid target=system/(senha do usuario system) DBNAME=(nome do novo banco de
dados) setname=Y
[oracle@localhost ~]$ nid TARGET=system/oracle DBNAME=HOMOLOG
SETNAME=Y

DBNEWID: Release 11.2.0.2.0 Production on Thu Mar 8 02:46:44 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to database TEST (DBID=2072412366)

Connected to server version 11.2.0

Control Files in database:


/u01/app/oracle/oradata/test/control01.ctl
/u01/app/oracle/fast_recovery_area/test/control02.ctl

Change database name of database TEST to HOMOLOG? (Y/[N]) => Y

Proceeding with operation


Changing database name from TEST to HOMOLOG
Control File /u01/app/oracle/oradata/test/control01.ctl modified
Control File /u01/app/oracle/fast_recovery_area/test/control02.ctl modified
Datafile /u01/app/oracle/oradata/test/system01.db wrote new name
Datafile /u01/app/oracle/oradata/test/sysaux01.db wrote new name
Datafile /u01/app/oracle/oradata/test/undotbs01.db wrote new name
Datafile /u01/app/oracle/oradata/test/users01.db wrote new name
Datafile /u01/app/oracle/oradata/test/example01.db wrote new name
Datafile /u01/app/oracle/oradata/test/temp01.db wrote new name
Control File /u01/app/oracle/oradata/test/control01.ctl wrote new name
Control File /u01/app/oracle/fast_recovery_area/test/control02.ctl wrote new name
Instance shut down

Database name changed to HOMOLOG.


Modify parameter file and generate a new password file before restarting.
Succesfully changed database name.
DBNEWID Completed succesfully.

Edite seu arquivo init e altere o parametro db_name do arquivo:

[oracle@localhost dbs]$ cd $ORACLE_HOME/dbs


vi init(nomedainstance).ora
*.db_name=test alterar para o nome do banco novo (neste caso para homolog).
*.db_name=homolog

Renomeie o nome do init para o nome do banco atual:

[oracle@localhost dbs]$ mv inittest.ora inithomolog.ora

Exportar o SID do novo banco de dados:

[oracle@localhost dbs]$ export ORACLE_SID=homolog

Suba o banco novamente e verifique o nome do banco de dados:

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Thu Mar 8 02:50:23 2012

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

Connected to an idle instance.

SQL> startup;
Total System Global Area 150667264 bytes
Fixed Size 1342736 bytes
Variable Size 92275440 bytes
Database Buffers 50331648 bytes
Redo Buffers 6717440 bytes
Database mounted.
Database opened.

SQL> select name from v$database;


NAME

HOMOLOG

Pronto! Seu banco est no ar e com novo nome.

Qualquer dvida deixe seu comentrio.

Obrigado!