Support Cours Module4
Support Cours Module4
Support Cours Module4
Administration
D50079EN10
Edition 1.0
July 2012
D53581
THESE eKIT MATERIALS ARE FOR YOUR USE IN THIS CLASSROOM ONLY.
Plan du cours
11 MINI PROJET_____________________________________________________________________
GESTION DU STOCKAGE DE LA BASE DE DONNEES
Base
de données
Fichier du système
Tablespace
d'exploitation
Segment
Extent
Une base de données est divisée en unités de stockage logiques appelées tablespaces.
DB_BLOCK_SIZE définit la taille d'un bloc logique. La taille d'un bloc logique peut être
La taille de bloc utilisée le plus souvent doit être choisie comme taille de bloc standard.
La plupart du temps, c'est la seule taille de bloc que vous devez préciser. DB_BLOCK_SIZE
est généralement égal à 4 Ko ou 8 Ko. Si vous n'affectez pas de valeur à ce paramètre, la taille
des blocs de données par défaut est déterminée par le système d'exploitation et convient
généralement.
Il est impossible de modifier la taille des blocs une fois la base de données
Lorsqu'une table est créée, un segment est créé pour le stockage de ses données.
Lorsqu'un tablespace est créé, des fichiers de données sont également créés pour
contenir ses données. Ces fichiers allouent immédiatement l'espace spécifié lors de
Une base de données peut prendre en charge plusieurs utilisateurs, chacun d'eux
chaque utilisateur (incluant des tables et des index) qui se réfèrent à des structures de
données physiques stockées dans des tablespaces. Les objets appartenant au schéma
d'un utilisateur peuvent être stockés dans plusieurs tablespaces, et un seul tablespace
Lorsqu'un objet de base de données (comme une table ou un index) est créé, il est
assigné à un tablespace via les paramètres de stockage par défaut de l'utilisateur ou des
instructions spécifiques.
D'un point de vue logique, une table contient des lignes contenant les valeurs de colonnes.
Enfin, une ligne est stockée dans un bloc de base de données sous la forme d'un morceau de
ligne. On parle de morceau de ligne car, dans certaines conditions, une ligne n'est pas stockée
intégralement dans le même emplacement. C'est le cas lorsqu'une ligne insérée est trop
volumineuse pour tenir dans un bloc unique ou lorsque, suite à une mise à jour, la taille d'une
Colonnes Blocs
Table A Table B
Lignes
Segment Segment
Table
Tablespace
Les bases de données, les tablespaces et les fichiers de données sont étroitement liés, mais ils
• Une base de données Oracle est constituée d'une ou de plusieurs unités de stockage
logiques (tablespaces) dans lesquelles sont stockées de manière collective toutes les
données de la base.
• Chaque tablespace d'une base Oracle est constitué d'un ou de plusieurs fichiers de
• Les données d'une base sont stockées collectivement dans les fichiers de données qui
constituent les différents tablespaces de la base. Une base de données Oracle contient au
données. Une base peut aussi comporter trois tablespaces comprenant chacun deux
fichiers de données (soit un total de six fichiers de données). Une base de données peut
fichier de données pendant toute sa durée de vie, il est défini comme tablespace bigfile.
Il s'agit d'un cas spécial qui convient aux applications de data warehouse.
temporaire. Les tablespaces temporaires ne peuvent pas contenir des objets de base de
Syntaxe :
AUTOEXTEND
MAXSIZE
Définit l’espace disque maximal autorisé pour l’extension automatique du fichier de données.
UNLIMITED
Définit une allocation d’espace illimitée pour le fichier.
LOGGING
Définit que la base de données effectue les journalisations pour toutes les opérations sur tous
les index, tables et partitions contenus dans le tablespace
NOLOGGING
Définit que la base de données n’effectue pas de journalisation pour les « INSERT » ou les
chargements des données à l’aide de SQL*Loader ainsi que les opérations DDL sur toutes les
créations d’index, tables.
ONLINE
Permet de créer un tablespace mis à la disposition des utilisateurs qui ont reçu le droit d’y
accéder immédiatement après sa création. Il s’agit du choix par défaut
OFFLINE
Permet de créer un tablespace dans un état indisponible immédiatement après sa création.
EXEMPLE:
CREATE TABLESPACE TB_APPLI DATAFILE
‘C:\app\mkassavi\oradata\dboracle\TB_APPLI01.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 1G,
LOGGING
ONLINE;
8-5 Ajout d’un fichier de donnée(Datafile) à un TABLESPACE
Syntaxe :
Exemple
ALTER TABLESPACE USERS ADD DATAFILE ‘C:\app\mkassavi\oradata\dboracle\TB_APPLI02.dbf' SIZE 20M AUTOEXTEND OFF;
Syntaxe :
ALTER DATABASE DATAFILE['nom_fichier'] OFFLINE DROP ;
Exemple
ALTER DATABASE DATAFILE ‘C:\app\mkassavi\oradata\dboracle\ TB_APPLI02.dbf' OFFLINE DROP ;
Syntaxe :
ALTER DATABASE DATAFILE ['nom_fichier'] RESIZE [New Size] [K,M,G];
Exemple
ALTER DATABASE DATAFILE ' C:\app\mkassavi\oradata\dboracle\ TB_APPLI02.dbf’ RESIZE 80M;
Syntaxe :
DROP TABLESPACE [nom_tablespace] INCLUDING CONTENTS CASCADE CONSTRAINTS ;
Exemple
ALTER DATABASE DATAFILE ‘C:\app\mkassavi\oradata\dboracle\ TB_APPLI02.dbf’ OFFLINE DROP ;
TO 'f:\oracle\oradata\orafrance\ORA_DATA03.dbf';
l’espace alloué aux objets de la base de données. Les principales vues qui décrivent
comment déterminer les paramètres de stockage par défaut des objets, les quotas
d’utilisation de l’espace, l’espace libre disponible et la façon dont les objets sont
DBA_TABLESPACES
DBA_DATA_FILES
DBA_TS_QUOTAS
DBA_SEGMENTS
DBA_EXTENTS
Les données d'une entreprise représentent une part importante du capital de celle-ci.
A ce titre, les données doivent être protégées. Pour cela, Oracle offre de nombreuses fonctionnalités
parmi lesquels, la sauvegarde de la base et de ses données afin de garantir son intégrité et sa
disponibilité.
A travers ce chapitre, nous nous intéresserons à trois (3) types de sauvegardes des données
et aussi à la restauration des données. Nous allons donc dans un premier temps pressentez la
Avant tout il faut préciser que cette méthode est une méthode logique de sauvegarde (Export) et de
restauration des données (Import). Elle permet 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
C'est le mode le plus complet, lors de ce type d'exportation tous les objets de la base sont exportés.
les informations relatives aux structures de base de données, telles que les définitions de tablespaces et de
segments de roll back, sont incluses. Lors de L'insertion des données tout ces objets sont importés et créés
dans la base de destination : le paramètre FULL permet de spécifier ce mode pour l'exportation et
l'importation. Voici le script d’exportation de toute la base:
Ici, on se connecte à la base (DB) en tant que SYSTEM (userid=system/password et on exporte toute la base
(full=y) avec les données (rows=y). On sauvegarde la sortie dans le fichier de log
(log=c:\control\export_full.log).
Exemple :
Pour pouvoir restituer les données, on utilise la commande imp pour faire l’importation :
Voici le script d’importation de toute la base:
Dans ce cas là, ce sont tous les objets appartenant à un utilisateur qui sont exportés: tables, fonctions,
synonymes, déclencheurs, liens de bases de données… Le paramètre OWNER permet de désigner les
utilisateurs que l'on désire exporter.
Example :
exp userid= scott/scott123@DBORAcLE file=c:\backup\export_full.dump log=c:\control\export_full.log owner= scott
Pour pouvoir restituer les données de l’utilisateur TABS, on utilise la commande imp pour faire
l’importation : Voici le script d’importation des données du user TABS:
* Niveau table
Lors de l'exportation de tables individuelles tous leurs objets associés (index, contraintes, déclencheurs,
privilèges …) sont écrits dans le fichier DUMP. Lors de l'importation tout comme l'exportation les tables
doivent être nommées grâce au paramètre TABLES.
Exemple:
Exercice:
Insérer deux enregistrements dans la table dept de scott puis faire le backup de la table ensuite supprimer la table puis la
restaurer.
Pour pouvoir restituer les données de la table ACCOUNT de l'utilisateur TABS, on utilise la commande imp
pour faire l’importation : Voici le script d’importation de la table ACCOUNT de l'utilisateur TABS:
* Niveau tablespace
Lors de l'exportation, des métas donnés concernant les tablespaces spécifiés et les objets qu'ils contiennent
sont écrites dans un fichier DUMP
log=c:\control\export_full.log tablespaces=user
Pour pouvoir restituer les données du tablespace user, on utilise la commande imp pour faire l’importation :
Voici le script d’importation du Tablespace User.
Pour faire la sauvegarde physique il faut mettre la base de données en mode ARCHIVELOG grâce à
l'instruction SQL : alter database archivelog après avoir montée la base de données (SHUTDOWN
IMMEDIATE puis STARTUP MOUNT). Ensuite il faut placer les tablespaces dans le mode de sauvegarde :
Pour cela, on tape la commande
Alter Tablespace nom tablespace begin backup. Ce qui permet de copies les fichiers au niveau du système
d'exploitation. Pour connaître l'ensemble des tablespaces disponibles dans la base de donnée, vous pouvez
exécuter la requête SQL :
Contrôler si la sauvegarde a fonctionner : Pour cela il faut contrôler si les enregistrements redo, on bien été
généré. Pour cela, on exécute l'instruction
Archive log current.
1- la sauvegarde physique
Pour effectuer toutes ces tâches vous devez créer un script de « backup » que vous lancer à partir de sqlplus
ou de l’environnement Dos l’instruction suivante : start ‘chemin-du-fichier.sql’
Dans le cas suivant le fichier qui contient le script s’appelle Sbackup et se trouve dans le répertoire c:\oracle
donc vous lancé start c:\oracle\Sbackup.sql.
Vous devez également créer le répertoire qui va contenir les fichiers sauvegardé.
Voici le contenu du script que vous pouvez exécuter ligne par ligne également:
------------------------Contenu du Fichier Sbackup.sql---------------------------------------------------
A la fin vérifier dans le répertoire créé que votre backup est réussi.
2- Restauration de la sauvegarde physique
Pour restaurer les données à partir d’un Hot Backup il faut procéder par les étapes suivantes :
Pour effectuer toutes ces tâches vous pouvez lancer à partir de sqlplus ou de l’environnement Dos
Dans le cas suivant le fichier qui contient le script s’appelle Srecover et se trouve dans le répertoire
Voici le contenu du script que vous pouvez exécuter ligne par ligne également:
---------------------Contenu du Fichier Srecover.sql-------------------------------------------------
Shutdown immediate;
Startup mount;
RECOVER DATABASE;
Alter database open;
A la fin vérifier dans la Base de Données que votre restauration est réussie.
9-3 BACKUP/RECOVER avec RMAN
RMAN (Recovery Manager) est un utilitaire standard de la base de données Oracle. Il permet de gérer les
opérations de sauvegarde/restauration de manière souple et optimisée.
Les étapes à suivre dans base de données SAVEMTN sont les suivantes :
1- connect / as sysdba
2- create tablespace rmantbs
datafile 'C:\oracle\oradata\SAVEMTN\rman01.dbf'
account unlock ;
Il faut fermer le rman avec la commande EXIT puis se reconnecter avec la comande :
8 - register database;
Ce point nous permet d’enregistrer la base de données ORAMTN dans le catalog de SAVEMTN. Vous pouvez maintenant
effectuer la sauvegarde des données mais créer d’abord le répertoire qui doit contenir les données sauvegardées sur le
disque.
1- Sauvegarde COMPLET
run
'C:\oracle\backuprman\fcontrol ' ;
}
2- Sauvegarde DIFFERENTIEL
La sauvegarde différentiel consiste à sauvegarder uniquement les blocs modifiés depuis la précédente sauvegarde de
niveau n ou inférieur
Pour faire une sauvegarde différentielle de la base il faut d’abord faire une sauvegarde de niveau 0 grâce au script suivant :
run
run
}
2- Sauvegarde CUMULATIVE
La sauvegarde cumulative consiste à sauvegarder uniquement les blocs modifiés depuis la précédente sauvegarde de
niveau n-1
Pour faire une sauvegarde cumulative de la base il faut d’abord faire une sauvegarde de niveau 0 grâce au script suivant :
run
run
}
9-3-2 Restaurer avec RMAN
Il faut ensuite exécuter le script suivant pour faire la restauration des données :
run
startup nomount;
restore database;
startup mount;
recover database;
A la fin de ce script Redonner aux fichiers les noms initiaux et vérifier que les archives ont été bien restauré dans le RDMS
Oracle Database 11g offre le meilleur environnement possible pour un système sécurisé.
Pour que cet environnement soit efficace, il faut toutefois que le DBA respecte les
recommandations et surveille en permanence l'activité de la base de données.
Les utilisateurs ne doivent pas tous avoir accès à toutes les données. Selon les données
stockées dans la base, un accès restreint peut s'avérer nécessaire pour diverses raisons :
exigences métier, attentes des clients ou encore (de plus en plus souvent) restrictions
légales. Les informations relatives aux cartes bancaires, à la santé, à l'identité, etc.
doivent être protégées contre tout accès non autorisé. La base Oracle fournit des
contrôles d'autorisation de niveau très fin pour limiter les accès. Pour la définition des
accès, il convient d'appliquer le principe du moindre privilège.
. Authentifier les utilisateurs
Pour appliquer les contrôles d'accès aux données sensibles, le système doit d'abord savoir
qui tente d'accéder aux données. Une authentification compromise peut rendre inutiles
toutes les autres précautions de sécurité. La forme la plus élémentaire d'authentification
consiste à demander à l'utilisateur d'indiquer quelque chose qu'il connaît, par exemple un
mot de passe. Les comptes utilisateur qui ne sont pas employés doivent être verrouillés afin d'éviter
toute tentative de compromission de l'authentification.
1 Activer
l'audit de Fichier de
DBA base de données Utilisateur
paramètres
Exécute une
2 Définir les options d'audit commande
Base de données
Processus
serveur
Options
Générer la
d'audit
trace d'audit
3 Examiner les
informations d'audit
Trace
d'audit Trace d'audit du
4 Gérer la syst. d'expl. ou
trace d'audit XML
EXAMPLE DE REQUETE
POUR ACTIVER ET
VERIFIER L’AUDIT TRAIL
SELECT *
FROM dba_audit_trail
WHERE username='SCOTT'
ORDER BY timestamp DESC;
Audit de base de données
Une fois que vous avez activé l'audit de la base de données et indiqué les options d'audit
journal des événements. Dans un environnement UNIX ou Linux, les enregistrements d'audit
d'audit sont écrits dans des fichiers XML, dans le répertoire désigné par le paramètre
AUDIT_FILE_DEST . Vous pouvez consulter tous les fichiers XML de ce répertoire dans la
vue V$XML_AUDIT_TRAIL .
La maintenance de la trace d'audit est une tâche administrative importante. Selon le ciblage
des options d'audit, la taille de la trace d'audit peut augmenter très rapidement. En l'absence
d'une maintenance appropriée, la trace d'audit peut créer un tel nombre d'enregistrements
qu'elle affecte les performances du système. La surcharge est directement liée à la quantité
d'enregistrements d'audit.
Conclusion
Le présent cours constitue un point de départ pour l'étude des fonctionnalités Oracle