Como criar e catalogar um backup Oracle
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