Para melhor visualização, recomendo resolução de no mínimo 1024 x 768 e navegador Mozilla Firefox


domingo, 5 de fevereiro de 2012

IMPORT CATALOG - Mais um novo comando do RMAN no Oracle 11g

Por Eduardo Legatti

Olá,

Para aqueles DBAs que gerenciam vários bancos de dados em um mesmo ambiente, é de extrema importância ter uma política de backup e recuperação eficiente e segura. Para o banco de dados Oracle, quando falamos de backup, falamos de RMAN e, quando falamos de recovery, também falamos de RMAN. Quando se tem vários ambientes de bancos de dados em uma organização, é comum existir mais de um catálogo de recuperação do RMAN distribuídos entre um ou mais servidores. Por exemplo, imaginem o ambiente de produção (PRD) com vários bancos de dados, um ambiente de desenvolvimento (DEV) com mais alguns bancos de dados, e mais um outro ambiente de testes com vários outros bancos de dados.

Em se tratando de política de backup/recovery com o RMAN, para muitos bancos de dados, é interessante utilizar um catálogo de recuperação de forma a centralizar as informações sobre os backups de todos esses bancos de dados.

Pessoalmente eu prefiro ter um catálogo de recuperação definido por ambiente, ou seja, um catálogo para as bases de produção e outro catálogo para as demais bases de dados dos outros ambientes.

Dependendo da quantidade de bancos de dados e catálogos de recuperação existentes, pode ser que algum dia tenhamos que mover ou juntar os metadados das bases registradas em um ou mais catálogos de recuperação. É possível também que queiramos centralizar todas as informações de vários catálogos em apenas um. Neste caso, as informações de backup dos bancos de dados existentes em mais de um catálogo teriam que ser exportados ou movidos para um novo catálogo, talvez até em um outro servidor, por exemplo.

Neste artigo mostrarei um exemplo prático de como poderemos realizar este procedimento de forma simples, utilizando o novo comando (IMPORT CATALOG) introduzido no RMAN à partir do Oracle 11g.

Imagine o cenário onde temos os bancos BD01 e BD03 registrados no catálogo de recuperação RCVCAT_01 e o banco de dados BD02 registrado no catálogo de recuperação RCVCAT_02. Como faríamos para juntar as informações de backup das bases contidas nesses dois catálogos em um novo catálogo? Veja os exemplos abaixo:
$ rman

Gerenciador de Recuperação: Release 11.2.0.2.0 - Production on Dom Fev 5 09:15:46 2012

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

RMAN> connect catalog rman/rman@RCVCAT_11G

conectado ao banco de dados do catálogo de recuperação

Acima, eu conectei no banco de dados que hospeda o meu novo catálogo de recuperação criado em um banco de dados Oracle 11g. Acima eu conectei no mesmo utilizando o servidor TNS chamado de RCVCAT_11G.

Para transferir as informações de todas as bases do catálogo RCVCAT_01 para o catálogo RCVCAT_11G, utilizarei o comando abaixo:

RMAN> import catalog rman/rman@RCVCAT_01 NO UNREGISTER;

Iniciando import catalog em 05/02/2012
conectado ao banco de dados do catálogo de recuperação de origem
validação de importação concluída
Finalizado import catalog em 05/02/2012

RMAN> list db_unique_name all;

Lista de Banco de Dados
Chave Nome ID do BD Atribuição Db_unique_name
------- ------- ---------------- --------------- -----------------
30454 BD01 1319843351 PRIMARY BD01
32289 BD03 3521409793 PRIMARY BD03

Podemos ver acima que a importação ocorreu com sucesso e as bases foram registradas no novo catálogo de recuperação. Vale apena salientar que no comando de importação, eu utilizei a cláusula "NO UNREGISTER". Essa cláusula diz ao RMAN para que ele não desregistre as bases do catálogo de origem. Por padrão, o RMAN irá desregistrar os bancos de dados do catálogo de origem após importação das mesmas para o catálogo de destino.

Agora irei importar as informações apenas do banco de dados BD02 atualmente registrada no catálogo RCVCAT_02, para o catálogo RCVCAT_11G:

RMAN> import catalog rman/rman@RCVCAT_02 DB_NAME=BD02;

Iniciando import catalog em 05/02/2012
conectado ao banco de dados do catálogo de recuperação de origem
validação de importação concluída
banco de dados não registrado no catálogo de recuperação de origem
Finalizado import catalog em 05/02/2012

RMAN> list db_unique_name all;

Lista de Banco de Dados
Chave Nome ID do BD Atribuição Db_unique_name
------- ------- ---------------- --------------- -----------------
30454 BD01 1319843351 PRIMARY BD01
32289 BD03 3521409793 PRIMARY BD03
47403 BD02 2476103972 PRIMARY BD02

Após a importação, podemos ver que os 3 bancos de dados foram registrados no novo catálogo de recuperação. Percebe-se que no segundo comando eu não utilizei a cláusula "NO UNREGISTER" e, portanto, podemos ver que o RMAN automaticamente desregistrou a base BD02 do catálogo de origem RCVCAT_02. Eu poderia ter utilizado também o parâmetro DBID em vez de DB_NAME para informar a base de dados a ser importada. Por fim, abaixo estão alguns exemplos de comandos que podemos utilizar:

RMAN> import catalog rman@RCVCAT DBID=183249,190352;
RMAN> import catalog rman@RCVCAT DBID=345495,190354 NO UNREGISTER;
RMAN> import catalog rman@RCVCAT DB_NAME=BD01,BD02,BD03;

Google+

4 comentários:

wender cruz disse...

Olá Eduardo,
Gostaria de tirar uma dúvida não sei se já passou por este problema com catalog rman. O DB era versão Standard Edition release 11.2.0.1, estava com catalog criado em outro db e registrado, porém removi a instalação da Instância e Reinstalei com a Versão Enterprise Edition 11.2.0.4, quando tento me conectar ao Catalog rman o mesmo me retorna o seguinte erro:

C:\Users\jde>rman target / rcvcat rman_flavios/********@rmanprd2

Gerenciador de RecuperaþÒo: Release 11.2.0.4.0 - Production on Seg Set 15 08:42:34 2014

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

conectado ao banco de dados de destino: ORCLPD (DBID=4095817148)
conectado ao banco de dados do catßlogo de recuperaþÒo
a versÒo RMAN_FLAVIOS do pacote DBMS_RCVCAT.11.02.00.01 PL/SQL no banco de dados RCVCAT nÒo Ú atual
a versÒo RMAN_FLAVIOS do pacote DBMS_RCVMAN.11.02.00.01 PL/SQL no banco de dados RCVCAT nÒo Ú atual

Alguma ideia do que poderia ser.
Abraços

Eduardo Legatti disse...

Olá Wender,

Pelo que estou vendo, você está usando o RMAN versão 11.2.0.4.0 tentando conectar em um catálogo que está na versão DBMS_RCVCAT.11.02.00.01. Alguma incompatibilidade de versão está acontecendo entre o catálogo e o banco de dados target.

Você precisa fazer o UPGRADE do catálogo.

Tente executar os comandos abaixo:

C:\ rman
RMAN> connect catalog rman_flavios/********@rmanprd2;
RMAN> upgrade catalog;

Abraços

Legatti

wender cruz disse...

Achei que o fato de retornar a mensagem de incompatibilidade da versão não estava conectado ao catalog para fazer o upgrade.
Fiz o upgrade e funcionou, mais um aprendizado.
Obrigado.

Eduardo Legatti disse...

Olá Wender,

Que bom que funcionou!! ;-)

Abraços

Legatti

Postagens populares