alterar um nome de banco de dados usando NEWID

House of Brick Senior Consultant

uma das muitas tarefas que um DBA executará é clonar um banco de dados. Normalmente, isso é feito de um banco de dados de produção para um banco de dados de garantia de qualidade ou teste para fornecer dados de volume de produção. Se o banco de dados estiver em uma máquina virtual, a clonagem pode ocorrer no nível da VM.

a clonagem faz exatamente o que significa, criando uma duplicata exata de um banco de dados. Infelizmente, isso acaba com você tendo dois bancos de dados com o mesmo nome e DBID em sua rede. Às vezes, você pode resolvê-lo o suficiente com aliasing no nível TNSNAMES.

outras vezes, você precisará alterar o nome do banco de dados e o DBID internamente. A Oracle tem um utilitário para isso, o aplicativo NEWID.

este documento detalhará as etapas necessárias para executar a alteração do nome do banco de dados usando NEWID.

terminologia e definições

a seguinte terminologia e definições serão usadas neste documento.

SID – Oracle Identificador do site. Este é o nome do banco de dados que está sendo alterado.
arquivo de parâmetro PFILE – Oracle. Localizado na pasta $ ORACLE_HOME / dbs.
SPFILE-arquivo de Parâmetros do Oracle Server. Também localizado na pasta $ ORACLE_HOME/dbs.
ORATAB – arquivo de configuração Oracle que associa o Oracle SIDs ao Oracle homes. Localizado em/etc / oratab.TNSNAMES-arquivo de configuração de rede Oracle que associa conexões de entrada com Oracle SIDs. Localizado na pasta $ ORACLE_HOME/network / admin.

nome do banco de dados
o nome do banco de dados, ou SID, está sendo alterado de prd para qa. Isso será referenciado quando apropriado no documento.

Visão Geral do processo
existem quatro etapas a serem executadas para alterar um nome de banco de Dados Oracle (SID).

  1. trabalho de preparação preliminar
  2. Use o aplicativo NID
  3. alterar referências SID
  4. Iniciar banco de dados e finalizar alterações

1. Trabalho de preparação preliminar

após a alteração do nome do banco de dados, as alterações precisarão ser feitas no arquivo de parâmetro Oracle. Se o banco de dados estiver usando um arquivo de parâmetro do servidor (SPFILE) em vez de um arquivo de parâmetro (PFILE), você precisará converter de um SPFILE para um PFILE antes que a alteração do nome do banco de dados ocorra.

1.1 Determinar se SPFILE está em Uso
Executar a consulta seguinte para ver se o seu banco de dados foi iniciado com um PFILE ou SPFILE:

Figura 1.1 Consulta para ver se SPFILE está em uso

SQL> SELECIONE DECODIFICAR(valor, NULL, ‘PFILE’, ‘SPFILE’) “Init Tipo de Ficheiro
“a PARTIR sys.V_ $ parâmetro onde name = ‘spfile’;

execute esta consulta para determinar se o banco de dados começa com um PFILE ou SPFILE.

se o banco de dados começar com um PFILE, nenhum trabalho de preparação adicional é necessário e você pode prosseguir para a Etapa 2 – Use o aplicativo NID. Caso contrário, continue com o próximo passo.

1.2 Criando um PFILE de SPFILE
execute o seguinte sql para criar um PFILE de um SPFILE:

figura 1.2 Criando um PFILE de SPFILE.

SQL > create pfile from spfile;

execute este comando para criar um PFILE a partir de um SPFILE.Isso irá criar um PFILE no diretório $ ORACLE_HOME/dbs. Ele usará o SID atual no nome. Como o SID atual do banco de dados é prd, o nome será initprd.flora. Copie o arquivo para ter o novo SID em seu nome. Para este exemplo, o novo nome seria initqa.flora. Veja a figura 1.3 para um exemplo de cópia do arquivo.

Figura 1.3 Copiar o antigo PFILE para o seu novo nome


$ cd $ORACLE_HOME/dbs
$ pwd
/u01/app/oracle/product/11.2.0/db_1/dbs
$ é –ls initped.ora
9 –rw-r– 1 oracle oinstall 1106 Oct 11 20: 17 initprd.ora
$ cp initprd.ora initqa.ora
$

exemplo de cópia do antigo PFILE, initdwprd.ora para o novo PFILE, initdwqa.flora.

Use o aplicativo NID

para usar o aplicativo NID, você precisará fazer login no servidor de banco de dados como usuário do oracle e executar as seguintes etapas.

  1. Shutdown do banco de dados
  2. Iniciar o banco de dados no modo de suporte
  3. Executar NID comando
  4. Desligar o banco de dados para baixo

2.1 o Desligamento do Banco de dados
Iniciar uma SQLPlus sessão e digite o comando shutdown immediate. A Figura 2.1 demonstra este passo.

Figura 2.1 Desligar o banco de dados

$ sqlplus / as sysdba

SQL*Plus: Lançamento 11.2.0.3.0 Produção em Sáb Out 11 20:02:24 2014

Copyright © 1982, 2011, Oracle, Todos os direitos reservados.

conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0-Production
com as opções de particionamento, OLAP, mineração de dados e testes de aplicativos reais

SQL> shutdown immediate
Database closed.
banco de dados desmontado.
instância ORACLE desligado.
SQL>

exemplo de saída ao desligar o banco de dados.

2.2 iniciando o banco de dados para o modo de montagem

Inicie uma sessão SQLPlus e insira o comando montagem de inicialização. A figura 2.2 mostra isso sendo feito.

Figura 2.2 Iniciar o banco de dados para montar o modo de

$ sqlplus / as sysdbaSQL*Plus: Lançamento 11.2.0.3.0 Produção em Sab Out 11 20:02:24 2014Copyright © 1982, 2011, Oracle, Todos os direitos reservados.

conectado a uma instância ociosa.

SQL > montagem de inicialização
a instância ORACLE foi iniciada.
> Total do Sistema Global da Área 535662593 bytes
Tamanho Fixo 1346140 bytes
Tamanho Variável 260048292 bytes
Buffers de Banco de dados 268435456 bytes
Refazer Buffers 5832704 bytes
Banco de dados montado.
SQL>

exemplo de saída ao iniciar o banco de dados para o modo de montagem.

digite exit para retornar ao prompt do shell.

2.3 execute o comando NID
o comando NID é o programa Oracle que altera o SID do banco de dados. Para usá-lo, você precisará da senha da conta do sistema e do novo SID para o banco de dados. Com o novo SID sendo qa, a linha de comando será Nid target=SYS dbname=qa. Depois de pressionar enter, você será solicitado para a senha da conta SYS. Digite a senha. Você será solicitado a confirmar que deseja alterar o SID. Veja a figura 2.3.1 para a exibição da tela.

Figura 2.3.1 exibição da Tela de execução NID comando

$ nid target=SYS dbname=qa
DBNEWID: Lançamento 11.2.0.3.0 – Produção em Sáb Out 11 20:05:54 2014

Copyright © 1982, 2011, Oracle e/ou suas afiliadas. Todos os direitos reservados.

Password:
conectado ao banco de dados PRD (DBID=3949194393)

conecte-se ao servidor versão 11.2.0

controlar arquivos no banco de dados:
/u01/app/oracle/oradata/prd/control01.ctl
/ u01 / app / oracle / oradata / prd / control02.ctl

Alterar ID do banco de dados e nome do banco de dados PRD para QA? (Y/) => _

saída de iniciar o comando NID.

digite Y para confirmar a alteração do nome do banco de dados como mostrado na figura 2.3.2

figura 2.3.2 confirmando a alteração do nome do banco de dados

$ Nid target = SYS dbname = qa
DBNEWID: lançamento 11.2.0.3.0-produção em Sat out 11 20:05:54 2014

Copyright © 1982, 2011, Oracle e / ou suas afiliadas. Todos os direitos reservados.

senha:
conectado ao banco de dados PRD (DBID=3949194393)

conecte-se ao servidor versão 11.2.0

Arquivos de controle no banco de dados:
/u01/app/oracle/oradata/prd/control01.ctl
/ u02 / app / oracle / oradata / prd / control02.ctl

Alterar ID do banco de dados e nome do banco de dados PRD para QA? (Y/) = > Y

respondendo Y à confimação.

o programa fará as alterações internas e exibirá seu progresso. Quando terminar, você será devolvido ao prompt do shell, conforme mostrado na figura 2.3.3.

figura 2.3.3 saída do programa Nid

Datafile /u02/app/oracle/oradata/prd/dw03.db-dbid mudou, escreveu novo nome
Datafile / u02 / app / oracle / oradata / prd / dw04.db-dbid mudou, escreveu novo nome
Datafile / u02 / app / oracle / oradata / prd / dw05.db-dbid mudou, escreveu novo nome
Datafile / u01 / app / oracle / oradata / prd / temp01.db-dbid mudou, escreveu novo nome
arquivo de controle / u01 / app / oracle / oradata / prd / control01.ctl-dbid mudou, escreveu novo nome
arquivo de controle / u02 / app / oracle / oradata / prd / control02.ctl-dbid mudou, escreveu novo nome
instância desligado

nome do banco de dados alterado para QA.
modificar arquivo de parâmetro e gerar um novo arquivo de senha antes de reiniciar.
ID do banco de dados para QA do banco de dados alterado para 1714809981
todos os backups anteriores e registros de refazer arquivados para este banco de dados são inutilizáveis.
o banco de dados não está ciente dos backups do previos e dos logs arquivados na área de recuperação.
banco de dados hase foi desligado, banco de dados aberto com opção RESETLOGS.
alterou com sucesso o nome e o ID do banco de dados.
DBNEWID-concluído com sucesso.

$

saída do programa NID mostrando uma conclusão bem-sucedida.

2.4 desligue o banco de dados
o banco de dados precisará ser desligado novamente. Repita o início de uma sessão SQLPlus e digite o comando shutdown immediate, conforme mostrado na etapa 2.1.

3. Alterar referências SID

as alterações precisarão ser feitas no parâmetro de banco de dados, tnsnames, oratab e arquivos de ambiente para refletir a alteração do SID do banco de dados.

  1. o arquivo de parâmetro Oracle precisa ser renomeado e editado.
  2. Oratab precisa ter o SID renomeado.
  3. o arquivo ora precisa do SID renomeado
  4. se o ORACLE_SID estiver definido no perfil, ele precisará ser alterado.

3.1 O arquivo de parâmetro Oracle precisa ser renomeado e editado

o arquivo de parâmetro Oracle precisará ser editado e ter duas linhas alteradas. Mude para onde o arquivo de parâmetro está armazenado, a pasta $ORACLE_HOME/dbs. Veja a figura 3.1.1 para um exemplo.

Figura 3.1.1 mudando para a pasta de arquivo de parâmetro


$ como baixar e instalar Minecraft 1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.como baixar e instalar Minecraft 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.ora
$

exemplo de mudança para a pasta de arquivo de parâmetro para se preparar para editar o arquivo de parâmetro.

edite o arquivo e localize as duas linhas que precisam ser alteradas. As linhas começam com dbname e instance_name. Veja a figura 3.1.2 para um exemplo de como o arquivo de parâmetro ficaria antes das alterações.

Figura 3.1.2 consulta para ver se o SPFILE está em uso.


dbname=”prd”
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=”/u01/app/oracle/flash_recovery_area”
fast_start_mttr_target=120
instance_name=prd

Linhas que são destacadas precisa ser alterado para um novo nome de SID.

você precisará alterar o valor SID para as duas linhas do antigo SID, prd, para o novo SID, qa. Veja a figura 3.1.3 Para ver como as linhas cuidariam das mudanças.

Figura 3.1.3 Consulta para ver se SPFILE está em uso


dbname=”qa”
db_recovery_file_dest_size=64424509440
db_recovery_file_dest=”/u01/app/oracle/flash_recovery_area”
fast_start_mttr_target=120
instance_name=qa

arquivo de Parâmetro mostrando o nome de SID alterações após a edição.

Salve o arquivo e saia do editor.

3.2 Oratab precisa ter o SID renomeado

o arquivo Oracle ORATAB, / etc / oratab, precisará ter a referência SID alterada do SID antigo. prd para o novo SID. qa. Edite o arquivo e altere a entrada SID antiga para o novo SID. Veja a figura 3.2.1 para um exemplo.

figura 3.2.1 exemplo de arquivo ORATAB modificado / etc / oratab

# várias entradas com o mesmo $ORACLE_SID não são permitidas.
#
#
#1120:/u01/app/oracle/product/11.2.0:N
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
#prd:/u01/app/oracle/product/11.2.0/db_1:Y
qa:/u01/app/oracle/product/11.2.0/db_1:Y;

Exemplo de arquivo ORATAB mostrando alterado SID referência de dwprd para dwqa. O valor alterado está em negrito.

3.3 TNSNAMES precisa ter o SID renomeado

o arquivo Oracle TNSNANES, tnsnames.ora, precisará ter a referência SID alterada do antigo SID. dwprd para o novo SID. dwqa. Ele também precisará do endereço do HOST alterado para corresponder ao novo sistema. TNSNAMES está localizado na pasta $ ORACLE_HOME / network / admin. Edite o arquivo e altere a entrada SID antiga para o novo SID e altere o endereço do HOST para corresponder ao novo sistema. Veja a figura 3.3.1 para um exemplo.

figura 3.3.1 exemplo de arquivo TNSNAMES modificado $ ORACLE_HOME / network/admin / tnsnames.ora

(CONNECT_DATA =
(SID = PLSExtProc)
(APRESENTAÇÃO = RO)
)
)QA =
(DESCRIÇÃO =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.188.1.86)(PORTA = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = qa)
(UR = UM)
)
)

Exemplo TNSNAMES arquivo mostrando alterado SID referência de dwprd para dwqa e endereço de HOST definido para o novo endereço. O valor alterado está em negrito.

3.4 se o ORACLE_SID estiver definido no perfil, ele precisará ser alterado.

Normalmente, a variável de ambiente $ ORACLE_SID é definida como o valor SID no script do perfil de login, $HOME/.perfil ou $ casa/.bash_profile. Localize e altere a configuração SID para o novo valor. A figura 3.4.1 mostra um exemplo de exibição do valor $ ORACLE_SID da linha de comando.

Figura 3.4.1 Apresentar a $ORACLE_SID valor


$ echo $ORACLE_SID
prd
$

Utilizando o comando echo para exibir a $ORACLE_SID valor.

você precisará fazer logout e fazer login novamente após alterar o valor ORACLE_SID no script de perfil para configurá-lo em seu ambiente.

4. Inicie o banco de dados e finalize as alterações

a última etapa que precisa ser concluída é iniciar o banco de dados até o nível de montagem e abri-lo com a opção resetlogs. Inicie uma sessão SQLPlus, Inicie o banco de dados até o modo de montagem inserindo montagem de inicialização. Se você teve que criar um PFILE na Etapa 1, o comando start é Startup pfile=initSID.ora mount. Então, para o nosso exemplo, seria startup pfile=initqa.ora mount. Em seguida, abra o banco de dados com o comando alter database open resetlogs;. Consulte a figura 4.1 para obter um exemplo da exibição da tela.

Figura 4.1 Iniciar o backup do banco de dados e a redefinição de logs

$ sqlplus / as sysdba

SQL*Plus: Lançamento 11.2.0.3.0 Produção em Sáb Out 11 20:02:24 2014
Copyright © 1982, 2011, Oracle, Todos os direitos reservados.
conectado a uma instância ociosa.

SQL > montagem de inicialização
a instância ORACLE foi iniciada.
> Total do Sistema Global da Área 535662593 bytes
Tamanho Fixo 1346140 bytes
Tamanho Variável 260048292 bytes
Buffers de Banco de dados 268435456 bytes
Refazer Buffers 5832704 bytes
Banco de dados montado.
SQL > alterar resetlogs abertos do banco de dados;

banco de dados alterado.

SQL>

iniciando o banco de dados no modo de montagem e abrindo com a opção resetlogs.

se você teve que criar um PFILE na Etapa 1, você precisará converter o PFILE de volta para um SPFILE. Isso é feito usando o comando CREATE SPFILE. No prompt SQL, digite o comando create spfile from pfile.

conclusão

alterar o nome do banco de dados de um banco de Dados Oracle pode parecer complicado, mas pode ser executado com habilidades básicas de sistemas. Seguindo os procedimentos descritos neste documento, um DBA pode executar a tarefa com tempo de inatividade mínimo para o banco de dados.

Leave a Reply

O seu endereço de email não será publicado.