Sunday, June 05, 2005
Dúvida - Bakup (RMAN)
Autor: Daniel Crespo Gutierre
A Dúvida.
Posso colocar alguns exemplos do que o RMAN pode fazer e tentar escrever algo sobre seus componentes principais, porém sem um cenário para discutir e principalmente sem sua estratégia de backup e recovery, é bem difícil escrever algo que seja compreensível do rman.
A matéria é extensa, daria um livro o Recovery Manager, basicamente ele é um programa que facilita o processo de backup e recovery. Ele pode ser usado tanto em modo NOCATALOG (simplemente como client) quanto ter um repositório para controle de seus backups. Nesse último, uma instância a mais teria que ser mantida.
Basicamente o RMAN tem como componentes básicos:
Um exemplo muito simples, seria fazer um backup do seu banco de dados, deletar um arquivo que pertence a uma tablespace para perdê-la, restaurar o datafile e recuperar o banco. Descobri qual o arquivo estava com problema na view v$datafile_header e v$recover_file.
Como visto acima, existem vários sabores de listagens e reports no rman, podemos ver os backups realizados. Agora como já mencionado acima, perdi o datafile #5 e vamos recuperá-lo.
Tenha em mente que isso reflete apenas um teste simples para demonstração do RMAN, não siga os passos acima em uma base de produção, primeiro faça um estudo do RMAN para obter entendimento, planeje sua estratégia de backup e recovery, teste do backup e (principalmente) do recovery, teste novamente e outra vez, agora sim -- faça a implementação em produção.
A Dúvida.
Boa Tarde
Primeiramente, parabens pelo seu blog é muito bom me ajuda bastante.
Queria saber se vc tem algum material ou poderia colocar no seu blog alguma coisa sobre RMAN não consigo achar material em portugues
Obrigado
Posso colocar alguns exemplos do que o RMAN pode fazer e tentar escrever algo sobre seus componentes principais, porém sem um cenário para discutir e principalmente sem sua estratégia de backup e recovery, é bem difícil escrever algo que seja compreensível do rman.
A matéria é extensa, daria um livro o Recovery Manager, basicamente ele é um programa que facilita o processo de backup e recovery. Ele pode ser usado tanto em modo NOCATALOG (simplemente como client) quanto ter um repositório para controle de seus backups. Nesse último, uma instância a mais teria que ser mantida.
Basicamente o RMAN tem como componentes básicos:
Target Database - Control file, datafiles e opcionalmente os archives do banco de
dados que o RMAN está a cargo. RMAN usa o control file deste banco
para conhecer os metadatas do target database e arquivar suas
próprias operações. O trabalho de backup e recovery é executado por
sessões no servidor (channel) do target database.
RMAN Client - Recovery Manager Client para gerenciar operações de backup e
recovery. O RMAN client conecta-se ao target database através do
Oracle Net.
O Backup/Recovery é feito através de canais (server session), ou seja, voce
identifica qual o device e o configura como canal.
RMAN Channel - É uma corrente de dados enviados a um determinado device (fita,
disco, storage, etc). Esse processo de backup ou recovery é feito
através de uma sessão no servidor (channel).
A maneira mais fácil de visualizar o desenho rman seria:
----------
... | Database |
| Target |
----------
|
+------------+-------+----------- (RMAN)
| |
+----+----+ +----+----+
| Server | | Server |
| Session | | Session | ...
|(Channel)| |(Channel)|
+---------+ +---------+
| |
[disk] [fita] ...
Enfim, através dos channels direcionar seu backup para vários devices assim como
contralar vários databases targets. O uso do RMAN é bastante abrangente.
Um exemplo muito simples, seria fazer um backup do seu banco de dados, deletar um arquivo que pertence a uma tablespace para perdê-la, restaurar o datafile e recuperar o banco. Descobri qual o arquivo estava com problema na view v$datafile_header e v$recover_file.
c:\scripts\blog\question>rman nocatalog
Recovery Manager: Release 10.1.0.2.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
RMAN> CONNECT TARGET /
connected to target database: ORA10G (DBID=3848249943)
using target database controlfile instead of recovery catalog
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\10.1.0\DATABASE\SNCFORA10G.ORA'; # default
RMAN> backup database format 'c:\temp\%U';
Starting backup at 05-JUN-05
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=151 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSTEM_0FF6S1HG_.DBF
input datafile fno=00002 name=C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_UNDOTBS1_0FF6TCKN_.DBF
input datafile fno=00005 name=C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_PERFSTAT_18MCZRH3_.DBF
input datafile fno=00003 name=C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSAUX_0FF6TVYW_.DBF
input datafile fno=00004 name=C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_USERS_0FF6VPMW_.DBF
channel ORA_DISK_1: starting piece 1 at 05-JUN-05
channel ORA_DISK_1: finished piece 1 at 05-JUN-05
piece handle=C:\TEMP\21GM84JR_1_1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:06:57
Finished backup at 05-JUN-05
Starting Control File and SPFILE Autobackup at 05-JUN-05
piece handle=C:\WINDOWS\SYSTEM32\C-3848249943-20050605-00 comment=NONE
Finished Control File and SPFILE Autobackup at 05-JUN-05
RMAN> LIST BACKUP OF DATABASE;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
64 Full 294M DISK 00:06:48 05-JUN-05
BP Key: 64 Status: AVAILABLE Compressed: NO Tag: TAG20050605T205418
Piece Name: C:\TEMP\21GM84JR_1_1
List of Datafiles in backup set 64
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSTEM_0FF6S1HG_.DBF
2 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_UNDOTBS1_0FF6TCKN_.DBF
3 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSAUX_0FF6TVYW_.DBF
4 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_USERS_0FF6VPMW_.DBF
5 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_PERFSTAT_18MCZRH3_.DBF
RMAN> list backup of datafile 1;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
64 Full 130M DISK 00:06:48 05-JUN-05
BP Key: 64 Status: AVAILABLE Compressed: NO Tag: TAG20050605T205418
Piece Name: C:\TEMP\21GM84JR_1_1
List of Datafiles in backup set 64
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSTEM_0FF6S1HG_.DBF
RMAN> LIST INCARNATION;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORA10G 3848249943 CURRENT 1 21-JUN-04
RMAN> report schema;
Report of database schema
File K-bytes Tablespace RB segs Datafile Name
---- ---------- -------------------- ------- -------------------
1 307200 SYSTEM *** C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSTEM_0FF6S1HG_.DBF
2 204800 UNDOTBS1 *** C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_UNDOTBS1_0FF6TCKN_.DBF
3 122880 SYSAUX *** C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_SYSAUX_0FF6TVYW_.DBF
4 25600 USERS *** C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_USERS_0FF6VPMW_.DBF
5 132928 PERFSTAT_TBS *** C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_PERFSTAT_18MCZRH3_.DBF
RMAN> quit;
Como visto acima, existem vários sabores de listagens e reports no rman, podemos ver os backups realizados. Agora como já mencionado acima, perdi o datafile #5 e vamos recuperá-lo.
RMAN> restore datafile 5 preview;
Starting restore at 05-JUN-05
using channel ORA_DISK_1
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
64 Full 4M DISK 00:06:48 05-JUN-05
BP Key: 64 Status: AVAILABLE Compressed: NO Tag: TAG20050605T205418
Piece Name: C:\TEMP\21GM84JR_1_1
List of Datafiles in backup set 64
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
5 Full 1853553 05-JUN-05 C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_PERFSTAT_18MCZRH3_.DBF
Finished restore at 05-JUN-05
RMAN> restore datafile 5;
Starting restore at 05-JUN-05
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00005 to C:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_PERFSTAT_18MCZRH3_.DBF
channel ORA_DISK_1: restored backup piece 1
piece handle=C:\TEMP\21GM84JR_1_1 tag=TAG20050605T205418
channel ORA_DISK_1: restore complete
Finished restore at 05-JUN-05
RMAN> recover database;
Starting recover at 05-JUN-05
using channel ORA_DISK_1
starting media recovery
media recovery complete
Finished recover at 05-JUN-05
RMAN>
Tenha em mente que isso reflete apenas um teste simples para demonstração do RMAN, não siga os passos acima em uma base de produção, primeiro faça um estudo do RMAN para obter entendimento, planeje sua estratégia de backup e recovery, teste do backup e (principalmente) do recovery, teste novamente e outra vez, agora sim -- faça a implementação em produção.