Vous êtes sur la page 1sur 68

ADMIN ORACLE

PART 4
Chapitre:
Gestion des fichiers de
journalisation
Les fichiers de journalisation
Les fichiers de journalisation (redo log) enregistrent toutes les modifications
apportées à la base de données (toutes les transactions). Ils sont organisés en
groupes écrits de manière circulaire ; les informations sauvegardées sont donc, par
défaut, périodiquement écrasées.

1. Rôle des fichiers de journalisation


Les fichiers de journalisation sont utilisés pour la restauration de l’instance après un
arrêt anormal et pour la restauration de média si un fichier de données est perdu
ou endommagé ; dans ce cas, ils sont appliqués à une sauvegarde de fichier de
données, pour rejouer toutes les modifications survenues entre la sauvegarde et
l’incident ayant endommagé le fichier.
Ces fichiers sont très importants pour la sécurité de la base ainsi que pour sa
performance.
Les fichiers de journalisation sont organisés en groupes (au minimum 2) composés
d’un ou de plusieurs membres (minimum 1) ; ils sont créés lors de la définition de la
base (chapitre Création d’une nouvelle base de données). À l’intérieur d’un groupe,
les membres sont écrits simultanément en miroir par l’instance Oracle (processus
LGWR) et contiennent la même information. Tous les membres d’un groupe ont la
même taille définie lors de la création du groupe ; un fichier de journalisation
contient donc une quantité maximale d’informations. De même, le nombre de
groupes est déterminé; il n’augmente pas dynamiquement.
Lorsqu’un groupe est plein (c’est-à-dire lorsque les membres sont pleins), l’Instance
Oracle passe au groupe suivant et ainsi de suite jusqu’au dernier. Lorsque le dernier
groupe est plein, l’Instance Oracle repasse au premier. Le passage d’un groupe à un
autre est appelé basculement (switch).
C’est le processus LGWR (LOGWRITER) qui écrit dans les redo.
Le LGWR est activé:
• Toutes les 3 secondes.
• Lors d’un commit d’une transaction.
• Lorsque 1/3 de la zone tampon de reprise est plein.
Structure des fichiers de journalisation
Utiliser des fichiers de journalisation

Les fichiers de journalisation présentent les caractéristiques suivantes:


• Ils enregistrent toutes les modifications apportées aux données.
• Ils offrent un mécanisme de récupération.
• Ils peuvent être organisés en groupes.
• Deux groupes au moins sont requis.
Gestion des fichiers de journalisation
1. Vous pouvez interroger la vue v$logfile pour connaître la liste des fichiers physiques
relatifs aux groupes et à leurs membres. Si le champ STATUS est vide, le fichier
correspondant est en service.

SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile order by GROUP# ;

GROUP# STATUS TYPE MEMBER


----- ------- ------- --------------------------------------

1 ONLINE C:\APP\CLAIRE\ORADATA\ORA11G\REDO01.LOG
2 ONLINE C:\APP\CLAIRE\ORADATA\ORA11G\REDO02.LOG
3 ONLINE C:\APP\CLAIRE\ORADATA\ORA11G\REDO03.LOG
2. Vous pouvez utiliser également la vue v$log pour avoir les informations sur les
fichiers de journalisation
SQL> desc v$log  pour avoir la description de la vue
SQL> select group#, members, status from v$log;

GROUP# MEMBERS STATUS


---------- ---------- ----------------
1 2 INACTIVE
2 2 CURRENT
3 2 INACTIVE
Création d’un groupe fichiers de journalisation
SQL> alter database add logfile
2 group 4 ('c\:member4') size 10m;

SQL> select group#, members, status from v$log;

GROUP# MEMBERS STATUS


---------- ---------- ----------------
1 2 INACTIVE
2 1 INACTIVE
3 2 CURRENT
4 1 UNUSED
 Changement d’un group courant de journalisation: Faire un basculement
SQL> alter system switch logfile;
SQL> select group#, members, status from v$log;

GROUP# MEMBERS STATUS


---------- ---------- ----------------
1 2 INACTIVE
2 1 INACTIVE
3 2 ACTIVE
4 1 CURRENT

 Ajout d’un membre à un groupe


SQL> alter database add logfile
2 member 'c:\membre4_1' to group 4;
SQL> select group#, members, status from v$log;

GROUP# MEMBERS STATUS


---------- ---------- ----------------
1 2 INACTIVE
2 1 INACTIVE
3 2 INACTIVE
4 2 CURRENT
Suppression de membre d’un groupe
NB: la suppression est impossible lorsque que le statut d’un groupe est
à CURRENT, c.a.d. qu’il y a des transactions en cours.
SQL> select group#, members, status from v$log;

GROUP# MEMBERS STATUS


---------- ---------- ----------------
1 2 INACTIVE
2 2 CURRENT
3 2 INACTIVE

SQL> alter database add logfile


2 group 4 ('c\:memeber4') size 10m
Chapitre:
Gestion des utilisateurs
Objectifs visés :

 Créez et gérez des comptes d'utilisateurs de base de données:


 authentifier les utilisateurs
 attribuer des zones de stockage par défaut (tablespace)
 Accorder et révoquer des privilèges
 Créer et gérer des rôles
 Créez et gérez des profils:
 mettre en œuvre des fonctionnalités de sécurité par mot de passe standard
 contrôler l'utilisation des ressources par les utilisateurs
Comptes d'utilisateurs de base de données

Pour accéder à la base de données, un utilisateur doit spécifier un compte


d'utilisateur de base de données valide et réussir à s’authentifier comme requis par
ce compte d'utilisateur. Chaque utilisateur de base de données possède un compte
de base de données unique.
Chaque compte utilisateur a:
• Un nom d'utilisateur unique: les noms d'utilisateur ne peuvent pas dépasser 30
octets, ne peuvent pas contenir de caractères spéciaux, et doivent commencer
par une lettre.
• Une méthode d’authentification: la méthode d’authentification la plus courante
est un mot de passe, mais Oracle Database 11g prend en charge plusieurs autres
méthodes d'authentification, notamment biométrique, certificat et
authentification par jeton.
• Un tablespace par défaut: c'est l’endroit où un utilisateur crée des objets s'il ne
spécifie pas un autre tablespace. Notez qu'avoir un tablespace par défaut
n'implique pas que l'utilisateur a le privilège de créer des objets dans ce
tablespace, et l'utilisateur n'a pas de quota d'espace dans ce tablespace dans
lequel créer des objets. Ces deux éléments sont accordés séparément.
• Un tablespace temporaire: c'est un endroit où les objets temporaires, tels que
les tris et les tables temporaires sont créées au nom de l'utilisateur par l'instance.
Aucun quota n'est appliqué aux tablespaces temporaires.
• Un profil utilisateur: il s'agit d'un ensemble de restrictions de ressources et de
mots de passe attribuées à l'utilisateur.
• Un groupe de consommateurs initial: il est utilisé par le gestionnaire de
ressources.
• Un état de compte: les utilisateurs ne peuvent accéder qu'aux comptes
«ouverts». Le account_status peut être dans diverses combinaisons de
«verrouillé» et «expiré».
Les comptes prédéfinis SYS et SYSTEM

Les comptes SYS et SYSTEM ont le rôle d'administrateur de base de données (DBA)
qui leur est attribué par défaut.
Le compte SYS:
 Est accordé le rôle DBA
 A tous les privilèges avec l’option administrateur «ADMIN OPTION»
 Est requis pour le démarrage, l'arrêt et certaines commandes de maintenance
 Possède le dictionnaire de données
Le compte SYSTEM est accordé le rôle DBA
Ces comptes ne sont pas utilisés pour les opérations de routine
Pour vous connecter au compte SYS, vous devez utiliser la clause AS SYSDBA pour
une base de données instance. Tout utilisateur qui a le privilège SYSDBA accordé
peut se connecter au compte SYS à l'aide de la clause AS SYSDBA.
Seuls les utilisateurs «privilégiés» qui bénéficient des privilèges SYSDBA, SYSOPER
ou SYSASM sont autorisés à démarrer et à arrêter des instances.
Le compte SYSTEM se voit attribuer le rôle DBA par défaut mais pas le privilège
SYSDBA.
Les comptes SYS et SYSTEM sont des comptes obligatoires dans la base de données.
Ils ne peuvent pas être abandonnés.
Il est impossible de supprimer l’utilisateur SYS car il est le super utilisateur. SYS
contient tous les utilitaires (les objets) qui permettent au système Oracle de
tourner correctement.
Liste de contrôle pour la création d'utilisateurs

• Identifiez les tablespaces dans lesquels l'utilisateur a besoin de stocker des


objets.
• Déterminez les quotas applicables pour chaque tablespace.
• Affectez un tablespace par défaut et un tablespace temporaire.
• Créez un utilisateur.
• Accordez des privilèges et des rôles à l'utilisateur.
Choisir les tablespaces que l'utilisateur pourra utiliser
Pour des raisons de sécurité, il faut restreindre le champ d'action d'un utilisateur en
choisissant les tablespaces que celui-ci sera en mesure d'utiliser.
En premier lieu, il est très fortement déconseillé d'autoriser un utilisateur à utiliser le
tablespace SYSTEM, qui doit impérativement rester dédié au dictionnaire de données.
Il va donc falloir identifier tous les tablespaces nécessaire à l'utilisateur, que ce soit des
tablespaces de données, d'index, ou temporaire.

Définir les quotas sur chaque tablespaces


Une fois les tablespaces identifiés, il faut définir l'espace alloué à l'utilisateur sur chacun
des tablespaces.  Voici les différentes options disponibles pour les quotas :
- Une taille en K (KiloBytes) ou en M (MegaBytes)
- Unlimited
Par défaut le nouvel utilisateur dispose d'un quota null sur tous les tablespaces.
Modifier les quotas de tablespace d'un utilisateur
• Vous pouvez modifier les quotas de tablespace d'un utilisateur dans les cas suivants :
• lorsque la taille des tables appartenant à l'utilisateur augmente de manière imprévue,
• lorsqu'une application est étendue et nécessite des tables ou des index supplémentaires,
• lorsque les objets sont réorganisés et placés dans des tablespaces différents.
• Procédez comme suit pour modifier le quota de tablespace d'un utilisateur :
alter user nom_user
quota 0 on nom_tablespace;

Définir les tablespaces par défaut de l'utilisateur


Il faut définir le tablespace de données et le tablespace temporaire de l'utilisateur afin d'éviter
toute écriture dans le tablespace SYSTEM (qui est assigné si aucun tablespace par défaut n'est
défini) via les fonctions suivantes:
DEFAULT TABLESPACE nom_tablespace
TEMPORARY TABLESPACE nom_tmp_tablespace
 Créer un utilisateur
SQL> create user formation
2 identified by oracle123
3 profile default
4 default tablespace users
5 temporary tablespace temp;

SQL> CREATE USER etudiant


2 IDENTIFIED BY supinfo
3 DEFAULT TABLESPACE userdata
4 TEMPORARY TABLESPACE temp
5 QUOTA 15M ON userdata
6 QUOTA 10M ON users
7 PASSWORD EXPIRE;
Créer l'utilisateur
Ci-dessous une requête SQL permettant la création d'un utilisateur ayant pour nom
"cbustori", le mot de passe "supinfo", sont tablespace par défaut sera
"tbs_cbustori" avec un quota de 10Mo et son tablespace temportaire sera
"tmp_cbustori" avec un quota de 5Mo.
Il devra changer son mot de passe lors de la première connexion:
CREATE USER cbustori IDENTIFIED BY supinfo
DEFAULT TABLESPACE tbs_cbustori
QUOTA 10M ON tbs_cbustori
TEMPORARY TABLESPACE tmp_cbustori
QUOTA 5M ON tmp_cbustori
PASSWORD EXPIRE;
Supprimer un utilisateur

• La clause CASCADE permet de supprimer tous les objets d'un schéma.


SQL> DROP USER nom_utilisateur;
• Vous ne pouvez pas supprimer les utilisateurs qui sont connectés au serveur
Oracle.
SQL> DROP USER nom_utilisateur CASCADE;
Gestion des mots de passe
Expiration ou non du mot de passe
Si votre utilisateur Oracle a été créé avec le profile par défaut, son mot de passe
expirera tous les 6 mois ! Pour débloquer la situation, il faut se connecter en
SQLPlus avec l’identifiant et le mot de passe actuel puis le serveur de base de
données va vous demander de saisir un nouveau mot de passe.
Vous pouvez remettre le même !
Cependant, dans 180 jours exactement, le mot de passe expirera à nouveau. Pour
remédier définitivement à ce comportement contraignant, il faut exécuter la
commande SQL suivante avec un utilisateur administrateur :
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

NB: Pour vérifier la durée d’expiration des mots de passe utilisateur il faut exécuter la requête
SQL> Select * from dba_profiles where resource_name =‘PASSWORD_LIFE_TIME’
Modification du mot de passe
SQL> ALTER USER nom_utilisateur IDENTIFIED BY NouveauMotDePasse

Activer la vérification de la casse du mot de passe


Vérifier l’état avec la requête:
SQL> show parameter logon

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon boolean TRUE

SQL> alter system


2 set sec_case_sensitive_logon=false
3 scope=both;
Gérer les privilèges

Il existe deux types de privilèges utilisateur Oracle :


• Système : permet aux utilisateurs de réaliser certaines actions dans la base de
données; création, modification, suppression, exécution de groupes d'objets.
• Objet : permet aux utilisateurs d'accéder à un objet donné et de le manipuler

Les rôles et privilèges sont définis pour sécuriser l'accès aux données de la base.
Ces concepts sont mis en œuvre pour protéger les données en accordant (ou
retirant) des privilèges a un utilisateur ou un groupe d'utilisateurs.
Un rôle est un regroupement de privilèges. Une fois créé il peut être assigné à un
utilisateur ou à un autre rôle.
Privilège Système

Syntaxe:
GRANT PRIVILEGE
TO user_name
[WITH ADMIN OPTION]

Exemple:
SQL> GRANT create table, create synonym, select any table
2 TO formation;
Lorsqu'un utilisateur est créé avec l'instruction CREATE USER, il ne dispose encore
d'aucun droit car aucun privilège ne lui a encore été assigné.
L'instruction GRANT permet d'octroyer les privilèges nécessaires à un utilisateur.
• Pour que l'utilisateur puisse simplement se connecter à la base, il doit bénéficier du
privilège système CREATE SESSION:
GRANT CREATE SESSION TO nom_utilisateur;
• Pour qu'il puisse créer des tables:
GRANT CREATE TABLE TO nom_utilisateur;
• Pour qu'il puisse créer des vues:
GRANT CREATE VIEW TO nom_utilisateur;
• L'ensemble de ces privilèges peuvent être assignés au sein d'une même
commande:
GRANT CREATE SESSION,CREATE TABLE ,CREATE VIEW TO nom_utilisateur;
Privilège Objet

Syntaxe:
GRANT PRIVILEGE ON nom_table
TO user_name
[WITH GRANT OPTION]

Exemple:
SQL> GRANT create table, create synonym, select any table
2 TO formation;
Pour assigner à un utilisateur le droit de sélectionner, insérer, modifier et
supprimer des lignes dans la table « nom_table" de l'utilisateur formation:
GRANT SELECT,INSERT ,UPDATE,DELETE ON nom_table TO formation;
On peut restreindre les droits sur des colonnes spécifiques de la table:
GRANT UPDATE ( Colonne1, Colonne2, Colonne3 ) ON nom_table TO formation;
Pour qu'un utilisateur puisse mettre à jour ou supprimer des lignes d'une table, les
privilèges UPDATE ET DELETE ne suffisent pas. Le privilège SELECT est nécessaire.
Création et gestion des rôles
La création d'un rôle permet d'assigner plusieurs privilèges à la fois à un utilisateur.
Trois rôles existent en mode standard:
- CONNECT: permet l'ouverture (CREATE SESSION) et la modification (ALTER SESSION) d'une
session, la création de tables, vues, clusters, séquences, synonymes et liens de bases de
données.
- RESOURCE: permet de créer des types, tables clusters, opérateurs, séquences, index et
procédures.
- DBA: octroie des droits d'administration de la base.
Lorsque le rôle est créé, il ne contient rien et il faut l'alimenter à l'aide d'instructions GRANT:
SQL> CREATE ROLE caissiere;
SQL> grant create session, select any table, create synonym
2 to cassiere;
Autre méthode:
Il consiste à créer un utilisateur et lui affecter un rôle
SQL> GRANT cassiere
2 TO fatou
3 IDENTIFIED BY oracle123;

Une fois le rôle créé, il peut être assigné à un utilisateur ou à un autre rôle.
GRANT cassiere TO formation;
Un rôle peut être supprimé en utilisant l'instruction DROP ROLE:
DROP ROLE caissiere;
Le rôle spécifié ainsi que tous les privilèges qui lui sont associés sont supprimés de
la base et également retiré à tous les utilisateurs qui en bénéficiaient.
Gestion des profils

Un profil est un ensemble de limitations système. Une fois qu'un profil a été
assigné à un utilisateur celui-ci ne pourra plus dépasser les limitations imposées. Il
existe deux types de limitation pour un profil:
- Les limitations du mots de passe
- Les limitations des ressources système

SQL> show parameter resource_limit

NAME TYPE VALUE


-------------------------------- ----------- ------------------------------
resource_limit boolean FALSE
SQL> alter system
2 set resource_limit=true
3 scope=both;

SQL> show parameter resource_limit

NAME TYPE VALUE


------------------------------------ ----------- ------------------------------
resource_limit boolean TRUE
SQL> create profile test
2 limit
3 sessions_per_user 2
4 idle_time 3;

Après deux connections sur SQL*Plus, la 3ième tentative va renvoyer un message


d’erreur.

SQL> alter user fatou


2 profile test;
La requête suivante permet de modifier le nombre de tentatives de connexion
échouées et la durée du blocage du compte:
SQL> ALTER PROFILE test LIMIT FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;
Pour supprimer un profil:
SQL> DROP PROFILE nom_profile CASCADE;
Chapitre:
Sauvegarde et restauration
de Base des Données
Sauvegarde : c’est de l’action de copier des données sur un média indépendant
du média d’origine et de garder plusieurs copies. L’objectif est de pouvoir les
restaurer sur une plateforme identique à la plateforme d’origine. La sauvegarde
repose sur des solutions logicielles et matérielles permettant de prendre des
images sur des données réelles pour les restaurer sur les systèmes en cas de
besoin.
Stockage: repose sur des infrastructures hébergeant les données vivantes
(données applicatives, les configurations ou l’OS).
Archivage: action déplacer et de transformer des données afin de supprimer les
données non indispensables à la plateforme d’origine et de garantir la relecture.
Il repose sur les solutions logicielles et matérielles permettant ne conservation
sécurisée des données et éventuellement probant. Les données sont déplacées
vers la solution d’archivage qui doit les conserver de manière fiable et être
capable de les restaurer fidèlement sur leur durée de conservation.
Restauration: Opération qui consiste à remettre en ligne les données préalablement
sauvegardées.
C’est un des éléments permettant de tenir le RPO (Recovery Point Objective) ou PDMA
(Perte de données maximale admissible).
 Le RPO (ou PDMA) permet de quantifier les données que les métiers (ou SI) peuvent
perdre au maximum par suite d’un incident.
Quantifier un RPO revient à établir des objectifs de sauvegardes et oblige à identifier leur
fréquence et la taille des données dont vous avez besoin.
Vous pouvez choisir d’effectuer une seule sauvegarde par jour, dans ce cas le RPO sera
défini à 24h. Cependant, cela fait courir le risque de perdre une partie des données.
Exemple, si votre sauvegarde est faite à 23h et que vous subissez un incident à 18h le
lendemain, les données générées entre temps seront perdues et vous devrez refaire
votre travail.
Les entreprises qui nécessitent plusieurs sauvegardes par jour, tout secteur confondus,
trouvent un intérêt à établir un RPO faible, c’est-à-dire défini à quelques heures.
 Le RTO (Recovery Time Objective) ou DIMA (Durée d’interruption maximale admissible)
est la durée maximale d’indisponibilité d’une ressource informatique que peuvent
tolérer les métiers utilisateurs de la ressource, suite à une interruption de service. La
DIMA est un délai de base pour la définition des RTO.
C'est à partir de la DIMA que les organisations définissent les solutions de secours de
leur système d'information pour les cas de scénarios de catastrophe majeure.
Cependant, il y a certaines organisations qui utilisent la DIMA, comme référence, pour
définir également le délai de reprise maximum en cas d'incident de production (ou
d'exploitation) sur leur système d'information.
Cette durée doit être définie à l’avance et adaptée aux besoins particuliers de vos
activités, chaque entreprise ayant des objectifs et critères de récupération spécifiques.
Exemple, si dans votre entreprise vous utilisez un logiciel de gestion pour la production
et que, d’un coup, ce logiciel tombe en panne, votre production est bloquée.
L’indicateur RTO de ce logiciel devra donc être extrêmement court. En effet, plus une
ressource paraît critique pour votre production, plus son RTO doit être court.
 L’analyse du RPO et du RTO permet de déterminer le temps total d’interruption
d’une ressource après un incident majeur.
NB: Ce délai comprend le temps de prise de décision du passage en mode secours et le
délai de relance de l’application ou de l’infrastructure en panne c.a.d. la restauration à
partir de la sauvegarde.

NB: Il y a 2 modes de fonctionnement de la base de données: mode Archivage et mode


non-archivage.
Pour un fonctionnement en mode non-archivage, il faut faire un back à froid, c’est-à-dire
arrêter la base de données et faire une copie physique de tous les fichiers.
Sauvegarde d’un Serveur
Les éléments à sauvegarder au sein d’un serveur (exemple: serveur d’application et
Base de données). Il y a 2 périmètres de sauvegarde sur un serveur:
1. Périmètre des binaires comprend :
1. le moteur de serveur d’application
2. les configurations associées et moteur de base de données
3. Les configurations
2. Périmètre des données regroupe:
1. Les fichiers applicatifs du serveur d’application
2. Les fichiers de données de la BD
Les types de sauvegarde d’une base de
données

1. Sauvegarde complète:
Consiste à copier l’ensemble des données dans leur état actuel, sans tenir
compte des sauvegardes déjà réalisés au préalable.
Temps de sauvegarde élevé (long), on copie 100% des données à chaque fois.
Gain de temps à la restauration parce qu’aucune reconstruction n’est nécessaire
parce que chaque version de sauvegarde contient l’ensemble des données dans
l’état où elles doivent être restaurées.
2. Sauvegarde différentielle:
Consiste à copier les données créées ou modifiées depuis la dernière
sauvegarde complète.
3. Sauvegarde incrémentale:
Consiste à copier les données créées ou modifiées depuis la dernière
sauvegarde quelque soit son type. Temps de sauvegarde très rapide. Prend en
compte que les changements depuis la dernière sauvegarde.
La restauration prend beaucoup de temps car il faut reconstruire les données
en restaurant la dernière complète puis rejouer les incrémentales jusqu’au
point de restauration souhaité.
Modes de sauvegarde
Il y a 2 modes de sauvegarde.
1. Sauvegarde à froid: réalisée lorsque l’application est arrêtée, ce qui permet
d’effectuer une sauvegarde de ces données durant la sauvegarde.
Qu’est ce qu’il faut sauvegarder?
V$datafile, V$logfile, V$controlfile, V$tempfile sont les vues qui nous
permettent d’identifier l’ensemble des fichiers à sauvegarder.
Etapes:
 Arrêter la base
 Copier l’ensemble des fichiers de la BD
 Démarrer la base

 En cas de panne : il suffit de reprendre ces fichiers


• Intéressant dans des bases avec peu de modifications
2. Sauvegarde à chaud: réalisée lorsque l’application est en cours d’utilisation ce
qui permet de faire une sauvegarde de ces données sans avoir à stopper
l’utilisation de l’application donc sans pénaliser le business qu’il y a derrière.
Nécessaire pour les applications tournant 24h/24, 7j/7.

Fichiers de données
• Sauvegarde avec le SE sur un chier OFFLINE
• Si le chier est ONLINE : on le "protège" avec les commandes BEGIN /END
BACKUP
Fichiers de contrôle
• Commande ALTER DATABASE

ATTENTION : a faire en mode archivage automatique sinon pas de restauration


possible
Processus de sauvegarde

Média de sauvegarde:
1. Bande: système de stockage sous forme de cassettes contenant une bande
magnétique.
2. Coté serveur on a 2 cas:
Serveur physique: un agent est installé sur l’OS du serveur dont les données sont à
sauvegarder. Communique avec le serveur, sauvegarde via LAN ou SAN
Serveur virtuel: sauvegardé via les snapshot, l’agent de sauvegarde n’est pas installé
au niveau de l’OS mais au niveau de l’hyperviseur.
 Snapshot: permet de capter l’état entier de la machine à un instant T, celui-ci
comprend le contenu de la mémoire de la machine virtuelle ainsi que ses paramètres
et l’état des disques virtuels (fichiers VMDK). Snapshots permettent de créer des
position de restauration pour revenir dans le temps. Le serveur de sauvegarde envoi
ensuite les données au lecteur de bandes et écrit les données sur des cassettes via
ses lecteurs.
Les cassettes peuvent être stockés soit sur des lecteurs temporaires, soit
récupérés pour être stockés ailleurs manuellement.
3. VTL (Virtual Tab Libary):
Système de stockage composé d’un ensemble de disque durs et d’un logiciel
permettant d’émuler l’espace disque en bande magnétique, donc vu comme un
lecteur de bande par le serveur de sauvegarde.
VTL reçoit les données du serveur de sauvegarde et les stock sur ses disques
dur. Il peut ensuite externaliser les données:
Soit par réplication de données vers une autre VTL
Soit en écrivant sur des lecteurs de bandes. VTL agit comme un tampon entre
serveur de sauvegarde et les bandes.
La déduplication

C’est une fonctionnalité très importante proposée par le VTL.


Déduplication (encore appelé factorisation d’un sens unique) st une technique de
stockage des données qui consiste à factoriser des séquences de données
identiques afin d’économiser l’espace utilisé.
NB: chaque fichier est découpé en une multitude de tronçons, dans l’objectif de
stocker qu’une seule tronçon, ce qui permet de réduire de façon significative la
taille des sauvegardes. Ceci permet d’économiser sur les infrastructures matérielles
et logicielles de stockage.
Chaque tronçon est associé à un identifiant unique, ces identifiants étant stockés
dans un index. De ce fait, une nouvelle occurrence d’un tronçon déjà présent n’est
pas sauvegardé à nouveau, mais remplacé par un pointer vers l’identifiant
correspondant.
Archivage automatique

• Dépend de la politique locale vis-à-vis des données


 Peut-on envisager une perte de données
 Si oui, quelle est la durée tolérable ?
• Assure une cohérence parfaite des données en cas de panne
• Effectue a chaque basculement de groupe dans les logs
• Possibilité de le lancer ponctuellement "à la main"
 ALTER SYSTEM ARCHIVE LOG (déconseillé)
Restauration
• Sans le mode archivage
 Perte des données depuis la dernière sauvegarde
 Restauration complète
• En mode archivage
 Restauration complète ou non
 Perte de fichiers de données ou du fichiers de contrôle
Restauration complète sans archivage
 1 : Fermer la base
 2 : Restaurer tous les fichiers de la sauvegarde la plus récente
 3 : Ouvrir la base
 Si les emplacements on change, modifier les déclarations avant de monter la base

Restauration avec archivage


 Commande RECOVER
 Possibilité de restaurer :
 Toute la base
 des tablespaces
 le fichier de contrôle
 des fichiers de données
 A partir :
 des fichiers de reprise archives
 de la sauvegarde la plus récente
Exemple : restauration partielle

• Ouvrir la base
• Désactiver les tablespace (offline)
• Réparer la panne disque
• Restaurer seulement les fichiers endommages
• lancer la restauration
• RECOVER TABLESPACE/DATAFILE
• Activer le tablespace
RMAN (Recovery Manager)

Permet de gérer les sauvegardes et restaurations d’une manière optimale. Permet


une gestion simple et efficace des sauvegardes/restaurations des bases de données
Oracle.
Permet de réaliser des sauvegardes:
 globales de la base (sauvegarde FULL, de niveau 0)
 D’espaces disque logiques (tels que les tablespaces)
 De fichiers de données (datafiles)
 De fichiers de contrôle (controlfiles)
 De fichiers d’archive (archivelog)
Avantages

 Evite de sauvegarder les blocs Oracle vides (optimiser la vitesse et l’espace de


sauvegarde)
 S’interface avec les outils de sauvegarde externe (gestionnaire de media)
 Garde la trace des sauvegardes réalisées (soit dans le fichier control, soit dans le
catalogue RMAN)
 Effectue des sauvegardes globales ou partielles
 Parallélisassions des opérations de sauvegarde/restauration afin d’accroître les
performances
 Gérer les périodes de conservation des sauvegardes
 Place les opérations de sauvegarde/restauration courantes dans le catalogue sous
forme de scripts
Permet aussi:
 De dupliquer une base de données de manière simple
 De mutualiser les scripts de sauvegarde, ils ne sont pas dépendants du système
d’exploitation. RMAN dispose de son propre langage de script.
 D’éditer des rapports
 De vérifier les sauvegardes

Différents types de sauvegardes avec RMAN


 COMPLET (ou FULL): sauvegarde tous les blocs
 DIFFERENTIEL: sauvegarde uniquement les blocs modifiés depuis la précédente
sauvegarde de niveau n ou inférieur
 CUMMULATIF: on sauvegarde uniquement les blocs modifiés depuis la période de
sauvegarde de niveau n-1
Trois niveaux de sauvegarde incrémentielles
 Niveau 0: base de tous les autres niveaux (sauvegarde de l’ensemble des blocs
contenant des données)
 Niveau 1: sauvegarde tous les blocs qui ont changé depuis la plus récente sauvegarde
incrémentielle de niveau 0
 Niveau 2: sauvegarde tous les blocs qui ont changé depuis la plus récente sauvegarde
incrémentielle de niveau 0,1 ou 2

NB:
NB:

BackupPiece: entité physique qui contient un ou plusieurs fichiers de données sauvegardés


BackupPiece: entité physique qui contient un ou plusieurs fichiers de données sauvegardés
BackupSets: entité logique qui contient un ou plusieurs BackupPiece
BackupSets: entité logique qui contient un ou plusieurs BackupPiece
Catalogue RMAN: référentiel sur lequel on va enregistrer l’ensemble des informations de
Catalogue RMAN: référentiel sur lequel on va enregistrer l’ensemble des informations de
paramétrage de RMAN. L’ensemble des informations concernant RMAN vont être stockées dans le
paramétrage de RMAN. L’ensemble des informations concernant RMAN vont être stockées dans le
catalogue RMAN
catalogue RMAN
c:\Oracle\product\11.2.0\dbhome_1\BIN>rman target sys/Oracle123@OCPDBA
Recovery Manager: Release 11.2.0.1.0 - Production on Sam. Mai 2 01:12:06 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connectÚ Ó la base de donnÚes cible : OCPDBA (DBID=1832665513)
RMAN>
RMAN> show all;
utilisation du fichier de contr¶le de la base de donnÚes cible au lieu du catalo
gue de rÚcupÚration
les paramÞtres de configuration RMAN de la base de donnÚes ayant le db_unique_na
me OCPDBA sont les suivants :
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
Les Mouvements de données
Backup logique par Export/Import

La sauvegarde logique consiste à enregistrer des données de la base sur un fichier


externe. Ce fichier contient simplement les commandes SQL à exécuter pour
obtenir les données.
Elle va nous permettre de sauvegarder le contenu logique d'une base de données
dans un fichier de transfert Oracle au format binaire, ou fichier dump. Ce fichier
pourra donc être relu pour recréer des objets qu'il contient. Ce transfert peut
s'accomplir sur une même base ou même sur deux bases Oracle, et cela même si
leurs configurations matérielles et logicielles diffèrent. Cela signifie que l'on peut
tout à fait exporter une base sous Windows pour l'importer sous Linux
L’export est la sauvegarde d’une lecture de la base à instant donné T et ne permet
pas d’avoir une sauvegarde cohérente de la base.
La principale raison du manque de cohérence de cette sauvegarde est qu’un export
ne va pas enregistrer la façon dont est organisée la base (emplacement des
datafiles sur les filesystems) ni son paramétrage (taille des mémoires etc…) ; il ne
sauvegarde que la structure des tables et leurs données.
Par ailleurs, un export est un cliché à un instant T de la base ; impossible de
remettre la base à un instant T+1 avec cet export.
A l’import, il faudra préparer la base cible avec les mêmes tablespaces, datafiles
pour pouvoir recevoir les données.