Académique Documents
Professionnel Documents
Culture Documents
DONNEES
Pr BOUZIDI
2008-2009
Objectifs
D.BOUZIDI 2
Plan du cours
Introduction
Architecture conceptuelle de la BD Oracle
Installation et configuration du logiciel Oracle
Database 10g
Contrôle la base de données
Gestion du fichier de contrôle
Gestion des fichiers de journalisation
Gestion des structures de stockages
Sauvegarde / récupération :IMPORT/EXPORT
Chargement de données : SQLLOADR
Sauvegarde et restauration à l’aide de backup
Introduction
Rappel (1)
Base de données (BD) : ensemble de données
organisé en vue de son utilisation par des
programmes correspondant à des applications
distinctes et de manière à faciliter l'évolution
indépendante des données et des programmes.
SGBD : ensemble de programmes qui permettent
l'accès à une BD
Une table est l’élément de base d’une BD
Constituée de lignes de données
Chaque ligne comporte une ou plusieurs colonnes
Une colonne unique d'une ligne unique est appelée champ
Ligne
Colonne
Table Champ
D.BOUZIDI 5
Rappel (2)
D.BOUZIDI 7
D.BOUZIDI 8
Architecture conceptuelle de la
BD Oracle
Objectifs
D.BOUZIDI 10
Présentation
Processus Processus Instance
utilisateur serveur
Zone de mémoire
Mémoire SGA partagée
PGA
Fichier
Fichier
ALERT
Trace
Fichiers de Fichiers
contrôle de journalisation
Fichiers de
Paramètres
Fichier
données
PWD
Fichier
Base de données
D.BOUZIDI 11
Présentation
D.BOUZIDI 12
L’instance
Instance
Zone de mémoire
Mémoire SGA partagée
Cache des tampons Cache library
tampons Journalis
des DATA ation Cache dictio D
D.BOUZIDI 13
Instance
Zone de mémoire
Mémoire SGA partagée
Cache des tampons Cache library
tampons Journalis
des DATA ation Cache dictio D
D.BOUZIDI 15
D.BOUZIDI 17
D.BOUZIDI 21
D.BOUZIDI 23
D.BOUZIDI 25
Installation et configuration du
logiciel Oracle Database 10g
Objectifs
D.BOUZIDI 27
Configuration système
requise
D.BOUZIDI 28
Architecture OFA (Optimal
Flexible Architecture)
L’objectif de l'architecture OFA est de :
définir une organisation des répertoires (application,
base de données, …)
recommender une convention de nomage des fichiers
OFA permet de faciliter les tâches
d'administration répétitives :
basculement entre plusieurs bases de données Oracle
gestion et administration adéquate de la croissance de la
base de données
Contribution à élimination de la fragmentation de
l'espace libre
D.BOUZIDI 29
D.BOUZIDI 30
Les variables d'environnement
ORACLE_SID : nom de l'instance (par défaut ORCL)
ORACLE_HOME : répertoire de base contenant le
logiciel Oracle
ORACLE_BASE : base de la structure de répertoires
Oracle pour l'architecture OFA
NLS_LANG : paramètres de langue, de territoire et
de jeu de caractères client
D.BOUZIDI 31
D.BOUZIDI 32
Emplacement et type d’installation
Choix de l’emplacement et du
type de l’installation
D.BOUZIDI 33
Lancement de l’installation
D.BOUZIDI 34
Fin de l’installation
D.BOUZIDI 35
D.BOUZIDI 37
Démarrer et arrêter
iSQL*Plus
$ isqlplusctl start
iSQL*Plus 10.1.0.2.0
Copyright (c) 2004 Oracle. All rights reserved.
Starting iSQL*Plus ...
iSQL*Plus started.
$ isqlplusctl stop
iSQL*Plus 10.1.0.2.0
Copyright (c) 2004 Oracle. All rights reserved.
Stopping iSQL*Plus ...
iSQL*Plus stopped.
D.BOUZIDI 38
Structure de gestion
Les trois composants de la structure de
gestion d'Oracle Database 10g sont les
suivants :
Instance de base de données
Processus d'écoute
Interface de gestion (Database Control)
Database
Control Listener
D.BOUZIDI 39
D.BOUZIDI 40
Accéder à Database Control
D.BOUZIDI 41
D.BOUZIDI 42
Modifier le statut du processus
d'écoute
D.BOUZIDI 43
DEMARRAGE OUVERTURE
Ouverture de tous les fichiers
conformément au fichier de
MOUNT contrôle de cette instance.
Ouverture du
fichier de contrôle
NOMOUNT de cette instance.
Démarrage
de l'instance.
ARRET ARRET
D.BOUZIDI 44
Options d'arrêt
Mode d'arrêt A I T N
Mode d'arrêt :
A Abort I Immediate x NON
T Transactional N Normal o OUI
D.BOUZIDI 45
D.BOUZIDI 46
Options SHUTDOWN
Pendant les
opérations
Vers le bas : Vers le
Le cache de SHUTDOWN haut :
tampons de la NORMAL Pas de
base de données ou
récupération
SHUTDOWN
est écrit dans les d'instance
TRANSACTIONAL
fichiers de données ou
Les modifications SHUTDOWN
non validées IMMEDIATE
sont annulées
Les ressources
sont libérées
Base de données
cohérente
(base de données propre)
D.BOUZIDI 47
Options SHUTDOWN
Pendant les
Vers le bas : opérations Vers le haut :
Les mémoires SHUTDOWN ABORT
Les fichiers de
tampon ou journalisation en
modifiées ne échec d'une ligne sont
sont pas écrites instance utilisés pour
dans les
ou réappliquer
STARTUP FORCE les modifications
fichiers de
données Les segments
Les d'annulation
modifications sont utilisés
non validées ne pour annuler les
sont pas modifications
Base de données non validées
annulées incohérente
Les ressources
(base de données "dirty")
sont libérées
D.BOUZIDI 48
Options SHUTDOWN
STARTUP [Option]
D.BOUZIDI 49
STARTUP PFILE=init015.ora
SHUTDOWN Immediate;
D.BOUZIDI 50
Ouvrir une base de données en
mode lecture seule (READ ONLY)
Toute base de données peut être ouverte en mode
lecture seule.
Dans ce mode, vous pouvez :
lancer des interrogations,
effectuer des opérations de tri sur disque
avec des tablespaces gérés en local,
utiliser des fichiers de données hors ligne
et en ligne, et non des tablespaces,
récupérer des fichiers de données hors
ligne et des tablespaces.
D.BOUZIDI 51
Fichier de paramètres
d'initialisation
Instance
Zone de mémoire
Mémoire SGA partagée
D.BOUZIDI 52
Fichier de paramètres
d'initialisation
Modifier les paramètres de la session en cours :
Alter session set nomPar = valPar;
D.BOUZIDI 53
Fichier de paramètres
d'initialisation binaire SPFile
Le fichier SPFILE (Server Parameter File) est un fichier binaire,
permet stocker les modifications des paramètres faites par
Oracle, de manière à toujours garantir une cohérence entre le
contenu du fichier et les modifications effectuées avec ALTER
SYSTEM
Toute modification de ces fichiers entraîne leur corruption, ce
qui a pour conséquence l’échec du démarrage de l’instance ou
la panne de l’instance active.
Emplacement : show parameter spfile
D.BOUZIDI 55
D.BOUZIDI 57
D.BOUZIDI 58
Afficher les vues dynamiques
des performances
OUVERTURE
Dictionnaire
de données
MOUNT
D.BOUZIDI 59
D.BOUZIDI 60
Gestion des sessions
Activer et désactiver une session en mode restreint
Exécutez la commande STARTUP pour restreindre
l'accès à une base de données :
STARTUP RESTRICT
Exécutez la commande ALTER SYSTEM pour mettre
une instance en mode restreint :
ALTER SYSTEM ENABLE RESTRICTED SESSION;
Interrompre une session
Dans la vue dynamique des performances V$SESSION,
identifiez la session à interrompre :
SELECT sid, serial# FROM v$session WHERE
username='SCOTT';
Exécutez la commande ALTER SYSTEM :
ALTER SYSTEM KILL SESSION '7,15';
D.BOUZIDI 61
D.BOUZIDI 62
Gestion du fichier de contrôle
D.BOUZIDI 64
Contenu du fichier de contrôle
Nom et identificateur de la base de données
Date de création de la base de données
Emplacement des fichiers de données et de journalisation
Noms des tablespaces et les fichiers de données (nom de
fichier,statut lecture/écriture, en ligne ou non)
Les fichiers log en ligne
Historique de journalisation archivés
Informations de sauvegarde
Informations sur les blocs corrompus
……
D.BOUZIDI 65
Unité 2
Unité Unité 3
control01.ctl control02.ctl control03.ctl
D.BOUZIDI 66
Multiplexer le fichier de contrôle
Deux méthodes pour multiplexer le fichier de contrôle :
Méthode 1
Visualiser les fichiers de contrôle existants
Arrêter la base
Modifier le paramètre CONTROL_FILES dans le fichier init.ora
Copier le fichier de contrôle en utilisant les commandes OS (ex. on crée le fichier de
contrôle control04.ctl à partir du fichier control01.ctl)
Démarrer la base de données avec l’option pfile
Méthode 2
Pour ajouter le nouveau fichier de contrôle dans le spfile en spécifiant le chemin
c:\oracle\product\10.2.0\oradata\orcl\control04.ctl en utilise la commande :
alter system set control_files=
'c:\oracle\product\10.2.0\oradata\orcl\control01.ctl',
'c:\oracle\product\10.2.0\oradata\orcl\control02.ctl ',
'c:\oracle\product\10.2.0\oradata\orcl\control03.ctl ',
'c:\oracle\product\10.2.0\oradata\orcl\control04.ctl' scope=spfile;
Arrêter la base
Copier le fichier de contrôle en utilisant les commandes OS
Démarrer la base de données
Oracle met à jours les fichiers de contrôle en même temps, mais seul le premier fichier
cité dans le paramètre CONTROL_FILES est consulté.
//SCOPE=SPFILE:le changement de paramètre est enregistré dans le SPFILE, et ne sera
pris en compte qu’au prochain démarrage de l'instance. Utilisé pour les paramètres non
dynamique
D.BOUZIDI 67
sauvegarder le fichier de
contrôle
Deux méthodes :
Commande sauvegardant le fichier de contrôle en un fichier binaire :
D.BOUZIDI 68
Obtenir des informations
D.BOUZIDI 69
Instance
Zone de mémoire
Mémoire SGA partagée
LGW ARC
Fichiers de Fichiers de
données Fichiers
contrôle
de journalisation
Fichiers
archivages
Base de données des logs
D.BOUZIDI 71
Unité 2
En mode NOARCHIVELOG, un fichier log plein est disponible après que les
changements enregistrés dedans sont écrits dans les fichiers de données.
En ARCHIVELOG, un fichier log plein est disponible après que les changements
effectués dedans sont écrits dans les fichiers de données et était archivé
Un fichier log en ligne ou archivé est identifié par son numéro de séquence
D.BOUZIDI 72
Obtenir des informations
Sur l'archivage à partir :
Ligne de commande : ARCHIVE LOG LIST;
V$DATABASE (NAME,LOG_MODE)SELECT name, log_mode FROM v$database;
V$INSTANCE (ARCHIVER) SELECT archiver FROM v$instance;
Changements de fichier de
journalisation et points de reprise
Un log switch est le point où la base arrête d'écrire dans l'un des
fichiers redo en ligne et commence à écrire dans un autre.
Se déclanche :
Le fichier log courant est plein et on doit continuer à écrire dans le fichier redo
Configuré pour qu'il se reproduit à intervalles réguliers
Manuellement
Imposer des changements de fichier de journalisation à l'aide de la
commande :
ALTER SYSTEM SWITCH LOGFILE;
D.BOUZIDI 74
Processus CKPT
Le CHECKPOINT est un évènement qui se déclencher lors :
D'un changement de groupe de REDO LOG FILE.
D'un arrêt normal de la base de données (c'est à dire sans l'option
ABORT)
D'une demande explicite de l'administrateur
D'une limite définie par les paramètres d'initialisation
LOG_CHECKPOINT_INTERVAL : spécifie le nombre maximum de
blocs du REDO LOG Buffer qui seront alors lus lors d'une
restauration de l'instance.
LOG_CHECKPOINT_TIMEOUT : Défini en secondes. Il permet de
définir le temps maximum entre 2 CHECKPOINTS (ver > 8i : permet
de définir le temps maximal de lecture du processus LGWR ).
FAST_START_IO_TARGET : en secondes, il définit le temps
maximum pour restaurer une instance.
L'évènement CHECKPOINT déclenche
Le LGWR : vide le REDO LOG Buffer.
l'écriture d'un certain nombre de blocs du Database Buffer Cache dans
les fichiers de données par DBWn. Le nombre de blocs écris par DBWn
est défini avec le paramètre FAST_START_IO_TARGET
D.BOUZIDI 75
D.BOUZIDI 77
D.BOUZIDI 78
Gestion des structures de
stockages
Hiérarchie de stockage
de la base de données
Base de
données
Fichier
Tablespace
de données
Extent
Les tablespaces
Création de tablespaces
CREATE TABLESPACE app_data
DATAFILE '/DISK1/app_data_01.dbf‘ SIZE 100M,
'/DISK2/app data_ 02.dbf‘ SIZE 100M
DEFAULT STORAGE ( INITIAL 500K
NEXT 500K
MAXEXTENTS 500
PCTINCREASE 0 );
Modification Manuellement
ALTER DATABASE
DATAFILE '/DISK5/app_data_02.dbf'
RESIZE 200M;
Ajout d’un datafile
ALTER TABLESPACE app_data
ADD DATAFILE '/DISK5/app_data_03.dbf' SIZE 200M;
D.BOUZIDI 89
Types de segment
On distingue cinq types de segments :
3. Les segments temporaires
Utilisés par Oracle pour le traitement des requêtes SQL
nécessitant un espace disque temporaire.
Les segments temporaires sont créés en cas de besoin et
supprimés après l’exécution de la commande.
Le tablespace dans lequel sont crées ces segments est défini
lors de la création et modification d’un utilisateur. Si ce
tablespace n’est pas défini, alors c’est le tablespace SYSTEM
qui est utilisé par défaut.
4. Le segment d’amorçage (BOOTSTRAP)
Ce segment est créé dans le tablespace SYSTEM. Il contient
les définitions des objets du dictionnaire de données qui sont
chargées lors de l’ouverture de la base
5. Les segments d’annulation (ROLLBACK)
Ces segments (rollback segments) contiennent les données
avant modification due à une transaction. Ils permettent
d’annuler leur effet en cas de besoin.
D.BOUZIDI 90
Notion d’extent et de bloc
Notion d’extents :
Une extent est un ensemble contigu de blocs logiques alloués
à un segment.
Tout segment est initialement créé avec un extent initiale
(initial extent).
Allocation lorsque le segment est créé, étendu ou modifié.
Libération lorsque le segment est supprimé, modifié,
tronqué,
Notion de bloc :
Unité minimum d'entrée/sortie
Constitué d'un ou de plusieurs blocs de système
d'exploitation
Défini par DB_BLOCK_SIZE
Défini lors de la création de la base de données
D.BOUZIDI 91
En-tête (@ du bloc,
type de segment,…)
D.BOUZIDI 92
Paramètres d'utilisation
de l'espace de bloc
INITRANS
D.BOUZIDI 93
Insertions Insertions
1 2
80 %
40 %
Insertions Insertions
3 3
D.BOUZIDI 94
Vues du dictionnaire de données
Informations de tablespace :
DBA_TABLESPACES
V$TABLESPACE
DBA_TABLESPACE_USAGE_METRICS
Informations de fichier de données :
DBA_DATA_FILES
DBA_TABLES
V$DATAFILE
Informations de fichier temporaire :
DBA_TEMP_FILES
V$TEMPFILE
Informations sur les segments :
DBA_SEGMENTS
Informations sur les extents :
DBA_EXTENTS (Extents utilisés)
DBA_FREE_SPACE (Extents libres)
D.BOUZIDI 95
D.BOUZIDI 97
Profil utilisateur
Le contrôle de l’utilisation de la BD :
CPU : exprimé par session ou par appel
CPU/Session (exprimé en centièmes de secondes) : pour une valeur
égale à 1000, un utilisateur, qui consomme plus de 10 secondes de
temps de CPU, sera déconnecté.
CPU/Call : au lieu de limiter la session globale d’un utilisateur, on
empêche que la commande qui consomme plus des ressources CPU
de l’utilisateur
Network/Memory : une session utilisateur consomme des
ressources réseau et mémoire, on peut donc gérer :
Nombre de minutes pendant lesquelles un utilisateur peut être
connecté avant d'être automatiquement déconnecté (Connect Time).
Nombre de minutes pendant lesquelles une session utilisateur peut
rester inactive avant d'être automatiquement déconnectée (Idle Time).
Nombre de sessions simultanées pouvant être créées à l'aide d'un
compte utilisateur de base de données.
Private SGA : limite la quantité d'espace consommé dans la mémoire
pour le tri, création d’index, etc.
Disk I/O : limite la quantité de données qu'un utilisateur peut
lire, par session ou par appel.
D.BOUZIDI 98
Contrôle de l’authentification :
Profil utilisateur
L’authentification permet de vérifier l’identité d’une entité qui
souhaite utiliser les ressources de la base de données :
Ce mécanisme permet d’établir une relation de confiance pour les
interactions ultérieures.
La responsabilité : permettant de lier l’accès et des actions à des
entités spécifiques.
Trois technique d’authentification:
Password (Authentification par la base de données) : crée chaque
utilisateur avec un mot de passe associé qui doit être fourni lorsde la
connexion (ex: CREATE USER scott IDENTIFIED by tiger;)
External (Authentification par le système d’exploitation) : ce mode
l’authentification repose sur celle définie par l’OS. Aucun mot de
passe de base de données n'est utilisé pour ce type de connexion. (ex:
CREATE USER OPS$NomUser IDENTIFIED EXTERNALLY; )
Global (Authentification globale) : permet de renforcer
l’authentification via d’autre systèmes comme l'identification des
utilisateurs via la biométrie, les certificats x509, les systèmes tiers et
Oracle Internet Directory. Avantage fait une seul authentification
Lorsqu'un utilisateur est créé, son statut peut être verrouillé ou
déverrouillé. Si un compte utilisateur verrouillé, ne peut être utilisé pour
se connecter à la base de données.
D.BOUZIDI 99
Tablespace :
Tablespaces et de schémas
Un tablespace par défaut est le tablespace dans lequel les objets sont
créés si aucun tablespace n'est désigné lors de la création de l'objet
Si on a pas choisi de tablespace par défaut, le tablespace permanent par défaut
défini par le système est utilisé
Si on n’a pas indiqué de tablespace temporaire, celui défini par le système est
utilisé
CREATE USER user01 identified by PWDuser01
DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users;
Schéma :
L'ensemble des objets appartenant à un utilisateur est appelé schéma (Tables,
Déclencheurs, Index, Vues, Séquences, Types de données définis par l'utilisateur,
…)
Lors de la création d'un utilisateur de base de données, un schéma correspondant
portant le même nom est créé pour cet utilisateur
Les objets du même schéma peuvent résider dans différents tablespaces et un
tablespace peut contenir des objets de différents schémas
Un utilisateur ne peut être associé qu'à un seul schéma, le nom utilisateur et le
schéma sont souvent utilisés de manière interchangeable.
Pour accèder aux objets de l’utilisateur user01 (si on a le droit) on précede le nom
de l’objet par le nom de l’utilisateur (equi au nom du schéma)
D.BOUZIDI 100
Privilèges
Par défaut, lorsqu'un utilisateur est créé, aucun privilège ne
lui est accordé, il ne peut effectuer aucune opération dans la
base de données.
Si l'utilisateur ne dispose d'aucun quota dans aucun
tablespace, il ne pourra pas créer d'objets.
Deux types de privilège :
Système :
Accordé par l'administrateur ou par quelqu'un à qui la permission
d'administrer le privilège a été accordé,
Permet aux utilisateurs d'effectuer des actions particulières dans la
base de données (par exemple créer des Tablespaces).
Objet :
permet aux utilisateurs d'accéder à un objet spécifique et de le
manipuler (table, sequence, …)
Sans permission spécifique, les utilisateurs ne peuvent accéder qu'à
leurs propres objets.
Les privilèges objet peuvent être accordés par
le propriétaire d'un objet,
l'administrateur
Privilèges
D.BOUZIDI 102
Exemples de privilèges
Privilèges système
Catégorie Exemples
INDEX CREATE ANY INDEX
ALTER ANY INDEX
Privilèges Objet
DROP ANY INDEX
OBJET Privilèges
TABLE CREATE TABLE
CREATE ANY TABLE Table ALTER, DELETE, INDEX,
ALTER ANY TABLE INSERT, REFERENCES,
DROP ANY TABLE SELECT, UPDATE
SELECT ANY TABLE Séquence ALTER, SELECT
UPDATE ANY TABLE
DELETE ANY TABLE vue DELETE, INSERT,
SELECT, UPDATE
SESSION CREATE SESSION
ALTER SESSION Procédure EXECUTE
RESTRICTED SESSION
D.BOUZIDI 103
Affectation de quotas
Un quota est une allocation d'espace dans un tablespace
donné.
Par défaut, un utilisateur ne dispose d'aucun quota sur aucun
des tablespaces.
Trois options pour affecter un quota utilisateur
Unlimited : permet à l'utilisateur d'employer tout l'espace
disponible dans le tablespace.
Valeur : indique l'espace pouvant être employé par l'utilisateur.
Cette valeur ne garantit cependant pas que l'espace est réservé
pour l'utilisateur. Elle peut être supérieure ou inférieure à l'espace
actuellement disponible dans le tablespace.
Privilège système UNLIMITED TABLESPACE : remplace tous les
quotas individuels sur les tablespaces et accorde à l'utilisateur un
quota illimité sur tous les tablespaces
D.BOUZIDI 104
Manipulation des comptes user
Création d’un utilisateur:
CREATE USER user01 IDENTIFIED BY PwdUser01
DEFAULT TABLESPACE AppData
TEMPORARY TABLESPACE temp
QUOTA 15M ON dAppDta
PASSWORD EXPIRE;
Modification des paramètres utilisateur :
ALTER USER user01 QUOTA 50M ON AppData;
Suppression d’un utilisateur :
DROP USER peter;
Sauvegarde et restauration
Logique
(Import/export)
IMPORT et EXPORT
D.BOUZIDI 107
D.BOUZIDI 108
Mode d’Import et d’Export
Table (option TABLES)
Lors de l'exportation d’une table tous ses
objets (index, contraintes, déclencheurs,
privilèges …) sont sauvegardés dans le
fichier d’export
Lors de L'importation les tables doivent être
nommées grâce au paramètre TABLES
(comme dans l’exportation)
Tablespace (TABLESPACE)
les métas donnés concernant les tablespaces
spécifiés et les objets qu'ils contiennent sont
écrites dans un fichier d’export
D.BOUZIDI 109
Privilèges
D.BOUZIDI 110
Paramètres de l’Export
Paramètres Description
Userid chaîne de connexion à la base de données
File Nom du fichier de sauvegarde
Log Nom du fichier de sortie du compte-rendu, pour voir les
erreurs en particulier
Full Export de toute la base
Grants Export des privilèges
Indexes Export des index
Owner Utilisateur(s) à exporter
Parfile Fichier contenant les paramètres d'export
Rows Export des lignes
Query Définit une condition de filtre pour exporter un sous-
ensemble
Tables Table(s) à exporter
D.BOUZIDI 111
Paramètres d’import
Paramêtres Description
Userid chaîne de connexion à la base de données
File Nom du fichier de sauvegarde
Log Nom du fichier de sortie du compte-rendu, pour voir les
erreurs en particulier
Fromuser Utilisateur à exporter vers TOUSER
Full Export de tout le contenu du fichier de sauvegarde
Grants Import des privilèges
Indexes Import des index
Parfile Fichier contenant les paramètres d‘import
Rows Import des lignes
Show Liste le contenu du fichier d'export, aucune opération
n'est effectuée dans la base
Destroy Détruit les objets s'ils existent avant de les importer
Tables Table(s) à exporter
D.BOUZIDI 113
Exemple d’import
Importer tous les schémas sauvegardés
imp userid=stystem/manager
file=c:\save\exp_ORCL_struct_full.dump
log=c:\logsave\imp_ORCL_struct_full.log
D.BOUZIDI 114
Exemple d’export /import utilisant
un fichier de paramètres
Création du fichier de paramètres d’export
userid=system/manager expScott.prm
file=c:\save\exp_scott_full.dump
log=c:\exp_scott_full.log
owner=scott
rows=n
Export un schéma
exp parfile=c:\fichierParametre\expScott.prm
Export un schéma
imp parfile=c:\fichierParametre\impScott.prm
D.BOUZIDI 115
Sauvegarde et
de restauration physique
Stratégie de
Sauvegarde et de Restauration
Les exigences professionnelles, opérationnelles et techniques
dictent la nature de la stratégie.
Toute stratégie de sauvegarde et restauration doit être testée.
Haute disponibilité, immobilisation minimale et restauration
complète des données sont les éléments clés d'une stratégie
efficace.
Objectif
D.BOUZIDI 117
Sauvegarde à Froid
D.BOUZIDI 118
Sauvegarde à Froid d’une base de données
Les étapes de sauvegarde
Lister les noms des fichiers à sauvegarder
Fichiers de données
Select * from dba_data_files;
Fichiers de contrôles
Select * from v$parameter where name like ‘control_files’;
Les fichiers log
Select * from v$logfile;
Arrêter de la base de données en mode immediate
Shutdown immediate
Effectuer une copie des fichiers à sauvegarder par une
commande OS
Redémarrer la base de données
D.BOUZIDI 119
D.BOUZIDI 120
Sauvegarde à Chaud
Permet de faire une sauvegarde d’une Base de données
sans la faire arrêter
Utile dans un contexte à haute disponibilité où l’état des
fichiers change constamment
Fonctionnement : Placer un tablespace dans le mode de
sauvegarde et de sauvegarder les fichiers de données, puis
de rétablir le tablespace dans le mode normal
La base de données doit être en mode Archivelog
D.BOUZIDI 121
Sauvegarde à Chaud
Stratégie de sauvegarde:
Sauvegarde complète de la base de données à des
intervalles réguliers
Sauvegarde partielle de la base de données
Archivage des fichiers de journalisation (log)
Sauvegarde du fichier de contrôle en cas de
modification dans la base de données
D.BOUZIDI 122
Sauvegarde à Chaud
Sauvegarde d’un tablespace
Identifier les fichiers du tablesapce à sauvegarder
Select file_name from dba_data_files where tablespace_name=
'NOMTABLESPACE';
D.BOUZIDI 123
D.BOUZIDI 124
Format des données : type variable
Exemple :
INFILE 'datafile_name' "var n"
Fichiers
Fichier de
de
contrôle
données
d'entrée
Fichiers de
rebut
Tables et
index
SQL*Loader
Fichier de contrôle
Les commentaires commencent par deux traits d'union (--) et vont jusqu'à la fin de
la ligne.
LOAD DATA : indique qu'il s'agit du début d'un nouveau chargement de données.
Pour continuer le chargement dont la progression a été interrompue, utilisez
l'instruction CONTINUE LOAD DATA.
INFILE : indique le nom d'un fichier contenant les données à charger.
BADFILE : Fichier dans lequel sont placés les enregistrements refusés.
DISCARDFILE Fichier dans lequel sont placés les enregistrements écartés.
APPEND : option utilisée lors du chargement de données dans une table qui n'est pas
vide.
INSERT : option utiliser pour charger les données dans une table vide.
INTO TABLE permet d'identifier les tables, les champs et les types de données. Il
définit la relation entre les enregistrements dans le fichier de données et les tables de
la base.
WHEN : indique une ou plusieurs conditions de champ auxquelles chaque
enregistrement doit satisfaire pour que SQL*Loader puisse charger les données..
TRAILING NULLCOLS : indique à SQL*Loader de considérer comme une colonne
NULL toute colonne positionnée de manière relative et qui n'est pas présente dans
l'enregistrement.
Le reste du fichier de contrôle contient la liste des champs, qui fournit des
informations sur les formats de colonne dans la table chargée.
Exemple de fichier CTL SQL*Loader
D.BOUZIDI 131
Fichier Journal
Fichier de rebut
Exemple :
INFILE 'datafile_name' "var n"
load data
infile 'example.dat' "var 3"
into table example
fields terminated by ','
(col1 ,col2)
011hello,cd,
011world,im,
013my,name is,
example.dat
Format des données : type flux
Un fichier présente un format d'enregistrement de type flux lorsque
la taille des enregistrements n'est pas indiquée ;
SQL*Loader détermine alors les enregistrements en recherchant le
caractère de fin d'enregistrement.
Le format d'enregistrement de type flux est le plus flexible, mais les
performances peuvent s'en trouver dégradées.
La spécification d'un fichier de données devant être interprété dans
un format d'enregistrement de type flux ressemble à ce qui suit :
INFILE <datafile_name> ["str terminator_string"]
La valeur de terminator_string est 'char_string' ou X'hex_string',
où :
'char_string' : est une chaîne de caractères incluse entre apostrophes ou guillemets
X'hex_string' : est une chaîne d'octets au format hexadécimal
load data
infile 'example.dat' "str '\r\n'"
into table example
fields terminated by ','
(col1 , col2 )
hello,world,
james,bond,
example.dat