RMAN Recovery Manager (Mise en page en cours …)

RMAN est un outil de sauvegarde a chaud de base de données Oracle et bien sur de restoration.

Les champs d’actions de RMAN

  • Sauvegarder la base de données, les tablespaces, les fichiers de données, les fichiers de contrôles et les journaux archivés
  • Stocker les opérations de sauvegarde et de récupération exécutées fréquemment
  • Effectuer une sauvegarde incrémentielle au niveau des blocs
  • Sauter les blocs inutilisés
  • Préciser les limites pour les sauvegardes
  • Détecter les blocs endommagés au cours de la sauvegarde

(V$BACKUP_CORRUPTION et V$COPY_CORRUPTION)

  • Augmenter les performances :
  • L’exécution automatique en parallèle
  • La réduction du nombre d’enregistrements de journalisation
  • La réduction du nombre d’E/S pour les sauvegardes
  • La transmission en continu sur bande
  • Gérer les tâches de sauvegarde et de récupération

Le vocable RMAN

Le controlfile : Fichier contenant la description physique de l’instance. Ses fichiers de données, ses fichiers de redo et son controlfile.

La recovery : Etape succèdant à la restauration des fichiers qui consiste à récupérer les données au plus près du crash.

L’ incarnation : Une ‘version’ de l’instance à une date donnée.

Le SCN : Le Sequence Chnage Number, le numéro de mise à jour d’un fichier de donnée (cf v$datafile_header colonne )

Le fichier à sauvegarder ou container est un fichier FIFO (ou le container) dans /tmp de la taille du DB_BLOCK_SIZE. Ce fichier porte le nom du fichier qui sera sauvegardé sur bande.

La balise permet à RMAN de se situer un ‘container’ dans le temps. Un balise (TAG en anglais) regroupe 1 à n SCN et 1 à n Séquence d’archievlog.

Les composants RMAN

Station

Cliente

c

Base de données du catalog

Sessions serveur : Process unix

Canal : connexion avec la base de données cible

Interrogation : processus connecté à la cible pour localiser la fin des appels RPC

MML : Média Management Library, permet la sauvegarde et la restauration vers les systèmes de stockage

CONFIGURATION

Installation

Pré-requis

Sécuriser la connexion sur la base de données cible (target)

Création d’un fichier password

orapwd file=orapwSID password=password entries=n

Fichier init.ora

Mettre le paramètre remote_login_passwordfile= exclusive

Autorise des utilisateurs AUTRES que SYS et SYSTEM à se connecter en tant que SYSDBA ou SYSOPER.

Créer un user oracle avec le privilège SYSDBA

create user rman identified by rman ;

grant sysdba to rman;

RMAN et le PARALLELISME utilise la LARGE_POOL pensez donc à le paramètrer de façon à avoir AU MOINS le double du DB_BLOCK_BUFFER (Ou DB_CACHE_SIZE)

Utilisation du fichier de contrôle

Connexion sans catalog

Sur le serveur RMAN

L’option NOCATALOG est par défaut (sous 9i). La commande ci-dessous est équivalente à un >rman tout court sous 9i.

rman / nocatalog

Sur un client

rman / rman/rman@CATAL nocatalog

Autre méthode

rman nocatalog

RMAN> connect target rman/rman@

Autres arguments

rman / nocatalog log ‘/fichier.log’

Pratique lorsqu’on veut garder la traces des commandes exécutées sous RMAN. En effet il n’y a pas d’option équivalente au SPOOL du SQLPLUS.

Suivit de APPEND : indique que le nouveau message doit être ajouté a la fin du fichier de log

rman / nocatalog log ‘/fichier.log’ APPEND

On peut aussi lancer RMAN avec un script RMAN, utile dans un shell ou un Cron.

RMAN CATALOG= rman/rman@ CMDFILE = ‘/fichier.rman’

Equivaut aussi à (Depuis la 8i) :

RMAN CATALOG= rman/rman@ @//fichier.rman

Paramètre d’utilisation du fichier de contrôle

Quand on n’utilise pas de catalogue, le référentiel de RMAN est stockée dans le fichier de contrôle de la base de données cible. Ce référentiel est constitué de métadonnées concernant la base de données cible et les opérations de sauvegarde et de restauration.

Le paramètre CONTROL_FILE_RECORD_KEEP_TIME définit le nombre minimum de jours durant laquelle les informations sont stockées dans le fichier de contrôle avant d’être écrasées.

Allocation de canal:

Un canal représente un flux de données vers un périphérique.

On peut soit les allouer manuellement soit automatiquement.

L’allocation manuelle est prioritaire sur l’allocation automatique.

Allocation automatique (par défaut)

Cette allocation se base sur un DEVICE par DEFAUT qu’il faut définir. S’il n’est pas définit le device par défaut est le disque.

RMAN>CONFIGURE DEFAULT DEVICE TYPE TO sbt ;

Nb : La commande show default device type; liste le device par défaut.

Le parallélisme

Le degré de parallèlisme à rman combien de sauvegardes il peut faire simultanément. Ceci équivaut à une allocation automatique de canaux multiples :

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2 FORMAT ‘//%U’;

Equivaut à :

RMAN> ALLOCATE CHANNEL disk1 DEVICE TYPE disk_1 FORMAT ‘//%U’;

RMAN> ALLOCATE CHANNEL disk2 DEVICE TYPE disk_2 FORMAT ‘//%U’;

Les options

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT = ‘//%U‘ ;

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2G ;

Allocation manuelle

RMAN> run {

ALLOCATE CHANNEL c1 TYPE disk ;

BACKUP ……………..;}

la vue V$BACKUP_DEVICE permet d’identifier les types de périphérique pris en charge.

Désallouer les canaux:

RMAN> run {

2> ………….

3> ……………..

4> RELEASE CHANNEL c1;}

Commandes de RMAN:

Les commandes RMAN sont soit directes (List backup of archivelog) ou

RUN

Commande de travail

RMAN> RUN {

> backup

> incremental level 0

> format ‘//%d_%s_%p’

> FILESPERSET 5

> (database include current controlfile);

> sql ‘alter system archive log current’;}

La commande CONFIGURE

La commande configure permet de configurer les paramètres permanents

Configuration des canaux automatiques

RMAN >CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘//%U’ ;

Politique de rétention en précisant une période de récupération

RMAN>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS ;

Dans l’exemple ci-dessus la période de récupération est fixée à 7j. C’est-à-dire qu’en cas de crash la date la plus ancienne où RMAN pourra restaurer se situe 7j plus tôt.

Politique de rétention par redondance

Permet de conserver pas plus d’un certain nombre de sauvegarde ou copies (par défaut 1).

RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 1 ;

Dans l’exemple ci-dessus on garde au moins 1 copie d’un jeu de sauvegarde.

Ainsi sous DECLAMAJ la politique de rétention est :

CONFIGURE RETENTION POLICY TO REDUNDANCY 1;

Voir le résultat du « report obsolete ».

Nb : les deux règles de conservation s’excluent mutuellement

Configuration des jeux de sauvegarde duplexés

RMAN permet jusqu ‘à quatre copies de chaque élément de sauvegarde

RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;

Configuration de l’optimisation de la sauvegarde

Dans le cas d’une sauvegarde incrémentale, RMAN scanne chaque blocs d’un fichier de données afin de ne sauvegader que les blocs modifiées depuis la dernières sauvegarde.

L’option de sauvegarde, OPTIMIZATION ON évite ce ‘scan’ car ces informations sont notées dans le dictionnaire Oracle. Cette option indique à RMAN de récupérer ces informations dans le dictionnaire, de comparer avec sa dernière sauvegarde et de décider ou non sa sauvegarde.

RMAN>CONFIGURE BACKUP OPTIMIZATION ON.

Rétablissement des valeurs par défaut

RMAN>CONFIGURE RETENTION POLICY CLEAR ;

RMAN>CONFIGURE CHANNEL DEVICE TYPE sbt CLEAR ;

La commande SHOW

Affiche les paramètres de configuration persistants

Affiche tous les paramètres

RMAN>SHOW ALL ;

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF;

CONFIGURE DEFAULT DEVICE TYPE TO ‘SBT_TAPE’;

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO ‘%F’; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F’; # default

CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oracle/ora920/dbs/snapcf_SILOPOPU.f’; # default

Les paramètres de configuration des canaux automatiques

 

RMAN>SHOW CHANNEL ;

RMAN>SHOW DEVICE TYPE ;

RMAN>SHOW DEFAULT DEVICE TYPE ;

Les paramètres de configuration de la règle de conservation de rman

RMAN> show retention policy;

lancement de la resynchronisation complète du catalogue de récupération

resynchronisation complète terminée

paramètres de configuration RMAN :

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

RMAN>

Le nombre de copie de sauvegarde

RMAN> RMAN> SHOW DATAFILE BACKUP COPIES ;

paramètres de configuration RMAN :

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

RMAN>

La taille maximale des jeux de sauvegarde

RMAN> SHOW MAXSETSIZE;

paramètres de configuration RMAN :

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

RMAN>

Les tablespaces exclus des sauvegardes totales de la base de données

RMAN> SHOW EXCLUDE ;

paramètres de configuration RMAN :

la configuration RMAN n’a pas de paramètres stockés, ni de paramètres par défaut

RMAN>

L’état d’optimisation de la sauvegarde

RMAN> SHOW BACKUP OPTIMIZATION ;

paramètres de configuration RMAN :

CONFIGURE BACKUP OPTIMIZATION OFF;

RMAN>

La commande LIST

Comment lire le résultat des commandes LIST :

Clé d’élément de sauvegarde : 19   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /opalebackup/sauv_BOREAxxx_0jfuflpk_1_1.bckp

Liste des fichiers de données dans l’ensemble de sauvegarde 19

Fichier LV Type SCN Ckp   Heure Ckp Nom

—- — —- ———- ——— —-

1   0 Incr 878935     27/08/04 /opale/oradata/BOREA/SYSTEM01.dbf

2   0 Incr 878935     27/08/04 /opale/oradata/BOREA/UNDO01.dbf

3   0 Incr 878935     27/08/04 /opale/oradata/BOREA/OPALETABLES.dbf

4   0 Incr 878935     27/08/04 /opale/oradata/BOREA/OPALEINDEX.dbf

5   0 Incr 878935     27/08/04 /opale/oradata/BOREA/OPALEBLOB.dbf

Clé de l’élément de sauvegarde : En anglais le BackupSet, c’est ce chiffre qu’il faut faire référence lors d’un crosscheck.

Liste des sauvegardes

Liste les sauvegardes de tous les fichiers de la base de données qui ont été sauvegardées :

RMAN> LIST BACKUP OF DATABASE ;

Liste tous les jeux de sauvegardes contenant le fichier de données fichier_données.dbf :

RMAN> LIST BACKUP OF DATAFILE ‘fichier_données.dbf’;

Liste toutes les copies des fichiers de données du tablespace SYSTEM

RMAN>LIST COPY OF TABLESPACE ‘SYSTEM’;

La commande REPORT

Cette commande permet de générer un certain nombre d’état a partir du référentiel

Report Schema

Liste les tablespaces de la base cible (TARGET) à sauvegarder

RMAN> report schema;

utilisation du fichier de contrôle de la base de données cible au lieu du catalogue de récupération

Etat du schéma de base de données

Fichier Ko     Tablespace           Segs RB Nom de fichier de données

——- ——- ——————– ——- —————————

1       262144 SYSTEM               ***     /opale/oradata/BOREA/SYSTEM01.dbf

2       131072 UNDO                 ***     /opale/oradata/BOREA/UNDO01.dbf

3       131072 OPALE_TABLES         ***     /opale/oradata/BOREA/OPALETABLES.dbf

4       65536   OPALE_INDEXES       ***     /opale/oradata/BOREA/OPALEINDEX.dbf

5       131072 OPALE_BLOBS         ***     /opale/oradata/BOREA/OPALEBLOB.dbf

6       131072 TOOLS               ***     /opale/oradata/BOREA/TOOLS01.dbf

Les sauvegardes pouvant être supprimées

RMAN> REPORT OBSOLETE;

Les fichiers irrécupérables

RMAN> REPORT UNRECOVERABLE;

REPORT NEED BACKUP

Affiche tous les fichiers de données qui nécessitent une sauvegarde

On suppose que la sauvegarde la plus récente est utilisée lors d’une restauration

RMAN > REPORT NEED BACKUP;

Options de ce report :

RMAN > REPORT NEED BACKUP INCREMENTAL 3;

RMAN > REPORT NEED BACKUP DAYS 3;

RMAN > REPORT NEED BACKUP REDUNDANCY 3;

Incrémental : le nombre maximal de sauvegardes incrémentielles devant être restaurées

Days : le nombre maximal de jours depuis la dernière sauvegarde complète ou incrémentielle

Redundancy : indique le niveau minimum de redondance considéré comme nécessaire

Utilisation du catalogue

Introduction

Le catalogue est un référentiel facultatif qui contient des informations sur les éléments suivants:

  • Les jeux de sauvegarde et éléments de sauvegarde des fichiers de données et des fichiers de journalisation archivés ( ex : date et heure des sauvegarde)
  • Copie de fichiers de données
  • Fichiers de journalisation archivés
  • Structure physique de la base de donnée cible
  • Paramètres de configuration persistant de RMAN
  • Les scripts stockés

Permet la mise en œuvre des fonctions suivantes

  • Metadonnées concernant plusieurs bases cibles dans un catalogue unique
  • Métadonnées concernant plusieurs incarnations d’une seule base cible
  • Metadonnées historique
  • Génération d’état

Création du catalogue

Sur la base de données hébergeant le catalogue (CATAL)

Création d’un tablespace dédié

create tablespace cattbs

datafile ‘//xxxx.dbf’

size 50M ;

Création du user

create user rman identified by rman

default tablespace catal_tbs

temporary tablespace temp

quota unlimited on catal_tbs;

grant connect, resource to rman;

grant recovery_catalog_owner to rman;

nota : les privilèges du rôles :

select privilege from dba_sys_privs

where GRANTEE =’RECOVERY_CATALOG_OWNER’ ;

Création du catalogue

rman catalog rman/rman

RMAN> create catalog  ;

RMAN> exit

Enregistrement de la base de données dans le catalogue

rman catalog rman/rman@CATAL target /

RMAN> register database

Connexion avec catalog

rman target / catalog rman/rman@CATAL

Gestion du catalogue

La re-synchronisation

On doit re-synchroniser le catalogue après les opérations suivantes:

  • Ajout ou suppression d’un tablespace
  • Ajout ou suppression d’un fichier de données
  • Déplacement d’un fichier de base de données
  • Prendre en compte immédiate des derniers archive logs récents.

RMAN> RESYNC CATALOG ;

Incarnation

L’incarnation de base de données est un numéro qui permet d’identifier la version de la base de données avant la remise à zéro du numéro de séquence du journal

On utilise la commande RESET DATABASE pour que:

rman enregistre la nouvelle incarnation d’une base de données. C’est une alternative à la commande REGISTER DATABASE qui suit la création d‘un catalogue

RMAN> RESET DATABASE;

Erreur RMAN :

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of configure command at 08/10/2004 16:24:34

RMAN-06004: ORACLE error from recovery catalog database: RMAN-20003: target database incarnation not found in recovery catalog

Cela signifie qu’il y a une incohérence entre la date la dernière restauration/création de la base, appelée incarnation et celle répertoriée dans le catalog :

RMAN> list incarnation;

Liste des incarnations de base de données

Clé BdD Clé Inc Nom BdD ID BdD           CUR SCN réinit.Temps réinit.

——- ——- ——– —————- — ———- ———-

1       47     DECLAMAJ 173205540       YES 1         11/09/03

1       48     DECLAMAJ 173205540       NO 460656594 29/01/04

1       2       DECLAMAJ 173205540       NO 468488497 17/02/04

On voit que le catalogue RMAN situe sa dernière restauration le 11/09/03 (Création ?) alors que la dernière restoration date début Juin 2004.

Il faut donc ‘forcer’ Rman à prendre en compte la dernière restoration (i-e incarnation).

RMAN> reset database;

RMAN> list incarnation;

Liste des incarnations de base de données

Clé BdD Clé Inc Nom BdD ID BdD          CUR SCN réinit.Temps réinit.

——- ——- ——– —————- — ———- ———-

1       47     DECLAMAJ 173205540       NO 1         11/09/03

1       48     DECLAMAJ 173205540       NO 460656594 29/01/04

1       2       DECLAMAJ 173205540       NO 468488497 17/02/04

1       6653   DECLAMAJ 173205540       YES 1040768717 09/06/04

On peut annuler les effets d’un RESETLOGS avec la commande

RESET DATABASE TO INCARNATION xx ;

xx s’obtient avec la commande LIST INCARNATION OF DATABASE se trouve sous la colonne « Clé Incarnation ».

Scripts stockées

Comme les procédures stockées on peut stocker des scripts dans RMAN. (Peu utilis car les dba aiment bien maitriser leurs scripts)

Création de script

RMAN> SCRIPT full_backup {

2> BACKUP

3> FORMAT

4> FILESPERSET 5

5> database include current controlfile;

6> SQL ‘alter system archive log current’;

7> }

Exécution de script

RMAN> run{ execute script full_backup; }

Modifier un script

RMAN> REPLACE SCRIPT full_backup {

………..

FILESPERSET 3

…………

}

On doit ré-écrire la totalité du script

Suppression de script

RMAN> DELETE SCRIPT full_backup;

Affichage de script

RMAN> PRINT SCRIPT full_backup;

SAUVEGARDE

Introduction:

RMAN peut effectuer des sauvegardes

  • Base fermée

La base de donnée est montée (non ouverte)

Elle inclut les fichiers de données, les fichiers de contrôles et les fichiers de journalisation archivés.

  • Base ouverte

Les tablespaces ne doivent pas être mis en mode de sauvegarde

Elle inclut les fichiers de données, les fichiers de contrôles et les fichiers de journalisation archivés.

Les types de sauvegarde peuvent être du type

  • Copie d’image

Il s’agit de copies d’un fichier de données, d’un fichier de contrôle ou d’un fichier de journalisation archivé. Une copie peut être effectuée par RMAN ou un utilitaire OS

Une copie d’image d’un fichier de données se compose de tous les blocs du fichier y compris les blocs inutilisés.

  • Jeux de sauvegarde

Un jeu de sauvegarde peut comprendre un ou plusieurs fichiers de données, le fichier de contrôle ou des fichiers de journalisation archivés

Un jeu de sauvegarde peut être constitué de:

Une sauvegarde complète comprenant un ou plusieurs fichiers tous les blocs contenant des données associées aux fichiers précisés sont sauvegardés.

Une sauvegarde incrémentielle des fichiers de données comprenant uniquement les blocs qui ont été modifiés depuis la dernière sauvegarde incrémentielle.

Les sauvegardes incrémentielles nécessitent une sauvegarde de base (incrément 0)

Une opération de restauration est nécessaire pour extraire les fichiers d’un jeu de sauvegarde

Il n’y a pas de bloc inutilisé dans les jeux de sauvegarde

C’est la commande BACKUP qui crée le jeu de sauvegarde, le paramètre FILESPERSET contrôle le nombre de données qu’il contient

Un jeu de sauvegarde se compose généralement d’un seul élément de sauvegarde

Un élément de sauvegarde est un fichier physique

On limite sa taille a l’aide du paramètre MAXPIECESIZE dans la commande CONFIGURE CHANNEL ou ALLOCATE CHANNEL

RMAN> RUN {

ALLOCATE CHANNEL t1 TYPE ‘SBT’

MAXPIECESIZE = 4G ;

BACKUP

FORMAT ‘df_%t_%s_%p’ FILESPERSET 3

(tablespace USER) ;     }

Nb : On sauvegarde le fichier de contrôle à l’aide de la syntaxe INCLUDE CONTROLFILE

La commande BACKUP:

Option Définition
FULL Copie tous les blocs dans je jeu de sauvegarde en sautant les blocs jamais utilisés. Ne saute pas les blocs pour des fichiers de jounalisation ou fichier de contrôle
INCREMENTAL

LEVEL

Integer

Copie les blocs de données qui ont été modifiés depuis la dernière sauvegarde incrémentielle de niveau (de 1 à 4)

Vérifie qu’une sauvegarde de niveau 0 ou d’un niveau supérieur éxiste

Ne prend pas en charge les fichiers de contrôle et les fichiers de journalisation archivés

FILESPERSET

Integer

Compare la valeur du paramètre à une valeur calculée (nombre de fichiers sauvegardés par nombre de canaux) et prend la plus petite valeur garantissant ainsi l’utilisation de tous les canaux
SKIP Indique les fichiers de données ou les fichiers de journalisation archivés à exclure

Otpions :

offline : exclut les fichiers de données offline

readonly : exclut les fichiers de données en read only

inaccessible : exclut les fichiers qui ne peuvent être lus à cause d’erreur E/S

MAXSETSIZE

Integer

Indique une taille maximale pour le jeu de sauvegarde en octets (par défaut), kilooctects(ko), mégaoctets(Mo), gigaoctets(Go) rman essaye de limiter tous les jeux de sauvegarde a cette taille
DISKRATIO

Integer

Invite rman à affecter uniquement des fichiers de données aux jeux de sauvegarde répartis sur le nombre indiqué de disques
DELETE INPUT Supprime les fichiers d’entrée dès lors que la création du jeu de sauvegarde a abouti.
INCLUDE CURRENT

CONTROLFILE

Créé un cliché (snapshot) du fichier de contrôle en cours et le place dans chaque jeu de sauvegarde par cette clause
FORMAT Format du nom de sortie. Les paramètres de format peuvent être utilisés séparément ou combinés
%c Indique le numéro de copie de l’élément de sauvegarde dans un jeu de sauvegarde dont les éléments sont duplexés.
%p Indique que l’élément dans le jeu de sauvegarde, commence à 1 pour chaque jeu de sauvegarde et augmente de 1 à chaque création d’élément de sauvegarde
%s Indique le numéro du jeu de sauvegarde, ce nombre est un compteur dans le fichier de contrôle, qui augmente pour chaque jeu de sauvegarde
%d Indique le nom de la base de données
%n Indique le nom de la base de données, complété à droite par des caractères x afin d’atteindre une longueur totale de 8 caractères
%t Indique l’horodatage du jeu de sauvegarde. Valeur de 4 octets issue du nombre de secondes écoulées depuis un temps de référence fixe.
%u Indique un nom de 8 caractères constitué des représentations comprimées du numéro du jeu de sauvegarde et de l’heure de sa création
%U Précise un raccourci pratique de %u_%p_%c qui garantit l’unicité des noms de fichier de sauvegarde générés (valeur par défaut)

Multiplexage

Lecture simultanée de plusieurs fichiers et les écrire dans le même élément de sauvegarde

On écrit n blocs du fichier 1, puis n blocs du fichier 2, puis n blocs du fichier 3, puis n blocs du fichier 1 etc, etc……….

Contrôler le paramètre FILESPERSET dans la commande BACKUP

Contrôler le paramètre MAXOPENFILES des commandes ALLOCATE CHANNEL et CONFIGURE CHANNEL

Parallélisme

Il est possible de configurer les sauvegardes en parallèle en:

  1. En allouant manuellement plusieurs canaux

RMAN> run

{

allocate channel c1 type sbt ;

allocate channel c2 type sbt ;

allocate channel c3 type sbt ;

backup

incremental level = 0

format ‘//df_%d_%s_%p.bkp’

(datafile 1,4,5 channel c1 tag =DF1)

(datafile 2,3,9 channel c2 tag =DF2)

(datafile 6,7,8 channel c3 tag =DF3);

alter system archive log current ;

}

En affectant une valeur supérieure à 1 au paramètre PARALLELISM de la commande configurée

RMAN> run

{

set parallelism 3

allocate channel c1 type sbt ;

backup

incremental level = 0

format ‘//df_%d_%s_%p.bkp’

(datafile 1,2,3,4,5,6,7,8,9);

alter system archive log current ;

}

Les 3 canaux seront attribuées automatiquement.

Jeu de sauvegardes duplexées

On peut créer jusqu’à 4 copies identiques de chaque élément de sauvegarde

RMAN> BACKUP COPIES 2 DATAFILES 1 FORMAT ‘/backup1/%U’,‘/backup2/%U’;

La commande créer deux copies de la sauvegarde du datafile 1 dans les répertoires backup1 et backup2.

Sauvegarde des jeux de sauvegardes

On peut sauvegarder les jeux de sauvegarde avec la commande BACKUP BACKUPSET

Sauvegarde des fichiers de journalisation archivés

On peut sauvegarder les fichiers de journalisation archivés avec les commandes

BACKUP ARCHIVELOG

BACKUP …….. PLUS ARCHIVELOG

RMAN> BACKUP

FORMAT ‘/chemin/ar_%t_%s_%p’

ARCHIVELOG ALL DELETE INPUT ;

Sauvegarde tous les fichiers de journalisation archivés une fois copiés ils sont supprimés du disque avec la mention « deleted » dans la vue V$ARCHIVED_LOG

Sauvegardes Incrémentielles

Sauvegarde incrémentielle différentielle

Contient uniquement les blocs modifiés par rapport à un niveau n ou inférieur

RMAN > BACKUP INCREMENTAL level 0 database ;

RMAN > BACKUP INCREMENTAL level 1 database ;

RMAN > BACKUP INCREMENTAL level 2 database ;

Sauvegarde incrémentielle cumulative

Contient uniquement les blocs modifiés par rapport à un niveau n-1 ou inférieur

RMAN > BACKUP INCREMENTAL level 2 cumulative database ;

Sauvegarde en mode noarchivelog

Arrêter la base de données

Monter la base de données

Exécuter la commande BACKUP

Ouvrir la base de données

La commande COPY

Caractéristiques:

Une copie contient un seul fichier (fichier de données, de contrôle, de journalisation archivée)

Elle ne peut être écrite que sur disque

Elle peut être utilisée immédiatement pour une récupération sans restauration préalable

RMAN >run {

ALLOCATE CHANNEL c1 TYPE disk ;

COPY

DATAFILE ‘/chemin/Fichier.dbf’ to ‘/chemin/Fichier1.dbf’ tag =DF3,

ARCHIVELOG ‘xxx.arc’ to ‘xxxx.bak’;}

RMAN > COPY

DATAFILE 1 TO ’/backup1/fichier1.dbf’,

DATAFILE 2 TO ’/backup2/fichier2.dbf’;

Option NOCHECKSUM pour supprimer l’opération de checksum et accélérer le processus de copie.

Option CHECK LOGICAL pour tester les blocs de données et d’index

Copie en parallèle

RMAN> CONFIGURE DEVICE TYPE disk PARALLELISM 4 ;

COPY

DATAFILE 1 TO ‘/backup/f1.bk’,

DATAFILE 2 TO ‘/backup/f2.bk’,

DATAFILE 3 TO ‘/backup/f3.bk’;

idem avec l’allocation de canaux

Nota : si l’option CONFIGURE CONTROLFILE AUTOBACKUP est à ON rman sauvegarde automatiquement le fichier de contrôle après l’exécution de la commande COPY

RESTAURATION:

Restauration complète:

Principe:

Restaure les fichiers à partir des jeux de sauvegardes ou de copie d’images avec la commande

RESTORE

Récupérer les fichiers avec la commande RECOVER

RMAN> STARTUP MOUNT;

RMAN> RESTORE DATABASE;

RMAN> RECOVER DATABASE ;

RMAN> ALTER DATABASE OPEN ;

Nota : dans l’exemple les fichiers de contrôle sont ok

Restauration vers un nouvel emplacement des fichiers de données;

L’opération implique l’utilisation d’un bloc RUN

On monte la base de données

RMAN> STARTUP MOUNT;

RMAN> RUN{

SET NEWNAME for datafile 1 to ‘//xxxx.dbf’;

RESTORE DATABASE ;

SWITCH DATAFILE ALL ;

RECOVER DATABASE ;

ALTER DATABASE OPEN ; }

la commande SWITCH enregistre la modification dans le fichier de contrôle

Restauration d’un tablespace

RMAN> RUN{

2> sql “alter tablespace users offline immediate”;

3> RESTORE TABLESPACE USERS;

4> RECOVER TABLESPACE USERS;

5> sql “alter tablespace users online”;   }

Transfert un tablespace a l’aide de RMAN

L’opération implique l’utilisation d’un bloc RUN

RMAN> RUN{

sql “alter tablespace users offline immediate”;

SET NEWNAME FOR DATAFILE ‘/

/xxxx.dbf’TO ‘//xxxx.dbf’;RESTORE TABLESPACE USERS;

SWITCH DATAFILE 3 ;

RECOVER TABLESPACE USERS;

sql “alter tablespace users online”;     }

Restauration incomplète :

Restauration avec la commande UNTIL TIME

Positionner la variable d’environnement NLS_DATE_FORMAT et NLS_LANG

Export NLS_LANG = american

Export NLS_DATE_FORMAT = ’YYYY-MM-DD :HH24:MI:SS’

RMAN> RUN {

2> SET UNTIL TIME ‘2003-10-12:19:44:00’;

3> ALTER DATABASE MOUNT;

4> RESTORE DATABASE;

5> RECOVER DATABASE ;

6> ALTER DATABASE OPEN RESETLOGS;

7> }

si on utilise un catalog, on doit effectuer la commande

RMAN> RESET DATABASE ;

Pour enregistrer la nouvelle incarnation de la base de données

Restauration avec la commande UNTIL SEQUENCE

RMAN> RUN {

2> SET UNTIL SEQUENCE 120 THREAD 1;

3> ALTER DATABASE MOUNT;

4> RESTORE DATABASE;

5> RECOVER DATABASE ;

6> ALTER DATABASE OPEN RESETLOGS;

7> }

Ici le numéro de séquence 120 a été perdu

Restauration du controlfile

A partir d’un autobackup (Configure controlfile autobackup on 😉

RMAN > STARTUP NOMOUNT ;

RMAN > RESTORE CONTROLFILE FROM AUTOBACKUP ;

RMAN > ALTER DATABASE OPEN;

A partir du catalogue

RMAN > STARTUP NOMOUNT ;

RMAN > RESTORE CONTROLFILE ;

RMAN > ALTER DATABASE OPEN;

Avec recovery

RMAN > STARTUP NOMOUNT ;

RMAN > RESTORE CONTROLFILE ;

RMAN > ALTER DATABASE MOUNT;

RMAN > RECOVER DATABASE;

RMAN > ALTER DATABASE OPEN RESETLOGS;

Extraction du controlfile d’un backup

RMAN> restore CONTROLFILE to ‘/rep/’ ;

MAINTENANCE:

Vérification des sauvegardes et des copies

La commande CROSSCHECK:

Permet de s’assurer que les informations du référentiel sont synchronisées avec les fichiers physiques

Vérifier l’état d’une sauvegarde ou d’une copie

Mettre à jour le référentiel en cas de suppression de fichiers

Vérification des sauvegardes:

RMAN> CROSSCHECK BACKUPSET OF DATABASE ;

Vérification des copies

RMAN > CROSSCHECK COPY ;

Si rman ne trouve pas certains fichiers il les marques comme EXPIRED

On peut identifier ces fichiers avec la commande LIST EXPIRED <BACKUPSET/COPY>

Et les supprimer du référentiel avec DELETE EXPIRED <BACKUPSET/COPY>

Suppression de sauvegardes et de copies

La commande DELETE

Permet de supprimer les sauvegardes et les copies d’image physiques

Affecte aux éléments supprimés l’état DELETED

Supprimer des enregistrements du catalogue de restauration

Suppression d’un jeu de sauvegarde

RMAN> DELETE BACKUPSET 103 ;

Suppression d’une sauvegarde périmée sans confirmation

RMAN> DELETE NOPROMPT EXPIRED BACKUP OF TABLESPACE users;

Suppression de toutes les sauvegardes, toutes les copies en fonction de la règle de conservation

RMAN>DELETE OBSOLETE ;

Modification de la disponibilité

Commande CHANGE……….. UNAVAILABLE

On peut passer une sauvegarde ou une copie UNAVAILABLE pour qu’elle ne soit pas utilisée lors de l’exécution d’une commande RESTORE ou RECOVER

Modifier l’état d’un fichier de données

RMAN> CHANGE DATAFILECOPY ‘/xx/bkp/users01.dbf’ UNAVAILABLE ;

Modifier l’état d’une sauvegarde de fichier de contrôle

RMAN> CHANGE BACKUP OF CONTROLFILE UNAVAILABLE ;

Modifier l’état de fichier de journalisation archivé

RMAN> CHANGE COPY OF ARCHIVELOG SEQUENCE BETWEEN 200 AND 230 UNAVAILABLE ;

Sortir une sauvegarde de la règle de conservation

On utilise la commande CHANGE………….KEEP pour sortir une sauvegarde ou une copie de la règle de conservation

CHANGE……………NOKEEP annule cette commande

Sauvegarde jamais périmée

RMAN> CHANGE BACKUPSET 123 KEEP FOREVER NOLOGS;

FOREVER : indique que la sauvegarde ou la copie n’est jamais périmée (marche uniquement avec le catalogue)

LOGS/NOLOGS : indique si il faut conserver ou non les fichiers de journalisation archivés

nécessaire à la restauration de la sauvegarde

Sortir un fichier de données des règles de conservation pendant 60 jours

RMAN> CHANGE DATAFILECOPY ‘/xx/bkp/users01.dbf’ KEEP UNTIL ‘SYSDATE+60’;

Enregistrer dans le catalogue des sauvegardes utilisateur

On utilise la commande CATALOG

RMAN> CATALOG DATAFILECOPY ‘/xx/bkp/users01.dbf’;

RMAN> CATALOG ARCHIVELOG ‘/xx/arch/arch01.arc’,’ ‘/xx/arch/arch02.arc’;

RMAN> CATALOG CONTROLFILECOPY ‘/xx/bkp/control01.bkp.’ ;

Supprimer des enregistrements du catalogue

On utilise la commande CHANGE……………..UNCATALOG;

Elle met à jour le référentiel. Elle ne supprime pas les sauvegardes ou les copies physiques.

RMAN> CHANGE DATAFILECOPY ‘/xx/bkp/users01.dbf’’ UNCATALOG;

RMAN> CHANGE ARCHIVELOG ‘/xx/arch/arch01.arc’,’ ‘/xx/arch/arch02.arc’ UNCATALOG;

ANNEXE A : RAPPEL SUR LES SAUVEGARDES ET RESTAURATIONS SANS RMAN:

Introduction:

Nous allons décrire les différentes méthodes de sauvegarde d’une base de données Oracle, ainsi que les restaurations que l’on pourra effectuer à partir de celle-ci.

Une base de données Oracle est composée de trois types de fichiers:

  • Les datafiles : Ils contiennent les objets logiques de la base (tables, indexes, etc. ….).
  • Les controlfiles : Ils contiennent la description physique de la base.
  • Les logfiles ( ou redo log ) : fichiers journaux sur lesquels, on enregistre toutes les transactions qui s’effectuent sur la base. Ceux-ci peuvent être archivés.

Deux types de sauvegarde pourront être effectués:

  • Une sauvegarde logique, l’export.
  • Une sauvegarde physique des différents fichiers.

Import/Export:

Description

L’export permet de réaliser une sauvegarde logique des objets d’une base. C’est à dire que l’on sauvegarde la structure de la base et des schémas (DDL) ainsi que le contenu des tables. L’import permet lui de restaurer tout ou une partie d’un export.

L’export

L’export peut être effectué en mode ligne de commande ou bien de façon interactive.

Il peut être de trois types :

– full : On sauvegarde tous les objets de la base structures et données.

– table: On sauvegarde une ou plusieurs tables.

– user : On sauvegarde tous les objets d’un utilisateur.

Il existe aussi un mode incrémental qui permet de sauvegarder uniquement les objets modifiés depuis la dernière sauvegarde.

L’import

L’import permet de restaurer:

– La totalité d’une base

– Une ou plusieurs tables

– Les objets d’un utilisateur

Protection

Cette méthode protège de la perte d’un objet logique.

Les inconvénients de cette méthode sont:

– La durée de celle-ci ( 300-500 Mo/heure en sauvegarde, durée doublée en restauration).

– Les utilisateurs ne peuvent pas accéder à la base pendant la sauvegarde.

– La restauration est parfois très délicate.

Sauvegarde des bases en mode noarchivelog:

Description

Pour effectuer une sauvegarde physique d’une base de données en mode noarchivelog (pas d’archivage des fichiers journaux), on doit effectuer une copie cohérente de tous les fichiers de la base.

Sauvegarde

Base arrêtée, on sauvegarde tous les fichiers de la base (controlfile, logfile, datafile).

Restauration

Base arrêtée, on effectue une restauration complète de tous les fichiers.

Protection

Cette méthode ne protège pas de la perte d’un objet logique. Elle garantie la

cohérence physique de la base.

C’est la méthode de sauvegarde et de restauration la plus simple à mettre en oeuvre.

En fonction des périphériques, elle peut se révéler particulièrement rapide.

Sauvegarde des bases en mode archivelog :

Description

Pour effectuer une sauvegarde physique d’une base de données en mode archivelog (mode qui autorise l’archivage des redo log), on effectue une sauvegarde des datafiles et des controlfiles, sans arrêter la base de données. C’est une sauvegarde à chaud.

Sauvegarde

On commence par préparer le tablespace que l’on veut sauvegarder.

On effectue alors la sauvegarde des datafiles correspondants aux tablespaces.

On remet le tablespace dans son état initial.

Pour les controlfiles, on génèrera un fichier de sauvegarde de ceux-ci.

ALTER TABLESPACE T1 BEGIN BACKUP ;

ALTER TABLESPACE T2 BEGIN BACKUP ;

Cpio…

ALTER TABLESPACE T1 END BACKUP ;

ALTER TABLESPACE T2 END BACKUP ;

ALTER DATABASE BACKUP CONTROLFILE TO ‘/chemin/sauve/controlfile.bkp’

Restauration

Base arrêtée, on effectue une restauration des fichiers endommagés, puis on applique les journaux archivés.

Cpio …

STARTUP MOUNT ;

RECOVER DATABASE UNTIL CANCEL ;

ALTER DATABASE OPEN RESETLOGS ;

Protection

C’est la plus complexe à mettre en oeuvre.

Elle permet de revenir à l’instant précédent la panne, avec pas (ou peu) de perte de données.

Stratégie de sauvegarde Online:

Introduction:

Les sauvegardes Online ne peuvent être effectuées que sur des base de données en mode archivelog et que l’archivage automatique des redo log est démarré.

On peut vérifier ces conditions en utilisant la commande « archive log list » ou en « show parameters »

Scénario type:

Sauvegardes sur une semaine :

Lundi               : Sauvegarde Online

Mardi              : Sauvegarde Online

Mercredi         : Sauvegarde Online

Jeudi                : Sauvegarde Online

Vendredi          : Sauvegarde Online

Samedi :

Dimanche        : Sauvegarde full backup + Purge des journaux archivés

Ce scénario permet de garantir le minimum de perte de données. En effet:

  • Une sauvegarde Online quotidienne permettra d’effectuer un recouvrement uniquement avec les journaux générés depuis 24h, d’où une restauration rapide.
  • La sauvegarde full backup permettra d’avoir une image cohérente de la base dont on pourra repartir en cas de perte critique des fichiers. On doit garder les journaux archivés entre deux sauvegarde full backup.

Les scénarios de restauration d’une base oracle en mode archivelog:

Introduction:

Nous allons décrire les différents scénarios de restauration d’une base oracle en mode archivelog, à partir des différents types de perte des fichiers qui la compose.

Complexité des scénarios:

Nous distinguerons les scénarios simples et les scénarios complexes.

Les scénarios simples seront faciles à mettre en oeuvre, sans perte de données. Les complexes sont ceux qui demanderont des manipulations plus élaborées et qui peuvent entraîner éventuellement des pertes de données.

Les scénarios couverts par une sauvegarde Online:

Contexte

Il existe une sauvegarde à chaud (sauvegarde base ouverte des controfiles et des datafiles)et une à froid (sauvegarde base arrêtée de tous les fichiers) de la base, ainsi que les journaux archivés.

Tableau récapitulatif des différents scénarios

Type de perte de fichiers Complexité Opérations à effectuer Sauvegarde utilisée
Un datafile Faible -On arrête la base

-On remplace la datafile manquant

-On monte la base

-On applique les journaux archivés avec la commande « recover database »

Online
Tous les datafiles Faible Idem Idem
Un controlfile Faible On duplique le controlfile restant Aucune
Tous les controlfiles Complexe -On arrête la base

-On remplace les controlfiles

-On monte la base

-On applique les journaux archivés ainsi que le redo log courant avec la commande « recover database using backup controlfile »

-On effectue un resetlogs lors de la réouverture de la base

nota : après avoir appliqué les journaux archivés, on applique le redo log courant.

Online
Controlfiles et datafiles Complexe Idem Idem
Perte d’un redo logs

non courant

“Alter database clear logfile group 1 “

drop et recréer le redologs inactif

Idem
Perte du redo logs courant On recréer un redolog

“Alter database clear Unarchived logfile group 1 “

ne marche pas toujours, sinon on restaure les redo logs.

Idem
Tous les redo logs Complexe -On arrête la base

-On remplace les datafiles et les redo logs à partir de la sauvegarde

-On monte la base

-On applique les journaux archivés avec la commande « recover database until cancel »

-On effectue un resetlogs lors de la réouverture de la base

full backup
Datafiles et redo logs Complexe Idem Idem
Controlfiles et redo logs Complexe -On arrête la base

-On remplace tous les fichiers

-On monte la base

-On applique les journaux archivés avec la commande « recover database using backup controlfile until   cancel »

-On effectue un resetlogs lors de la réouverture de la base

full backup
Tous les fichiers Complexe Idem Idem

Pourquoi effectue-t-on un resetlogs:

Les actions d’un RESETLOGS

Un « ALTER DATABASE OPEN RESETLOGS ; » effectue les actions suivantes :

  1. Réinitianilise le SCN des entêtes de fichiers de données.
  2. Réinitialise le redo log courant.

En remettant au même niveau tous les entêtes des fichiers de la base on assure la cohérence de celle-ci.

Dans quel cas utilise t-on cette option ?

Lors d’une restoration nécessitant un BACKUP CONTROLFILE. : Option USING BACKUP CONTROLFILE du RECOVER.

Une recovery incomplète : Option UNTIL <scn,date> du RECOVER.

On appelle cela une récupération incomplète. Puisqu’elle se fait jusqu’à annulation par l’opérateur de la procédure de récpération.

ANNEXE B : SCENARII

Scénario : Perte d’un « DATAFILE » (non SYSTEM, non UNDO)

STARTUP MOUNT;

SELECT * FROM V$RECOVER_FILE ;

SELECT * FROM V$DATAFILE;

ALTER DATABASE DATAFILE 3 OFFLINE;

ALTER DATABASE OPEN;

! cp $HOME/BACKUP/u3/users01 $HOME/DATA/u3

SELECT * FROM V$RECOVER_FILE;

RECOVER DATAFILE 3;

SELECT * FROM V$RECOVER_FILE ;

ALTER DATABASE DATAFILE 3 ONLINE;

SELECT tablespace_name,status FROM DBA_TABLESPACES;

 

Remarque: Cette méthode permet d’ouvrir la base alors qu’un datafile pose problème

 

Scénario : Perte d’UN « DATAFILE » SYSTEM

STARTUP MOUNT;

SELECT * FROM V$RECOVER_FILE;

! cp /chemin/BACKUP/ul/system01.dbf /chemin/DATA/

RECOVER DATABASE

SELECT * FROM V$RECOVER_FILE;

ALTER DATABASE OPEN;

 

Remarque: II n’est pas possible d’ouvrir (OPEN) la base sans dictionnaire.

 

Scénario : Perte d’un “DATAFILE » UNDO

 

STARTUP

SELECT * FROM V$RECOVER FILE;

! cp /chemin/BACKUP/u2/undotbs.dbf /chemin/DATA/

RECOVER DATABASE

SELECT * FROM V$RECOVER_FILE;

ALTER DATABASE OPEN;

 

Remarque: II n’est pas possible d’ouvrir (OPEN) la base sans TS undo.

Scénario : Perte de tous les “CONTROLFILE”

(II existe un fichier genéré par ALTER DATABASE BACKUP CONTROLFILE TO TRACE)

STARTUP MOUNT

! vi $HOME/ADMIN/UDUMP/u*

Adapter Ie script

@$HOME/ADMIN/UDUMP/u301_ora_633l.trc

SELECT status FROM V$INSTANCE;

Scénario : Problème lors d’une sauvegarde base ouverte


Forcer la base a changer d’état. Puis lister le contenu de V$BACKUP

STARTUP MOUNT

SELECT * FROM V$RECOVER_FILE;

SELECT * FROM V$BACKUP;

ALTER DATABASE END BACKUP;

ALTER DATABASE OPEN;

SELECT * FROM V$BACKUP ;

Scénario : Perte d’un datafile sans backup prealable.


STARTUP MOUNT

SELECT * FROM V$RECOVER_FILE ;

SELECT * FROM V$DATAFILE;

ALTER DATABASE CREATE DATAFILE ‘$HOME/ORADATA/u01/new01.dbf’;

RECOVER DATAFILE’ $HOME/ORADATA/u01/new01.dbf’;

ALTER DATABASE OPEN;

SELECT * FROM V$RECOVER_FILE ;

SELECT * FROM V$DATAFILE;

Scénario : Perte d’un groupe de redo log ACTIF


SHUTDOWN IMMEDIATE

STARTUP MOUNT

! cp-rp $HOME/BACKUP/*.dbf $HOME/ORADATA

! cp-rp $HOME/BACKUP/*.rdo $HOME/ORADATA

SELECT * FROM V$LOG;

RECOVER DATABASE UNTIL CANCEL;

ALTER DATABASE OPEN RESETLOGS.

SHUTDOWN IMMEDIATE

!cp -rp $HOME/ORADATA/u* $HOME/BACKUP

Scénario : Perte de tous les « CONTROLFILE » (à partir des « CONTROLFILE » de backup)

STARTUP

HOST cp $HOME/BACKUP/u1/ctrl01.dbf $HOME/DATA/ul

RECOVER DATABASE USING BACKUP CONTROLFILE;

specifier le logfile:

$HOME/ORADATA/ARCHIVEl/arch _I.arc

$HOME/ORADATA/ARCHIVEl/arch_2.arc

$HOME/ORADATA/ARCHIVE1/arch_3.arc

$HOME/ORADATAlu3/log01a.rdo

ALTER DATABASE OPEN RESETLOGS;

SHUTDOWN IMMEDIATE

!cp -rp $HOME/ORADATA/u* $HOME/BACKUP

Scénario : Perte d’un groupe de « REDO » inactif

SHUTDOWN IMMEDIATE

STARTUP

ALTER DATABASE ADD LOGFILE GROUP 3

(‘$HOME/ORADATA/u3/log03a.rdo’) size 2M;

ALTER DATABASE DROP LOGFILE GROUP 1;

ALTER DATABASE OPEN;

Scénario : Perte d’un support (disque)

STARTUP MOUNT .

SELECT * FROM V$RECOVER_FILE; 3 SELECT * FROM V$BACKUP;

ALTER DATABASE DATAFILE ‘ FILE’ OFFLINE;

ALTER DATABASE OPEN;

ALTER TABLESPACE TBS OFFLINE IMMEDIATE;

RENAME ‘FILE’ TO ‘DESTINATION FILE’;

HOST CP $HOME/BACKUP/DISKx/xxxx.dbf $HOME/DATA/DISKx/xxx.dbf

RECOVER TABLESPACE TBS.

ALTER TABLESPACE TBS ONLINE;

Scénario : Perte d’un fichier de données et d’un redo log archive

  1. A) identification du redo log archivé qui manque:

HOST CP $HOME/BACKUP/DISKx/xxxx.dbf $HOME/DATA/DISKx/xxx.dbf

STARTUP MOUNT

RECOVER DATABASE

Taper cancel lors de la suggestion du redo log archive qui manque.

  1. B) restauration de la base:

SHUTDOWN IMMEDIATE

STARTUP MOUNT

HOST CP-rp $HOME/BACKUP/*.dbf $HOME/ORADATA

RECOVER DATABASE UNTIL CANCEL;

ALTER DATABASE OPEN RESETLOGS.

SHUTDOWN IMMEDIATE

CP -rp $HOME/ORADATA/lu* $HOME/BACKUP

 

Scénario : Perte d’un fichier de données non essentiel

STARTUP MOUNT

SELECT * FROM V$RECOVER_FILE;

ALTER DATABASE DATAFILE ‘ FILE’ OFFLINE;

ALTER DATABASE OPEN;

DROP TABLESPACE ‘TBS’ INCLUDING CONTENTS;

CREATE TABLESPACE INDX DATAFILE ‘FILE’ size 500k;

@$HOME/SCRIPTS/index.sql

ANNEXE C : Trucs et astuces

Tester le canal SBT_TAPE en utilisant l’interface par défaut d’oracle. Utile pour vérifier qu’il n’a pas de problème avec rman et valider le script.

RMAN> run {

2> allocate channel c1 type ‘SBT_TAPE’

3> PARMS= »SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR=/tmp/backup) »;

4> backup datafile 1 format ‘JUL%U’;

5> }

canal affecté : c1

canal c1 : sid=23 typedev=SBT_TAPE

canal c1 : WARNING: Oracle Test Disk API

Démarrage de backup dans 23/08/04

canal c1 : démarrage de l’ensemble de sauvegarde du fichier de données full

canal c1 : insertion du fichier de données dans l’ensemble de sauvegarde

fichier de données en entrée fno=00001 nom=/opale/oradata/BOREA/SYSTEM01.dbf

canal c1 : démarrage de l’élément 1 dans 23/08/04

canal c1 : élément 1 terminé dans 23/08/04

descripteur d’élément=JUL08fu5kni_1_1 commentaire=API Version 2.0,MMS Version 8.1.3.0

canal c1 : ensemble de sauvegarde terminé, temps écoulé : 00:00:07

Fin de backup dans 23/08/04

Démarrage de Control File Autobackup dans 23/08/04

descripteur d’élément=c-2469470182-20040823-00 commentaire=API Version 2.0,MMS Version 8.1.3.0

Fin de Control File Autobackup dans 23/08/04

canal libéré : c1

Configurer la sauvegarde automatique du controlfile

RMAN> configure controlfile autobackup format for device type disk to ‘$HOME/xxx /%F.bck’;

RMAN>configure controlfile autobackup on;

Backup total

RMAN>backup database format ‘chemin/df_%d_%s’;

Restauration et récupération du tablespace user

RMAN> startup mount ;

RMAN> restore tablespace users ;

RMAN> recover tablespace users ;

RMAN> alter database open ;

Transférer un datafile d’un filesystem vers un autre et recupere le TBS

RMAN> startup mount ;

run {

set newname for datafile 3 to ‘/newfilesystem/users01.df’ ;

restore tablespace users ;

switch datafile all ;

recover tablespace users ;

sql ‘alter database open’ ;

}

Récupération incomplète jusqu’au dernier fichier de journalisation correcte

run {

Set until sequence 2 thread 1 ;

restore database ;

recover database;

}

RMAN> alter database open resetlogs;

Récupération de la structure de la base

RMAN>REPORT SCHEMA ;

Lister les backups et vérifier l’état des fichiers

RMAN> LIST BACKUP ;

Liste des ensembles de sauvegarde

===================

Clé BS Taille       Type d’unité Temps écoulé Heure d’exécution

——- ———- ———– ———— —————–

1       47M       DISK       00:00:04     05/08/04

Clé d’élément de sauvegarde : 1   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /oracle/ora920/dbs/01fsm810_1_1

Liste des journaux archivés dans l’ensemble de sauvegarde 1

Thread Séq     Plus petit SCN   Heure de chgt. de redo log SCN suivant   Prochaine fois

—- ——- ———- ————————– ———- ———

1   16     48652     28/07/04                   73717     29/07/04

1   17     73717     29/07/04                   193146     02/08/04

1   18     193146     02/08/04                   288502     05/08/04

1   19     288502     05/08/04                   289077     05/08/04

1   20     289077     05/08/04                   289087     05/08/04

Clé BS Type Taille LV       Type d’unité Temps écoulé Heure d’exécution

——- —- — ———- ———– ———— —————–

2       Incr 0 190M       DISK       00:00:27     05/08/04

Clé d’élément de sauvegarde : 2   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /oracle/ora920/dbs/02fsm818_1_1

Fichier de contrôle inclus : SCN Ckp : 289089       Ckp temps : 05/08/04

Liste des fichiers de données dans l’ensemble de sauvegarde 2

Fichier LV Type SCN Ckp   Heure Ckp Nom

—- — —- ———- ——— —-

1   0 Incr 289090     05/08/04 /opale/oradata/BOREA/SYSTEM01.dbf

2   0 Incr 289090     05/08/04 /opale/oradata/BOREA/UNDO01.dbf

3   0 Incr 289090     05/08/04 /opale/oradata/BOREA/OPALETABLES.dbf

4   0 Incr 289090     05/08/04 /opale/oradata/BOREA/OPALEINDEX.dbf

5   0 Incr 289090     05/08/04 /opale/oradata/BOREA/OPALEBLOB.dbf

6   0 Incr 289090     05/08/04 /opale/oradata/BOREA/TOOLS01.dbf

Clé BS Taille       Type d’unité Temps écoulé Heure d’exécution

——- ———- ———– ———— —————–

3       2K         DISK       00:00:01     05/08/04

Clé d’élément de sauvegarde : 3   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /oracle/ora920/dbs/03fsm82c_1_1

Liste des journaux archivés dans l’ensemble de sauvegarde 3

Thread Séq     Plus petit SCN   Heure de chgt. de redo log SCN suivant   Prochaine fois

—- ——- ———- ————————– ———- ———

1   21     289087     05/08/04                   289105     05/08/04

Clé BS Taille       Type d’unité Temps écoulé Heure d’exécution

——- ———- ———– ———— —————–

4       40K       DISK       00:00:01     05/08/04

Clé d’élément de sauvegarde : 4   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /opalebackup/sauv_BOREAxxx_04fsmass_1_1.bckp

Liste des journaux archivés dans l’ensemble de sauvegarde 4

Thread Séq     Plus petit SCN   Heure de chgt. de redo log SCN suivant   Prochaine fois

—- ——- ———- ————————– ———- ———

1   22     289105     05/08/04                   290065     05/08/04

Clé BS Type Taille LV       Type d’unité Temps écoulé Heure d’exécution

——- —- — ———- ———– ———— —————–

5      Incr 0 189M       DISK       00:00:21     05/08/04

Clé d’élément de sauvegarde : 5   Statut : AVAILABLE   Balise : BASE HOT L0

Nom d’élément : /opalebackup/sauv_BOREAxxx_05fsmasu_1_1.bckp

Liste des fichiers de données dans l’ensemble de sauvegarde 5

Fichier LV Type SCN Ckp   Heure Ckp Nom

—- — —- ———- ——— —-

1   0 Incr 290066     05/08/04 /opale/oradata/BOREA/SYSTEM01.dbf

2   0 Incr 290066     05/08/04 /opale/oradata/BOREA/UNDO01.dbf

3   0 Incr 290066     05/08/04 /opale/oradata/BOREA/OPALETABLES.dbf

4   0 Incr 290066     05/08/04 /opale/oradata/BOREA/OPALEINDEX.dbf

5   0 Incr 290066     05/08/04 /opale/oradata/BOREA/OPALEBLOB.dbf

6   0 Incr 290066     05/08/04 /opale/oradata/BOREA/TOOLS01.dbf

Clé BS Taille       Type d’unité Temps écoulé Heure d’exécution

——- ———- ———– ———— —————–

6       2K         DISK       00:00:01     05/08/04

Clé d’élément de sauvegarde : 6   Statut : AVAILABLE  Balise : BASE HOT L0

Nom d’élément : /opalebackup/sauv_BOREAxxx_06fsmatn_1_1.bckp

Liste des journaux archivés dans l’ensemble de sauvegarde 6

Thread Séq     Plus petit SCN   Heure de chgt. de redo log SCN suivant   Prochaine fois

—- ——- ———- ————————– ———- ———

1   23     290065     05/08/04                   290077     05/08/04

Clé BS Type Taille LV       Type d’unité Temps écoulé Heure d’exécution

——- —- — ———- ———– ———— —————–

7       Full   1M         DISK       00:00:00     05/08/04

Clé d’élément de sauvegarde : 7   Statut : AVAILABLE   Balise :

Nom d’élément : /opalebackup/CF_BOREAxxx_c-2469470182-20040805-00.bckp

Fichier de contrôle inclus : SCN Ckp : 290077       Ckp temps : 05/08/04

Clé BS Type Taille LV       Type d’unité Temps écoulé Heure d’exécution

——- —- — ———- ———– ———— —————–

8       Full   112M       SBT_TAPE   00:00:06     23/08/04

Clé d’élément de sauvegarde : 8   Statut : AVAILABLE   Balise : TAG20040823T154034

Nom d’élément : JUL08fu5kni_1_1

Liste des fichiers de données dans l’ensemble de sauvegarde 8

Fichier LV Type SCN Ckp   Heure Ckp Nom

—- — —- ———- ——— —-

1       Full 770914     23/08/04 /opale/oradata/BOREA/SYSTEM01.dbf

Clé BS Type Taille LV       Type d’unité Temps écoulé Heure d’exécution

——- —- — ———- ———– ———— —————–

9       Full  1M         SBT_TAPE   00:00:00     23/08/04

Clé d’élément de sauvegarde : 9   Statut : AVAILABLE   Balise :

Nom d’élément : c-2469470182-20040823-00

Fichier de contrôle inclus : SCN Ckp : 770916       Ckp temps : 23/08/04

RMAN> allocate channel for maintenance type disk;

canal affecté : ORA_MAINT_DISK_1

canal ORA_MAINT_DISK_1 : sid=10 typedev=DISK

RMAN> CROSSCHECK BACKUPSET 7 ;

élément de sauvegarde vérifié : repéré comme étant ‘AVAILABLE’

descripteur d’élément de sauvegarde=/opalebackup/CF_BOREAxxx_c-2469470182-20040805-00.bckp recid=7 horodatage=533408698

1 objets contre-vérifiés

RMAN>

Lister les fichiers expirés

RMAN> LIST EXPIRED BACKUP ;

lancement de la resynchronisation complète du catalogue de récupération

resynchronisation complète terminée

Liste des ensembles de sauvegarde

===================

Clé BS Taille       Type d’unité Temps écoulé Heure d’exécution

——- ———- ———– ———— —————–

13160   127K       SBT_TAPE   00:00:17     17/10/03

Clé d’élément de sauvegarde : 13161   Statut : EXPIRED   Balise : TAG20031017T130450

Nom d’élément : 14f4453i_1_1

Liste des journaux archivés dans l’ensemble de sauvegarde 13160

Thread Séq     Plus petit SCN   Heure de chgt. de redo log SCN suivant   Prochaine fois

—- ——- ———- ————————– ———- ———

1   504     336992590 17/10/03                   336994225 17/10/03

Backup de datafile

RMAN> backup datafile 1,2 ;

Backup des archivelogs a partir d’une date

RMAN> Backup archivelog from time ‘sysdate-3’ ;

Valider la suppression non rman des fichiers de journalisation archivés

RMAN> change archivelog all validate ;

Restauration incrementale avec saut de datafile read only

RMAN>backup incremental level 4 database skip readonly ;

Utilisation d’un tag

RMAN> List backuppiece tag=TAGT ;

Liste le contenu de d’un TAG

RMAN> list backuppiece tag=TAG20031201T120657;

Liste des éléments de sauvegarde

Clé BP Clé BS Pc# Cp# Statut     Type d’unité Nom d’élément

——- ——- — — ———– ———– ———-

37033   37032   1   1   EXPIRED     SBT_TAPE   9kf7tav2_1_1

Ce qui est important à savoir c’ets son STATUS et la clé BS pour pouvoir lister ce qu’il y a à l’interieur ou faire un crosscheck.

Enlever une base du catalogue

noter le DB_ID pendant une connexion RMAN a la base target concernée

Se connecter au catalog avec sqlplus

SQL>Select DB_KEY,DB_ID from db ;

Executer la procedure

SQL>Execute dbms_rcvcat.unregisterdatabase(db_key,db_id) ;

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s