Oracle Administration Notes

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
        • À froid
        • À chaud
    • 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 normal
  • shutdown immediate
  • shutdown 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 normal
      • Shutdown immediate
      • Shutdown 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
Fichiers Sauvegardés
  • 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
  1. Vérifier si la base de données n'est pas en mode ARCHIVELOG
  2. Modifier le fichier de paramètres d'initialisation (initSID.ora)
  3. Arrêter la base de données
  4. Monter la base de données
  5. Activer le mode ARCHIVELOG
  6. 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
  • Avant activation:
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
  • Après activation:
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
  1. Placer le tablespace dans le mode de sauvegarde
  2. Copier tous ses fichiers
  3. 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;