quarta-feira, 8 de dezembro de 2010

Alterando o nome de um Banco de Dados

DBNEWID - Alterando o nome de um banco de dados Oracle

Olá,

Neste artigo irei mostrar como alterar de forma simples e prática o nome de um banco de dados sem a necessidade de ter que recriar o arquivos de controle (control files). O utilitário nid (DBNEWID) disponível à partir do Oracle 9i fará este trabalho para nós. Imagine que temos um banco de dados chamado BD01 e que queremos alterar o seu nome para BD02. Vale a pena salientar que alterar também o DBID de um banco de dados pode vir a ser necessário quando precisamos registrá-lo em um catálogo de recuperação do RMAN no caso em que o banco de dados em questão tenha sido clonado de um banco de dados existente que já fora registrado no catálogo de recuperação. Portanto, não se pode ter dois bancos de dados com o mesmo DBID no catálogo de recuperação do RMAN.

Abaixo estão alguns dos parâmetros que poderemos utilizar com o utilitário nid (DBNEWID).

[oracle@localhost]$ nid

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 15:50:57 2010

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

Palavra-Chave Descrição (Default)
-----------------------------------------------------------
TARGET Nome do Usuário/Senha (NENHUM)
DBNAME Novo nome do banco de dados (NENHUM)
LOGFILE Log de Saída (NENHUM)
REVERT Reverter alteração com falha NÃO
SETNAME Define um novo nome de banco de dados NÃO
APPEND Acrescenta ao log de saída NÃO
HELP Exibe essas mensagens NÃO

No mais, temos três formas de usar o utilitário DBNEWID com propósitos diferentes para o cenário que irei apresentar. Vamos supor que o nome atual do meu banco de dados seja BD01 e que eu queira alterar o nome para BD02:

-- Alterar apenas o DBID do banco de dados BD01 (sem alterar o nome do banco de dados)
nid TARGET=sys/password@BD01

-- Alterar apenas o nome do banco de dados de BD01 para BD02 (sem alterar o DBID)
-- A cláusula SETNAME abaixo é utilizada para indicar que queremos somente alterar

-- o nome do banco de dados.

nid TARGET=sys/password@BD01 DBNAME=BD02 SETNAME=YES

-- Alterar o DBID e também o nome do banco de dados de BD01 para BD02
nid TARGET=sys/password@BD01 DBNAME=BD02

Vamos então a um exemplo prático onde irei alterar não só o DBID, como também o nome do banco de dados de BD01 para BD02 em um ambiente Linux. Em todos os casos, é necessário que o banco de dados esteja no estado MOUNT e que após a finalização do processo, o banco de dados deverá ser aberto com a opção RESETLOGS.

[oracle@localhost]$ export ORACLE_SID=BD01
[oracle@localhost]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:00:37 2010

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

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 117443104 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Banco de dados montado.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

[oracle@localhost]$ nid TARGET=/ DBNAME=BD02

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:02:13 2010

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

Conectado ao banco de dados BD01 (DBID=1078369007)

Conectado ao servidor versão 10.2.0

Arquivos de Controle no banco de dados:
/u01/app/oracle/oradata/BD01/control01.ctl
/u01/app/oracle/oradata/BD01/control02.ctl
/u01/app/oracle/oradata/BD01/control03.ctl

Alterar o ID do banco de dados e o nome do banco de dados BD01 para BD02? (S/[N]) => y

Continuando com a operação
Alterando ID do banco de dados de 1078369007 para 3201047653
Alterando nome do banco de dados de BD01 para BD02
Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - modificado
Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - modificado
Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - modificado
Arquivo de dados /u01/app/oracle/oradata/BD01/system01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/undotbs01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/sysaux01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/users01.dbf - dbid alterado, escreveu novo nome
Arquivo de dados /u01/app/oracle/oradata/BD01/temp01.dbf - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - dbid alterado, escreveu novo nome
Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - dbid alterado, escreveu novo nome
Instância desativada

Nome do banco de dados alterado para BD02.
Modifique o arquivo de parâmetros e gere um novo arquivo de senha antes de reiniciar.
ID do Banco de Dados BD02 alterado para 3201047653.
Todos os backups anteriores e redo logs arquivados para este banco de dados não podem ser utilizados.
O banco de dados não conhece backups anteriores e logs de arquivamento na Área de Recuperação.
Banco de dados foi desativado; abra o banco de dados com a opção RESETLOGS.
ID e nome do banco de dados alterados com sucesso.
DBNEWID - Concluído com sucesso.

Após a utilização do utilitário DBNEWID, irei alterar o nome do arquivo de inicialização spfile, subir a instância BD02 no estado NOMOUNT e alterar o parâmetro de inicialização "db_name" para BD02.

[oracle@localhost]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ mv spfileBD01.ora spfileBD02.ora
[oracle@localhost dbs]$ export ORACLE_SID=BD02
[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:15:47 2010

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

Conectado a uma instância inativa.

SQL> startup nomount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 109054496 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes

SQL> alter system set db_name=BD02 scope=spfile;

Sistema alterado.

SQL> shutdown immediate
ORA-01507: banco de dados não montado

Instância ORACLE desativada.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

Para finalizar irei remover todos os arquivos que referenciavam o banco de dados BD01, criar um novo arquivo de senha, subir a instância no estado MOUNT e abrir o banco de dados com a opção RESETLOGS.

[oracle@localhost dbs]$ orapwd file=orapwBD02 password=senha entries=10
[oracle@localhost dbs]$ rm *BD01*
[oracle@localhost dbs]$ ls -l *BD02*
-rw-rw---- 1 oracle oinstall 1552 Dez 4 16:15 hc_BD02.dat
-rw-r----- 1 oracle oinstall 2560 Dez 4 16:17 orapwBD02
-rw-r----- 1 oracle oinstall 3584 Dez 4 16:16 spfileBD02.ora

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:28:27 2010

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

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area 364904448 bytes
Fixed Size 2020832 bytes
Variable Size 109054496 bytes
Database Buffers 251658240 bytes
Redo Buffers 2170880 bytes
Banco de dados montado.

SQL> alter database open resetlogs;

Banco de dados alterado.

SQL> select name,open_mode from v$database;

NAME OPEN_MODE
--------- ----------
BD02 READ WRITE

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
BD02 OPEN



Leia mais: http://eduardolegatti.blogspot.com/#ixzz17XgBoVMt
Under Creative Commons License: Attribution Non-Commercial

DBNEWID

Olá, Neste artigo irei mostrar como alterar de forma simples e prática o nome de um banco de dados sem a necessidade de ter que recriar o arquivos de controle (control files). O utilitário nid (DBNEWID) disponível à partir do Oracle 9i fará este trabalho para nós. Imagine que temos um banco de dados chamado BD01 e que queremos alterar o seu nome para BD02. Vale a pena salientar que alterar também o DBID de um banco de dados pode vir a ser necessário quando precisamos registrá-lo em um catálogo de recuperação do RMAN no caso em que o banco de dados em questão tenha sido clonado de um banco de dados existente que já fora registrado no catálogo de recuperação. Portanto, não se pode ter dois bancos de dados com o mesmo DBID no catálogo de recuperação do RMAN

Abaixo estão alguns dos parâmetros que poderemos utilizar com o utilitário nid (DBNEWID).


[oracle@localhost]$ nid

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 15:50:57 2010

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

Palavra-Chave     Descrição                       (Default)
-----------------------------------------------------------
TARGET      Nome do Usuário/Senha                  (NENHUM)
DBNAME      Novo nome do banco de dados            (NENHUM)
LOGFILE     Log de Saída                           (NENHUM)
REVERT      Reverter alteração com falha           NÃO
SETNAME     Define um novo nome de banco de dados  NÃO
APPEND      Acrescenta ao log de saída             NÃO
HELP        Exibe essas mensagens                  NÃO

 

No mais, temos três formas de usar o utilitário DBNEWID com propósitos diferentes para o cenário que irei apresentar. Vamos supor que o nome atual do meu banco de dados seja BD01 e que eu queira alterar o nome para BD02:


-- Alterar apenas o DBID do banco de dados BD01 (sem alterar o nome do banco de dados)
nid TARGET=sys/password@
BD01

-- Alterar apenas o nome do banco de dados de BD01 para BD02 (sem alterar o DBID)
-- A cláusula SETNAME abaixo é utilizada para indicar que queremos somente alterar
-- o nome do banco de dados.

nid TARGET=sys/password@
BD01 DBNAME=BD02 SETNAME=YES

-- Alterar o DBID e também o nome do banco de dados de BD01 para BD02
nid TARGET=sys/password@
BD01 DBNAME=BD02

Vamos então a um exemplo prático onde irei alterar não só o DBID, como também o nome do banco de dados de BD01 para BD02 em um ambiente Linux. Em todos os casos, é necessário que o banco de dados esteja no estado MOUNT e que após a finalização do processo, o banco de dados deverá ser aberto com a opção RESETLOGS.


[oracle@localhost]$ export ORACLE_SID=
BD01
[oracle@localhost]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:00:37 2010

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

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             117443104 bytes
Database Buffers          243269632 bytes
Redo Buffers                2170880 bytes
Banco de dados montado.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

[oracle@localhost]$ nid TARGET=/ DBNAME=
BD02

DBNEWID: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:02:13 2010

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

Conectado ao banco de dados
BD01 (DBID=1078369007)

Conectado ao servidor versão 10.2.0

Arquivos de Controle no banco de dados:
    /u01/app/oracle/oradata/BD01/control01.ctl
    /u01/app/oracle/oradata/BD01/control02.ctl
    /u01/app/oracle/oradata/BD01/control03.ctl

Alterar o ID do banco de dados e o nome do banco de dados
BD01 para BD02? (S/[N]) => y

Continuando com a operação
Alterando ID do banco de dados de 1078369007 para 3201047653
Alterando nome do banco de dados de
BD01 para BD02
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - modificado
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - modificado
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - modificado
    Arquivo de dados /u01/app/oracle/oradata/BD01/system01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/undotbs01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/sysaux01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/users01.dbf - dbid alterado, escreveu novo nome
    Arquivo de dados /u01/app/oracle/oradata/BD01/temp01.dbf - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control01.ctl - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control02.ctl - dbid alterado, escreveu novo nome
    Arquivo de Controle /u01/app/oracle/oradata/BD01/control03.ctl - dbid alterado, escreveu novo nome
   
Instância desativada

Nome do banco de dados alterado para
BD02.
Modifique o arquivo de parâmetros e gere um novo arquivo de senha antes de reiniciar.
ID do Banco de Dados
BD02 alterado para 3201047653.
Todos os backups anteriores e redo logs arquivados para este banco de dados não podem ser utilizados.
O banco de dados não conhece backups anteriores e logs de arquivamento na Área de Recuperação.
Banco de dados foi desativado; abra o banco de dados com a opção RESETLOGS.
ID e nome do banco de dados alterados com sucesso.
DBNEWID - Concluído com sucesso.

Após a utilização do utilitário DBNEWID, irei alterar o nome do arquivo de inicialização spfile, subir a instância BD02 no estado NOMOUNT e alterar o parâmetro de inicialização "db_name" para BD02.


[oracle@localhost]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ mv spfile
BD01.ora spfileBD02.ora
[oracle@localhost dbs]$ export ORACLE_SID=
BD02
[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:15:47 2010

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

Conectado a uma instância inativa.

SQL> startup nomount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             109054496 bytes
Database Buffers          251658240 bytes
Redo Buffers                2170880 bytes

SQL> alter system set db_name=
BD02 scope=spfile;

Sistema alterado.

SQL> shutdown immediate
ORA-01507: banco de dados não montado

Instância ORACLE desativada.
SQL> exit
Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
With the Partitioning, OLAP and Data Mining options

Para finalizar irei remover todos os arquivos que referenciavam o banco de dados BD01, criar um novo arquivo de senha, subir a instância no estado MOUNT e abrir o banco de dados com a opção RESETLOGS.


[oracle@localhost dbs]$ orapwd file=orapwBD02 password=senha entries=10
[oracle@localhost dbs]$ rm *
BD01*
[oracle@localhost dbs]$ ls -l *
BD02*
-rw-rw---- 1 oracle oinstall 1552 Dez  4 16:15 hc_
BD02.dat
-rw-r----- 1 oracle oinstall 2560 Dez  4 16:17 orapw
BD02
-rw-r----- 1 oracle oinstall 3584 Dez  4 16:16 spfile
BD02.ora

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sáb Dez 4 16:28:27 2010

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

Conectado a uma instância inativa.

SQL> startup mount
Instância ORACLE iniciada.

Total System Global Area  364904448 bytes
Fixed Size                  2020832 bytes
Variable Size             109054496 bytes
Database Buffers          251658240 bytes
Redo Buffers                2170880 bytes
Banco de dados montado.

SQL> alter database open resetlogs;

Banco de dados alterado.

SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- ----------
BD02      READ WRITE

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
BD02             OPEN


Leia mais:
http://eduardolegatti.blogspot.com/#ixzz17XgBoVMt

Nenhum comentário :

Postar um comentário

Related Posts Plugin for WordPress, Blogger...