Introduction
- Plan:
- Introduction
- Architecture interne d'Oracle
- Gestion des instances
- Privilèges et rôle
- Profil
- Gestion des utilisateurs
- Sauvegarde et restauration
- Notion de panne
- Reprise après la panne
- Sauvegarde physique
- Quelques utilitaires
Notion de Panne
- Plusieurs problèmes peuvent survenir.
- Deux types de pannes:
- Pannes système (system failure)
- Pannes disque (media failure)
Panne Système
- Plusieurs causes:
- Coupure de courant
- Erreur de l’utilisateur
- …
- Conséquences:
- Arrêt de l’instance dans un état incohérent
- Transactions inachevées
- Transactions validées non enregistrées
- Pas de perte de données
Panne Disque
- Causes physiques: Problème disque, par exemple.
- Conséquences: Perte des données:
- Des fichiers de données
- Des fichiers d’un tablespace
- De toutes les données
- D’un fichier de contrôle
- Perte de données
Reprise de la Base de Données
- Suivant le type de panne:
- Reprise d’instance: Reprise complète et automatique par Oracle au démarrage de l’instance. Commande:
startup recover - Reprise de média: Restauration des données à partir d’une sauvegarde (backup) manuellement.
Démarrage d’une Base de Données
- Commande :
Startup - Paramètres:
NOMOUNT: Créé la SGA et démarre les processus en arrière plan mais ne permet pas l'accès à la base (reste un OPEN à faire).MOUNT: Monte la base pour certaines activités DBA mais ne permet aucun accès à la base.OPEN: Permet aux utilisateurs d'accéder à la base.PFILE: Spécifie le fichier d'initialisation à prendre en compte.RECOVER: Démarre la restauration media quand la base démarre.
Arrêt de la Base de Données
shutdown ou shutdown normalshutdown immediateshutdown transactionnal
Sauvegarde (Backup)
- Types de sauvegarde:
- Logique
- Physique
- À froid ou hors ligne
- À chaud ou en ligne
Sauvegarde Physique
- Cette sauvegarde consiste en la copie des fichiers (et donc les données proprement dites) qui constituent la base de données.
- Oracle supporte deux types de sauvegardes physique:
- Sauvegarde hors ligne : à froid (offline backup, cold backup)
- Sauvegarde en ligne : à chaud (online backup, hot backup)
Sauvegarde Hors Ligne
- Pour ce type de sauvegarde:
- Arrêter normalement la base de données
Shutdown normalShutdown immediateShutdown transactionnel
- Copier les fichiers vers une unité de stockage (disque ou bande).
- Démarrer la base de données
Syntaxe
Shutdown immediate
--Copier les fichiers de données à l’aide des commandes du système d’exploitation
Startup
Exemple
select name from v$datafile;
shutdown immediate;
host copy C:\ORA\DATABASE\SYS1ORC1.ORA c:\froid;
host copy C:\ORA\DATABASE\USR1ORC1.ORA c:\froid;
host copy C:\ORA\DATABASE\RBS1ORC1.ORA c:\froid;
host copy C:\ORA\DATABASE\TMP1ORC1.ORA c:\froid;
host copy C:\ORA\DATABASE\SYSDATA1.DBF c:\froid;
startup open
- Tous les fichiers de données
- Tous les fichiers de contrôle
- Tous les fichiers journaux
- Le fichier de paramètres d'initialisation
Avantage
- Permet d'obtenir une image complète de la base telle qu'elle existait au moment de son arrêt.
- L'ensemble complet de ces fichiers pourrait être extrait à partir de la sauvegarde, et la base de données serait en mesure de fonctionner.
Sauvegarde En Ligne
- Ce type de sauvegarde physique peut être effectué pour une base de données qui fonctionne en mode ARCHIVELOG.
- Il permet de sauvegarder les données physiques de la base de données alors qu'elle demeure ouverte.
Avantage
- Offre la possibilité de récupération complète jusqu'à un point donné dans le temps
- Permet à la base de données de rester ouverte durant la sauvegarde du système de fichiers
- Maintenir la base de données ouverte évite que la zone SGA de l'instance soit réinitialisée.
Rendre une Base de Données en Mode ARCHIVELOG
- Vérifier si la base de données n'est pas en mode ARCHIVELOG
- Modifier le fichier de paramètres d'initialisation (initSID.ora)
- Arrêter la base de données
- Monter la base de données
- Activer le mode ARCHIVELOG
- Redémarrer la base de données
Exemple de Fichier d'Initialisation
# Uncommenting the line below will cause automatic archiving if archiving has
# been enabled using ALTER DATABASE ARCHIVELOG
# Permission d'utiliser le mode ARCHIVELOG
log_archive_start = TRUE
# Destination des archives de REDO
log_archive_dest_1 = "location=c:\oracle\oradata\BD0\archive"
log_archive_dest_2 = "location=c:\temp"
# Format de fichier des archives
log_archive_format = %%ORACLE_SID%%T%TS%S.ARC
Syntaxe pour Activer le Mode ARCHIVELOG
archive log list;
shutdown immediate;
startup mount;
Alter database archivelog
alter database open;
archive log list;
Exemple de Sortie
SQLWKS> archive log list;
Mode journal de base de données Mode archive
Désactivé
Archivage automatique
XRDBMS80%\
Destination d'archive
45
Plus ancienne séquence de journal en ligne 45
Séquence suivante de journal à archiver
Séquence de journal courant
SQLWKS> shutdown immediate:
Base de données fermée
Base de données démontée
Instance ORACLE arrêtée
SQLWKS> startup mount:
Instance ORACLE démarrée
48
There is no more information about this error.
Fixed Size
Variable Size
Database Buffers
Redo Buffers
Base de données montée
SQLWKS> alter database open;
Instruction
traitée
SQLWKS> archive log list;
Mode journal de base de données Mode archive
Activé
Archivage automatique
C:\Ora\database\archive
Destination d'archive
45
Plus ancienne séquence de journal en ligne 45
Séquence suivante de journal à archiver
Séquence de journal courant
48
Réalisation d'une Sauvegarde à Chaud
- Placer le tablespace dans le mode de sauvegarde
- Copier tous ses fichiers
- Libérer le tablespace (mode normal)
Syntaxe
Connect / as sysdba
Alter tablespace abbey_data begin backup;
-- commandes du système d'exploitation pour copier les fichiers de données;
alter tablespace abbey_data end backup;
Exemple de Script (Automatiser la sauvegarde à chaud)
ACCEPT repertoire;
ACCEPT fichier;
SPOOL &fichier
SELECT ' alter tablespace ' || tablespace_name || ' begin backup ; ' FROM dba_tablespaces;
SELECT ' host copy ' || file_name || ' &repertoire ' FROM dba_data_files;
SELECT ' alter tablespace ' || tablespace_name || ' end backup ; ' FROM dba_tablespaces;
@&fichier
Exemple de Sortie du Script
alter tablespace SYSTEM begin backup ;
alter tablespace UNDOTBS1 begin backup ;
alter tablespace TEMP begin backup ;
…
host copy D:\ORACLE\ORADATA\FAC\SYSTEM01.DBF c:\repertoire
host copy D:\ORACLE\ORADATA\FAC\UNDOTBS01.DBF c:\repertoire
host copy D:\ORACLE\ORADATA\FAC\CWMLITE01.DBF c:\repertoire
host copy D:\ORACLE\ORADATA\FAC\DRSYS01.DBF c:\repertoire
…
alter tablespace SYSTEM end backup ;
alter tablespace UNDOTBS1 end backup ;
alter tablespace TEMP end backup ;
…
Exemple de Procédure (Automatiser la sauvegarde à chaud)
Create or replace procedure chaud
cursor c0 is select * from dba_tablespaces;
cursor c1(a varchar) is select * from dba_data_files where tablespace_name=a;
begin
for y in c0 loop
dbms_output.put_line(' alter tablespace ' || y.tablespace_name || ' begin backup ; ');
for x in c1(y.tablespace_name) loop
dbms_output.put_line('host copy '||x.file_name||' c:\rep');
end loop;
dbms_output.put_line(' alter tablespace ' || y.tablespace_name || ' end backup ; ');
end loop;
end;