Documente Academic
Documente Profesional
Documente Cultură
RMAN.........................................................................................................................................2
Installation RMAN..................................................................................................................2
Cration du catalogue.........................................................................................................2
Connexions.........................................................................................................................2
Enregistrer une base............................................................................................................2
Options................................................................................................................................2
Lecteur de Bandes SBT (Networker)..................................................................................3
BCT Block Change Tracking..............................................................................................3
Sauvegarder.............................................................................................................................3
Sauvegarder.........................................................................................................................3
Incrmentale........................................................................................................................4
Valider ses sauvegardes.......................................................................................................4
Copie dun fichier...............................................................................................................4
Restauration............................................................................................................................4
RMAN sur Disque..................................................................................................................5
Sauvegarde..........................................................................................................................5
Sauvegarde dune copie de la base.....................................................................................5
Restore (controlfile / database ; resetlogs)..........................................................................6
Restore (database ; resetlogs)..............................................................................................6
RMAN sur Bandes..................................................................................................................6
Rplication de la base Offline.............................................................................................6
Sauvegarde Full..................................................................................................................7
Rplication de la base Online.............................................................................................8
Sauvegarde Incrmentale....................................................................................................8
Purge Catalogue..................................................................................................................9
Contrle / Gestion...............................................................................................................9
Restore..............................................................................................................................10
Gestion du Catalog................................................................................................................11
Maintenance......................................................................................................................11
Suppression dune sauvegarde..........................................................................................11
Incarnation / resetlogs_id..................................................................................................11
Sauvegarde / Restauration en cours......................................................................................13
Backup Catalog.....................................................................................................................13
Sauvegarde Catalogue.......................................................................................................14
Export Catalogue..............................................................................................................14
Restauration Catalogue.....................................................................................................14
Import Catalogue..............................................................................................................14
Purge catalog.....................................................................................................................14
Create catalog....................................................................................................................15
Restauration des Archivelogs................................................................................................15
RMAN
Fonctionnement et configuration de RMAN http://laurent.leturgez.free.fr/spip.php?article14
Advance RMAN Recovery Techniques
http://docs.oracle.com/cd/B14117_01/server.101/b10734/rcmrecov.htm
Installation RMAN
Cration du catalogue
Cration du tablespace qui va hberger les donnes du catalogue
$ sqlplus / as sysdba
SQL> create tablespace rman_ts datafile
2
'/u01/app/oracle/oradata/orcl/rman_01.dbf'
3
size 25M extent management local
4
/
Cration de lutilisateur
SQL> create user rman_db identified by rman_db
2 default tablespace rman_ts
3 quota unlimited on rman_ts
4 account unlock
5 /
SQL> grant recovery_catalog_owner to rman_mydb ;
SQL> grant connect,resource to rman_mydb ;
Crer le catalogue
$ rman catalog rman_db/rman_db@orcl log=catalog
RMAN> create catalog tablespace rman_ts;
Connexions
$ rman catalog rman_user/mdp[@RMAN_DB]
RMAN> connect catalog rman_user/mdb[@DB]
$ rman target sys/mdp[@SID]
RMAN> connect target sys/mdb[@SID]
Connexion un catalogue
Connexion une base cible
Connexion au catalogue
Puis connexion la base
Options
RMAN> show all ;
Configure [default] device type to sbt;
Configure retention policy to recover
windows of 7 days ;
20 May
Test simple
RMAN> run {
allocate channel t1 type 'SBT_TAPE';
send
'NSR_ENV=(NSR_SERVER=nsr_host,NSR_CLIENT=hostname,NSR_DATA_VOLUME_POOL=pool)';
CROSSCHECK ARCHIVELOG ALL;
}
Dsactiver BCT
Etat dactivation BCT
Sauvegarder
Sauvegarder
Sauvegarde complte
Backup database plus archivelog ;
Sauvegarde un tablespace
Backup tablespace system, users, tools, undotbs;
Sauvegarde un datafile
SQL> select file_id,file_name from dba_data_files;
RMAN> backup datafile 4;
Sauvegarde un controlfile
Backup current controlfile;
Autres paramtres
Format /tmp/%U
Filesperset 20
Maxsetsize 5G
Copies 2
TAG backup_du_lundi
Ex :
RMAN>
RMAN>
%';
RMAN>
RMAN>
Incrmentale
Backup incremental level 0 database;
Backup incremental level 1 cumulative database;
La premire complte
Restauration
Restauration complte
Startup [Force] mount ;
Restore database ;
Recover database ;
Alter database open ;
Restauration incomplte
Run {
Set until time = 2000-12-09 11:44:00;
Restore database ;
Recover database ;
Alter database open resetlogs ;
}
Format NLS_DATA_FORMAT
Restauration un tablespace
Run {
Sql alter tablespace users offline;
Set newname for datafile 8 to /dir/file.dbf;
Restore tablespace users ;
Switch datafile all ;
Recover tablespace users ;
Restauration un datafile
Sql alter database datafile 9 offline;
Restore datafile 9 ;
Recover datafile 9 ;
Sql alter database datafile 9 online;
Restauration un controlefile
Startup nomount ;
Restore controlfile ;
Alter database mount ;
Recover database ;
Alter database open resetlogs ;
}
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
exit;
EOF"
Arrt de la base
Retour des droits dorigines
Dmonter les FS, Exporter les VG
Sauvegarde Full
Script SAUVEGARDE FULL (exemple avec Networker)
Base de donne (incremental level 0 database)
Archivelog
ControlFile
> rman target / catalog rman/${PASSWD}@${TNS} @/u04/rman/restaure.rcv
> cat /u04/rman/restaure.rcv
run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
allocate channel t3 type 'SBT_TAPE';
allocate channel t4 type 'SBT_TAPE';
send 'NSR_ENV=(NSR_SERVER=${NWSERVER},NSR_CLIENT=${NWCLIENT},
NSR_DATA_VOLUME_POOL=${NWPOOL},NSR_SAVESET_BROWSE=${NWBROWSE},
NSR_SAVESET_RETENTION=${NWRETENTION})';
CROSSCHECK ARCHIVELOG ALL;
CATALOG CONTROLFILECOPY '${CNTRLCOPY}';
BACKUP TAG='${SID}_base_incr0_${SVGDATE}' incremental level 0 database FORMAT
'${SID}_base_incr0_${SVGDATE}_%U';
BACKUP TAG='${SID}_archivelog_${SVGDATE}' archivelog all FORMAT '$
{SID}_archivelog_${SVGDATE}_bck_%U';
BACKUP TAG='${SID}_cntrl_incr0_${SVGDATE}' FORMAT '${SID}_cntrl_${SVGDATE}_
%U' CONTROLFILECOPY '${CNTRLCOPY}';
release channel t1;
release channel t2;
release channel t3;
release channel t4;
}
EXIT
Split VG arch
Partie excuter sur le serveur hbergeant la copie Il faut mettre la base en END BACKUP
Importer les VG, monter les FS
Changer les droits en oracle
SQL> startup mount ;
Mount DB
SQL> alter database end backup ;
Suspension de la base
(cf. Sauvegarde Full)
BACKUP de la base
(cf. Purge Catalog)
Purge Catalogue
SQL> shutdown immediate
Arrt de la base
chown R ora<sid> ...
Retour des droits dorigines
exportvg ... ; umount ...
Dmonter les FS, Exporter les VG
importvg ... ; mount ...
chown R oracle ...
Sauvegarde Incrmentale
Script SAUVEGARDE INCREMENTAL (exemple avec Networker)
rman <<EOF
connect target
connect catalog rman/${PASSWD}@${TNS}
run {
allocate channel t1 type 'SBT_TAPE';
send 'NSR_ENV=(NSR_SERVER=${NWSERVER},NSR_CLIENT=${NWCLIENT},
NSR_DATA_VOLUME_POOL=${NWPOOL})';
CROSSCHECK ARCHIVELOG ALL;
CATALOG CONTROLFILECOPY '${CNTRLCOPY}';
BACKUP TAG='${SID}_base_incr1_${SVGDATE}' incremental level 1 cumulative
database FORMAT '${SID}_base_incr1_${
SVGDATE}_%U';
BACKUP TAG='${SID}_archivelog_${SVGDATE}' archivelog all FORMAT '$
{SAP_INSTANCE}_archivelog_${SVGDATE}_%U';
BACKUP TAG='${SID}_cntrl_incr1_${SVGDATE}' FORMAT '${SID}_cntrl_${SVGDATE}_
%U' CONTROLFILECOPY '${CNTRLCOPY}';
release channel t1;
}
EXIT
EOF
Purge Catalogue
su - ${ORAU} -c "rman target / catalog ${TNS_STRING} << EOF
run {
allocate channel t1 type 'SBT_TAPE';
send 'NSR_ENV=(NSR_SERVER=${NWSERVER},NSR_CLIENT=${NWCLIENT})';
CROSSCHECK BACKUP;
DELETE NOPROMPT EXPIRED BACKUP COMPLETED BEFORE 'SYSDATE-${NBRE_JOURS}'
DEVICE TYPE sbt;
DELETE NOPROMPT EXPIRED BACKUP OF ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'
DEVICE TYPE sbt;
release channel t1;
}
EXIT
EOF" > $LOG_FULL 2>&1
Contrle / Gestion
Liste les sauvegardes (ici SID=YT1)
$ rman target / catalog rman/oracle@HostBackup
RMAN> list backup summary ;
Key
TY LV S Dev Type Time #Pieces #Copies Compressed Tag
------- -- -- - -------- ---- ------- ------- ---------- --3176091 B F A DISK
19-OCT-11 1 1 YES YT1_BASE_20111019
3176101 B A A DISK
19-OCT-11 1 1 YES YT1_ARCH_20111019
3176108 B F A DISK
19-OCT-11 1 1 NO
YT1_CNTRL_20111019
4905956 B 0 A SBT_TAPE 16-NOV-11 1 1 NO
YT1_BASE_INCR0_20111116-122814
4905957 B 0 A SBT_TAPE 16-NOV-11 1 1 NO
YT1_BASE_INCR0_20111116-122814
4905958 B 0 A SBT_TAPE 16-NOV-11 1 1 NO
YT1_BASE_INCR0_20111116-122814
4905959 B 0 A SBT_TAPE 16-NOV-11 1 1 NO
YT1_BASE_INCR0_20111116-122814
4906120 B A A SBT_TAPE 16-NOV-11 1 1 NO
YT1_ARCHIVELOG_20111116-122814
4906121 B A A SBT_TAPE 16-NOV-11 1 1 NO
YT1_ARCHIVELOG_20111116-122814
4906122 B A A SBT_TAPE 16-NOV-11 1 1 NO
YT1_ARCHIVELOG_20111116-122814
4906123 B A A SBT_TAPE 16-NOV-11 1 1 NO
YT1_ARCHIVELOG_20111116-122814
4906285 B F A SBT_TAPE 16-NOV-11 1 1 NO
YT1_CNTRL_INCR0_20111116-122814
RMAN> list backup tag YT1_BASE_INCR0_20111116-122814
BS Key Type LV Size
Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ --------------4905956 Incr 0 167.11G
SBT_TAPE
00:21:24
16-NOV-11
BP Key: 4905960
Status: AVAILABLE Compressed: NO Tag: YT1_BASE_...
Handle: YT1_base_incr0_20111116-122814_dumrq28o_1_1
Media:
List of Datafiles in backup set 4905956
File LV Type Ckp SCN
Ckp Time Name
---- -- ---- ---------- --------- ---1
0 Incr 1845443701 16-NOV-11 /data/YT1/oracle/system_1/system.data1
6
0 Incr 1845443701 16-NOV-11 /sapdata/YT1/oracle/data2/data001.dbf
...
Restore
Lister et choisir la sauvegarde restaurer TAG_CNTRL et TAG_BASE
Exemple dune restauration avec incrmentale
TAG_CNTRL=SID_CNTRL_INCR1_20101124-114522 (prendre le dernier incremental)
TAG_BASE= SID_BASE_INCR0_20101121-105531 (prendre le dernier full)
$ rman target / catalog rman/oracle@HostBackup
RMAN> startup nomount ;
RMAN> list backup summary ;
Restauration du database
RMAN> set parallelmediarestore off;
RMAN> run {
allocate channel t1 type 'SBT_TAPE';
allocate channel t2 type 'SBT_TAPE';
allocate channel t3 type 'SBT_TAPE';
allocate channel t4 type 'SBT_TAPE';
send 'NSR_ENV=(NSR_SERVER=<NWSERVER>)';
restore database from tag '<TAG_BASE>';
release channel t1;
release channel t2;
release channel t3;
release channel t4;
}
SQL> exit;
Gestion du Catalog
Maintenance
Report need backup ;
Report obsolete ;
delete obsolete ;
Resync catalog ;
Crosscheck backup ;
Crosscheck archivelog all;
Delete backup tag=TAG
Incarnation / resetlogs_id
Liens resetlogs_id (incarnation) avec nom de fichiers archlogs
SQL> startup nomount ;
SQL> select incarnation#, resetlogs_change#, resetlogs_time, status,
resetlogs_id from v$database_incarnation ;
INCARNATION# RESETLOGS_CHANGE# RESETLOGS_TIME STATUS RESETLOGS_ID
------------ ----------------- --------------- ------- -----------12
272142935 16-JUL-12
PARENT
788801284
13
289922898 08-AUG-12
CURRENT
790786773
DB ID
---------------114972913
114972913
114972913
114972913
Changer dincarnation
RMAN> reset database to incarnation N
Exemples
Resetting RMAN to a Previous Incarnation in NOCATALOG
CONNECT TARGET / NOCATALOG
# step 1: start and mount a control file that knows about the incarnation to
which
# you want to return. if the current control file does not know about it, then
# you must restore an older control file
STARTUP NOMOUNT;
RESTORE CONTROLFILE UNTIL TIME 'SYSDATE-250';
ALTER DATABASE MOUNT;
# step 2: obtain the primary key of old incarnation
LIST INCARNATION OF DATABASE trgt;
List of
DB Key
------1
1
Database Incarnations
Inc Key DB Name DB ID
------- -------- ------------2
TRGT
1334358386
116
TRGT
1334358386
STATUS
------PARENT
CURRENT
Reset SCN
---------154381
154877
Reset Time
---------OCT 30 2001
OCT 30 2001
Database Incarnations
Inc Key DB Name DB ID
------- -------- ---------------2
TRGT
1334358386
116
TRGT
1334358386
311
TRGT
1334358386
STATUS
------PARENT
PARENT
CURRENT
Reset SCN
---------154381
154877
154877
Reset Time
---------OCT 30 2001
OCT 30 2001
AUG 13 2002
===========================================================
=============== ERROR MESSAGE STACK FOLLOWS ===============
===========================================================
failure of resync command on default channel at 11/01/2001 12:00:43
target database incarnation not found in recovery catalog
Nouvelle version
alter session set nls_date_format='dd/mm/yy hh24:mi:ss'
/
select SID, START_TIME,TOTALWORK, sofar, round(sofar/totalwork,3) * 100 done,
sysdate + TIME_REMAINING/3600/24 end_at
from v$session_longops
where totalwork > sofar
AND opname NOT LIKE '%aggregate%'
AND opname like 'RMAN%'
/
Backup Catalog
Variables pour scripts suivants
SVGDATE=`date +%Y%m%d-%H%M%S`
DISK=/oracle/svg/backup_catalog
Sauvegarde Catalogue
$ export ORACLE_SID=<SID_RMAN>
$ rman target /
RMAN> shutdown immediate
RMAN> startup mount
RMAN> run {
BACKUP as compressed backupset TAG='${SID}_base_${SVGDATE}' incremental level 0
database FORMAT '${DISK}/${SAP_INSTANCE}_base_incr0_${SVGDATE}_%U';
BACKUP TAG='${SID}_cntrl_${SVGDATE}' CURRENT CONTROLFILE FORMAT
'${DISK}/${SID}_cntrl_${SVGDATE}_%U';
}
Export Catalogue
$ exp rman/${PASSWD}@${SID} file=${FILE_DMP} log=${LOG} owner=rman
statistics=NONE
Restauration Catalogue
$ rman target /
RMAN> run {
startup nomount ;
restore controfile from ${DISK}/${CONTROLFILE};
mount database;
restore database;
sql alter database open resetlogs ;
}
Import Catalogue
Suppresion du schma (exemple dans un script)
sqlplus /nolog <<EOF
connect / as sysdba
whenever sqlerror exit 1
drop user rman cascade;
EOF
Dmarrage du listener
$ lsnrctl start listener
Purge catalog
Purge dans catalog
rman target / catalog ...
RMAN> run {
allocate channel t1 type 'SBT_TAPE';
send 'NSR_ENV=NSR_SERVER=${NWSERVER},NSR_CLIENT=${NWCLIENT})';
crosscheck backup ;
Autre methode
RMAN> CHANGE ARCHIVELOG like '%317009%' UNCATALOG;
Create catalog
Cas o une sauvegarde sur disque est copi dun serveur vers un autre
RMAN> catalog start with '/<dir_backup> ;