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%networkadmin 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
http://docs.oracle.com/cd/B28359_01/backup.111/b28273/rcmsynta013.htm
http://docs.oracle.com/cd/B28359_01/backup.111/b28270/rcmcatdb.htm#BRADV179
http://www.oracle.com/technetwork/database/features/availability/rman-overview-096633.html
http://docs.oracle.com/cd/B10501_01/server.920/a96566/rcmintro.htm
http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm

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