Pular para o conteúdo

Como criar e utilizar o catálogo do Oracle Recovery Manager (RMAN)

Implementação do catálogo do Oracle Recovery Manager (RMAN) e sua aplicação

INTRODUÇÃO

O Recovery Manager (RMAN) é um a ferramenta da Oracle que possibilita funcionalidades de backup, restore e recover de uma base de dados Oracle. Esta ferramenta foi introduzida na versão 8.0  e  é utilizada nos dias atuais, além de ser uma das  ferramentas recomendada pela Oracle para execuções de backups e, com isso, sendo considerada uma boa prática.

Abaixo será elucidado como criar e catálogo do RMAN ( também conhecido como repositório do RMAN), denominado como “orac1” neste exemplo ,  e sua aplicação com um outro exemplo de um banco de dados sendo utilizando como  um banco de produção. O intuito dessa aplicação é demonstrar a relação catálogo do RMAN e o banco de dados que será efetuado o backup.

— Primeiramente se conectando na base de dados que será utilizada como o repositório do RMAN , denominada neste exemplo como orac1.

[oracle@dba10g-1 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 12 20:26:13 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select instance_name as NOME_DO_BANCO, status from v$instance;

NOME_DO_BANCO    STATUS
---------------- ------------
orac1            OPEN

— Posteriormente já conectado na base, há a necessidade de se criar uma tablespace para o repositório, denominada de RCVCAT.

SQL> create tablespace RCVCAT
Logging
datafile '/u01/app/oracle/oradata/orac1/tbs_rcvcat01.dbf'
size 128m
autoextend on
next 64m maxsize 2048m
extent management local uniform size 1m;   2    3    4    5    6    7
Tablespace created.

— Após isso cria-se o usuário do RMAN.

SQL> create user RMAN identified by RMAN   temporary tablespace TEMP default tablespace USERS  quota unlimited on USERS;
User created.

— Aplica-se o grant necessário para o usuário criado ser reconhecido como owner do catálogo em questão.

SQL> grant recovery_catalog_owner to RMAN;
Grant succeeded.

— Realizando o teste de conexão com o usuário criado através da execução da ferramenta pelo comando “rman” no prompt do sistema operacional em questão.

[oracle@dba10g-1 admin]$ rman
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Feb 12 20:36:05 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

RMAN> connect catalog rman/rman@orac1
connected to recovery catalog database

— Criando de fato o catálogo do RMAN:

RMAN> create catalog;
recovery catalog created

— Após a criação do catálogo, segue uma breve consulta no banco de dados do catálogo para verificar se há algum banco registrado para utilizar o mesmo. Nota-se que a consulta não retorna nenhuma linha, o que concerne com o fato de não haver nenhum banco registrado neste momento para utilizá-lo.

[oracle@dba10g-1 ~]$ sqlplus "/as sysdba"
SQL> conn rman/rman@orac1
Connected.
SQL> select * from rc_database;
no rows selected
SQL> exit

— Neste artigo, ambos as bases de dados foram criados no mesmo servidor para questão de não complicar a abordagem do foco principal. Todavia, ressalta-se que vários  ambientes de produções estão localizados em servidores diferentes do catálogo do RMAN. Para  isso ser possível, há a necessidade de  se alterar o arquivo TNSNAMES.ora, localizado em $ORACLE_HOME/network/admin em servidores que utilizam sistemas operacionais  UNIX/LINUX e  em %ORACLE_HOME%\network\admin  em sistemas operacionais Windows. Nota-se que as configurações de tanto o catálogo do RMAN e tanto do banco de dados a ser realizado o backup estão no mesmo TNSNAMES.ora, pelo fato já preconizado de ambas as bases de dados estarem inseridas no mesmo servidor neste exemplo.

[oracle@dba10g-1 ~]$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@dba10g-1 ~]$ export ORACLE_SID=PROD
[oracle@dba10g-1 ~]$ export TNS_ADMIN=/u01/app/oracle/product/10.2.0/db_1/network/admin
[oracle@dba10g-1 admin]$ cd /u01/app/oracle/product/10.2.0/db_1/network/admin
[oracle@dba10g-1 admin]$ ls -ltr
total 32
-rw-r----- 1 oracle oinstall  172 Dec 26  2003 shrept.lst
drwxr-x--- 2 oracle oinstall 4096 Oct 23  2010 samples
-rw-r--r-- 1 oracle oinstall  337 Nov  6  2010 tnsnames1011063PM0907.bak
-rw-r--r-- 1 oracle oinstall  191 Nov  6  2010 sqlnet.ora
-rw-r--r-- 1 oracle oinstall   66 Nov 13  2010 ed.hup
-rw-r--r-- 1 oracle oinstall  515 Nov 20  2010 listener.ora
-rw-r--r-- 1 oracle oinstall   26 Apr 17  2011 afiedt.buf
-rw-r--r-- 1 oracle oinstall  723 Feb 16 19:57 tnsnames.ora
[oracle@dba10g-1 admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

PROD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dba10g)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PROD)
)
)

ORAC1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dba10g)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orac1)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

— Registrando o banco de dados nomeado de PROD com o repositório do RMAN, para ser possível a realização de backups do banco de dados PROD utilizando o repositório ORAC1.

[oracle@dba10g-1 admin]$ rman
Recovery Manager: Release 10.2.0.1.0 - Production on Sat Feb 16 20:16:13 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

— Aplicando comando “connect target /”  após se conectar na ferramenta rman com o intuito de direcionar o backup para o banco alvo, neste exemplo o banco PROD.  Sendo assim, após a execução do comando em questão aparecerá o nome do banco alvo, seguido de seu DBID ( número muito importante para outras operações utilizando a ferramenta rman).

RMAN> connect target /
connected to target database: PROD (DBID=219404539)

— Conectando com  usuário/senha@NomeDoALias referente ao banco do repositório.

RMAN> connect catalog rman/rman@orac1
connected to recovery catalog database

— Registrando o banco de dados PROD no catálogo ORAC1, com o comando “Register Database”.

RMAN> REGISTER DATABASE;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete

— Executando um backup do banco PROD.

RMAN> BACKUP DATABASE;

Starting backup at 16-FEB-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=136 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u01/app/oracle/oradata/PROD/system01.dbf
input datafile fno=00003 name=/u01/app/oracle/oradata/PROD/sysaux01.dbf
input datafile fno=00002 name=/u01/app/oracle/oradata/PROD/undotbs01.dbf
input datafile fno=00004 name=/u01/app/oracle/oradata/PROD/users01.dbf
channel ORA_DISK_1: starting piece 1 at 16-FEB-13
channel ORA_DISK_1: finished piece 1 at 16-FEB-13
piece handle=/u01/app/oracle/flash_recovery_area/PROD/backupset/2013_02_16/o1_mf_nnndf_TAG20130216T201644_8l01bhqp_.bkp tag=TAG20130216T201644 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:15
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 16-FEB-13
channel ORA_DISK_1: finished piece 1 at 16-FEB-13
piece handle=/u01/app/oracle/flash_recovery_area/PROD/backupset/2013_02_16/o1_mf_ncsnf_TAG20130216T201644_8l01dtqm_.bkp tag=TAG20130216T201644 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 16-FEB-13

RMAN> exit

Recovery Manager complete.

— Verificando os arquivos de backup após a execução do mesmo.

[oracle@dba10g-1 ~]$ cd /u01/app/oracle/flash_recovery_area/PROD/backupset/2013_02_16/
[oracle@dba10g-1 2013_02_16]$ ls -ltr
total 522928
-rw-r----- 1 oracle oinstall 527802368 Feb 16 20:17 o1_mf_nnndf_TAG20130216T201644_8l01bhqp_.bkp
-rw-r----- 1 oracle oinstall   7143424 Feb 16 20:18 o1_mf_ncsnf_TAG20130216T201644_8l01dtqm_.bkp

— Consultando o registro do banco de dados PROD (backup a ser backupeado) no catálogo do banco do rman ORAC1.

[oracle@dba10g-1 2013_02_16]$ export ORACLE_SID=orac1
[oracle@dba10g-1 2013_02_16]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Feb 16 20:22:12 2013
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn rman/rman@orac1
Connected.
SQL> select * from rc_database;

DB_KEY  DBINC_KEY       DBID NAME     RESETLOGS_CHANGE# RESETLOGS
---------- ---------- ---------- -------- ----------------- ---------
1        2      219404539 PROD               1 16-FEB-13

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@dba10g-1 2013_02_16]$

Portanto, o uso da ferramenta rman e a criação de seu catálogo, possibilitam diversas funcionalidades ao administrador de banco de dados no seu dia-a-dia, além de estarem em conformidades com as recomendações  da fornecedora do produto, no caso  a própria ORACLE.

Referências

Bruno Reis

Bruno Reis

DBA ORACLE  na International Business Machines (IBM), fornecendo suporte para grandes clientes. Técnico em Informática pela Escola Técnica Polivalente de Americana e estudante de Ciência Computação . Mantenedor do Weblog sobre Banco de Dados Oracle e Gerenciamento de Serviços de TI: www.brunors.com

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