DB Oraclec
DB Oraclec
Pr BOUZIDI
Objectifs
Comprendre le rle et l'importance de chacune des tches de l'administration des bases de donnes Matriser ladministration de la base de donnes Oracle
D.BOUZIDI
Plan du cours
Introduction Architecture conceptuelle de la BD Oracle Installation et configuration du logiciel Oracle Database 10g Contrle la base de donnes Gestion du fichier de contrle Gestion des fichiers de journalisation Gestion des structures de stockages Administration des utilisateurs et des schmas Gestion des rles Sauvegarde / rcupration
Introduction
Rappel (1)
Base de donnes (BD) : ensemble de donnes organis en vue de son utilisation par des programmes correspondant des applications distinctes et de manire faciliter l'volution indpendante des donnes et des programmes. SGBD : ensemble de programmes qui permettent l'accs une BD Une table est llment de base dune BD
Constitue de lignes de donnes Chaque ligne comporte une ou plusieurs colonnes Une colonne unique d'une ligne unique est appele champ
Ligne
Colonne
Table
D.BOUZIDI
Champ 5
Rappel (2)
base de donnes relationnelle : Entit/Relation Contraintes d'intgrit : utilises pour garantir la validit des donnes stockes dans les tables Les types de contrainte suivants :
NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY
SQL : langage de programmation interactif standard permettant d'extraire et de mettre jour les infos d'une BD (interrogation, mj, contrle daccs, cohrence, intgrit, )
D.BOUZIDI 6
D.BOUZIDI
D.BOUZIDI
Objectifs
Matriser les concepts et le Ma Matriser les concepts et le fonctionnement de larchitecture oracle : fonctionnement de l larchitecture oracle :
Instance Instance Fichiers de donnes, Fichiers de donn donnes, Fichiers de paramtrage Fichiers de param paramtrage
D.BOUZIDI
10
Prsentation
Processus utilisateur Processus serveur PGA
Instance
Mmoire SGA Zone de mmoire partage
D.BOUZIDI
L'instance indispensable au bon L'instance indispensable au bon fonctionnement d'une base de donnes fonctionnement d'une base de donnes Oracle Oracle Les fichiers de donnes Les fichiers de donnes Les fichiers de donnes facultatifs (fichier Les fichiers de donnes facultatifs (fichier d'initialisation, fichier de mots de passe, d'initialisation, fichier de mots de passe, etc...) etc...)
D.BOUZIDI
Fichier Trace
Fichiers de donnes
Fichiers de contrle
Fichiers de journalisation
Fichier PWD
Base de donnes
11
Prsentation
12
Linstance
Instance
Mmoire SGA Cache des tampons des DATA
SMON PMON
L'instance est la composition de 2 sous ensembles : L'instance est la composition de 2 sous ensembles : Une zone mmoire (SGA) pour stocker les donnes issues des Une zone mmoire (SGA) pour stocker les donnes issues des fichiers de donnes sur le disque dur. Afin de pouvoir les fichiers de donnes sur le disque dur. Afin de pouvoir les partager entre les diffrents processus. partager entre les diffrents processus. Des processus d'arrire plan :servent grer les transferts Des processus d'arrire plan :servent grer les transferts de donnes entre la mmoire et le disque dur, plus d'autres de donnes entre la mmoire et le disque dur, plus d'autres actions ncessaires au bon fonctionnement de la base de actions ncessaires au bon fonctionnement de la base de donnes. donnes.
D.BOUZIDI 13
La SGA ou System global Area La SGA ou System global Area 1. Shared Pool :: zone de mmoire partage 1. Shared Pool zone de mmoire partage 2. Database Buffer Cache :: cache de tampons de donnes 2. Database Buffer Cache cache de tampons de donnes 3. Redo Log Buffer :: tampon de journalisation 3. Redo Log Buffer tampon de journalisation
La taille totale de la mmoire SGA est dfinie par le paramtre SGA_MAX_SIZE La taille totale de la mmoire SGA est dfinie par le paramtre SGA_MAX_SIZE Variable_size : :sont deux variables exprime la taille de lespace rserv la SGA Variable_size sont deux variables exprime la taille de lespace rserv la SGA fixedSize fixedSize D.BOUZIDI 14
D.BOUZIDI
15
D.BOUZIDI
17
Instance
Mmoire SGA Zone de mmoire partage
Mmoire non partage. Mmoire non partage. seulement utilise par des processus serveur ou d'arrire plan seulement utilise par des processus serveur ou d'arrire plan alloue lors du dmarrage du processus et dsalloue lors de alloue lors du dmarrage du processus et dsalloue lors de l'arrt du processus. l'arrt du processus. Elle contient :: Elle contient La zone de tri :: Appele SORT AREA. La zone de tri Appele SORT AREA. Les informations de sessions, les privilges de l'utilisateur Les informations de sessions, les privilges de l'utilisateur Le Stack Space :: Cette zone contiendra toutes les autres Le Stack Space Cette zone contiendra toutes les autres variables d'environnement et de session de l'utilisateur variables d'environnement et de session de l'utilisateur
D.BOUZIDI 18
Le processus SMON (System Monitor) sert :: Le processus SMON (System Monitor) sert Corriger les plantages de l'instance Corriger les plantages de l'instance Vrifier la synchronisation des donnes .. Vrifier la synchronisation des donnes Si l'instance plante :: Si l'instance plante Rejouer des transactions de REDO LOG FILE valides Rejouer des transactions de REDO LOG FILE valides mais non non enregistres sur le disque dur mais non non enregistres sur le disque dur Ouvrir la BD pour les utilisateurs les informations non Ouvrir la BD pour les utilisateurs les informations non valides ne sont pas accessibles valides ne sont pas accessibles Annuler ttes les transactions non valids Annuler ttes les transactions non valids SMON sert nettoyer les segments TMP et dfragmente les SMON sert nettoyer les segments TMP et dfragmente les fichiers de donnes fichiers de donnes
D.BOUZIDI
19
20
D.BOUZIDI
23
Objectifs
Connatre la configuration requise pour le systme Utiliser l'architecture Optimal Flexible Architecture (OFA) Installer et configurer le logiciel avec Oracle Universal Installer
D.BOUZIDI
25
D.BOUZIDI
26
D.BOUZIDI
27
D.BOUZIDI
28
D.BOUZIDI
29
D.BOUZIDI
30
D.BOUZIDI
31
D.BOUZIDI
32
Lancement de linstallation
Deux Messages Box affichant des erreurs A 43% de linstallation, cliquer sur OK Un autre 63%, cliquer sur ressayer
D.BOUZIDI 33
D.BOUZIDI
34
D.BOUZIDI
35
Fin de linstallation
D.BOUZIDI
36
Objectifs
dmarrer et arrter des outils : iSQL*Plus et Enterprise Manager Database Control dmarrer et arrter le processus d'coute Oracle dmarrer et arrter Oracle Database 10g
D.BOUZIDI
38
$ isqlplusctl stop iSQL*Plus 10.1.0.2.0 Copyright (c) 2004 Oracle. Stopping iSQL*Plus ... iSQL*Plus stopped.
D.BOUZIDI
39
Structure de gestion
Les trois composants de la structure de gestion d'Oracle Database 10g sont les suivants :
Instance de base de donnes Processus d'coute Interface de gestion (Database Control)
Database Control
Listener
40
D.BOUZIDI
$ emctl stop dbconsole TZ set to US/Pacific Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0 Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved. http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication Stopping Oracle Enterprise Manager 10g Database Control ... ... Stopped.
D.BOUZIDI
41
D.BOUZIDI
42
D.BOUZIDI
43
D.BOUZIDI
44
MOUNT
NOMOUNT
D.BOUZIDI
45
Options d'arrt
Mode d'arrt Permettre de nouvelles connexions Attendre la fin des sessions en cours Attendre la fin des transactions en cours Imposer un point de reprise et fermer les fichiers Mode d'arrt : A Abort T Transactional I Immediate N Normal x o NON OUI A x x x x I x x x o T x x o o N x o o o
D.BOUZIDI
46
1 2 3 4 5
Vrification de soldes Ajout de nouveaux fonds Retrait de fonds de l'ancien compte Validation Dconnexion
D.BOUZIDI
47
Options SHUTDOWN
Vers le bas :
Pendant les oprations
Le cache de SHUTDOWN NORMAL tampons de la ou base de donnes SHUTDOWN est crit dans les TRANSACTIONAL fichiers de donnes ou Les modifications SHUTDOWN IMMEDIATE non valides sont annules Les ressources sont libres Base de donnes cohrente (base de donnes propre)
D.BOUZIDI
Vers le haut :
Pas de rcupration d'instance
48
Options SHUTDOWN
Vers le bas :
Vers le haut : Les fichiers de Les mmoires SHUTDOWN ABORT journalisation en ou tampon ligne sont chec d'une modifies ne utiliss pour instance sont pas crites ou rappliquer dans les STARTUP FORCE les modifications fichiers de Les segments donnes d'annulation Les sont utiliss modifications pour annuler les non valides ne modifications sont pas Base de donnes non valides annules incohrente Les ressources (base de donnes "dirty") sont libres
49
D.BOUZIDI
Options SHUTDOWN
STARTUP [Option] STARTUP [Option] NOMOUNT :: Cr la SGA et dmarre les processus en arrire NOMOUNT Cr la SGA et dmarre les processus en arrire plan mais ne permet pas l'accs la base (reste un OPEN faire). plan mais ne permet pas l'accs la base (reste un OPEN faire). MOUNT :: Monte la base pour certaines activits DBA mais ne MOUNT Monte la base pour certaines activits DBA mais ne permet aucun accs la base. permet aucun accs la base. OPEN :: Permet aux utilisateurs d'accder la base. OPEN Permet aux utilisateurs d'accder la base. EXCLUSIVE :: Autorise l'instance courant seulement accder EXCLUSIVE Autorise l'instance courant seulement accder la base. la base. PFILE :: Spcifie le fichier d'initialisation prendre en compte. PFILE Spcifie le fichier d'initialisation prendre en compte. FORCE :: Annule l'instance courante avant d'effectuer un FORCE Annule l'instance courante avant d'effectuer un dmarrage normal. dmarrage normal. RESTRICT :: Autorise seulement l'accs aux utilisateurs avec le RESTRICT Autorise seulement l'accs aux utilisateurs avec le privilge RESTRICTED SESSION. privilge RESTRICTED SESSION. RECOVER Dmarre la restauration media quand la base RECOVER Dmarre la restauration media quand la base dmarre. dmarre.
D.BOUZIDI
50
Exemple de commande dmarrage et Exemple de commande dmarrage et darrt de la base de donnes darrt de la base de donnes
Dmarre l'instance et ouvre la base de donnes :: Dmarre l'instance et ouvre la base de donnes
STARTUP PFILE=init015.ora STARTUP PFILE=init015.ora
Fait passer la base de donnes de l'tat NOMOUNT Fait passer la base de donnes de l'tat NOMOUNT MOUNT :: MOUNT
ALTER DATABASE ORCL MOUNT; ALTER DATABASE ORCL MOUNT;
Ouvert la base de donnes en mode lecture seule Ouvert la base de donnes en mode lecture seule (READ ONLY) :: (READ ONLY)
ALTER DATABASE ORCL OPEN READ ONLY; ALTER DATABASE ORCL OPEN READ ONLY;
D.BOUZIDI
init001.ora
SQL> CONNECT sys/PwdSys AS SYSDBA SQL> CONNECT sys/PwdSys AS SYSDBA SQL> STARTUP SQL> STARTUP PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora
Dimensionnez la mmoire SGA. Dimensionnez la mmoire SGA. Dfinissez les valeurs par dfaut de la BD et de l'instance. Dfinissez les valeurs par dfaut de la BD et de l'instance. Dfinissez les limites relatives aux utilisateurs ou aux Dfinissez les limites relatives aux utilisateurs ou aux processus. processus. Dfinissez les limites relatives aux ressources de la BD. Dfinissez les limites relatives aux ressources de la BD. Dfinissez les divers attributs physiques de la BD, tels que Dfinissez les divers attributs physiques de la BD, tels que la taille des blocs. la taille des blocs. Indiquez l'emplacement des fichiers de contrle, des Indiquez l'emplacement des fichiers de contrle, des fichiers journaux archivs, du fichier ALERT et des fichiers fichiers journaux archivs, du fichier ALERT et des fichiers trace. trace.
Fichier
53
54
D.BOUZIDI
55
Quelques paramtres
BACK_GROUND_DUMP_DEST :Emplacement o les fichiers traces des processus en arrire plan sont enregistrs. USER_DUMP_DEST Emplacement o les fichiers traces sont crs. CONTROL_FILES : Noms des fichiers de contrle. DB_CACHE_SIZED : taille du tampon de donnes, (remplace le paramtre DB_BLOCK_BUFFERS dfinissant le nombre de blocs mis en cache dans la SGA, paramtre obsolte partir de la version 9i) DB_NAME : Identifiant de la base de donnes de 5 caractres ou moins. (seul paramtre ncessaire la cration d'une base). SHARED_POOL_SIZE : Taille en octets de la zone de partage. IFILE : Permet de rfrencer un autre fichier de paramtre imbriquer dans la dfinition. LOG_BUFFER : Nombre d'octets allous au buffer redolog dans la SGA. MAX_DUMP_FILE_SIZE : Taille maximum des fichiers trace, spcifie en nombre de blocs de l'OS. PROCESSES : Nombre de processus de l'OS pouvant se connecter simultanment linstance. SQL_TRACE : Active loutil de suivi SQL pour chaque session utilisateur. TIMED_STATISTICS : Active ou non le minutage dans les fichiers trace et sur les crans.
D.BOUZIDI 56
Mmoire SGA
V$SYSTEM_PARAMETER : des infos sur les paramtres param dinitialisation et leurs modification ventuelles V$SGA : des infos sur la SGA V$OPTION : la liste des options installes sur le serveur Oracle install V$PROCESS : des infos sur les processus actifs courant V$SESSION : des infos sur la session courante V$VERSION : Liste le numro de version et les composants num V$INSTANCE : Affiche l'tat de l'instance courante l'
D.BOUZIDI
57
MOUNT
NOMOUNT
ARRET
D.BOUZIDI
58
Interrogez la vue dynamique des performances Interrogez la vue dynamique des performances V$PARAMETER :: V$PARAMETER
SELECT name FROM v$parameter WHERE name LIKE '%control%'; SELECT name FROM v$parameter WHERE name LIKE '%control%';
Certains paramtres d'initialisation peuvent tre modifis Certains paramtres d'initialisation peuvent tre modifis pendant l'excution d'une instance (grce aux commandes pendant l'excution d'une instance (grce aux commandes Alter session et Alter system). Alter session et Alter system).
ALTER SESSION SET SQL_TRACE=true; //session courante ALTER SESSION SET SQL_TRACE=true; //session courante ALTER SYSTEM SET TIMED_STATISTICS=true; ALTER SYSTEM SET TIMED_STATISTICS=true; ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED; ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;
// DEFERRED Indique que le paramtre ne sera modifi qu' // DEFERRED Indique que le paramtre ne sera modifi qu' partir de la prochaine session. partir de la prochaine session.
D.BOUZIDI 59
Excutez la commande ALTER SYSTEM pour mettre Excutez la commande ALTER SYSTEM pour mettre une instance en mode restreint :: une instance en mode restreint
ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM ENABLE RESTRICTED SESSION;
Interrompre une session Interrompre une session Dans la vue dynamique des performances V$SESSION, Dans la vue dynamique des performances V$SESSION, identifiez la session interrompre :: identifiez la session interrompre
SELECT sid, serial# FROM v$session WHERE SELECT sid, serial# FROM v$session WHERE username='SCOTT'; username='SCOTT';
D.BOUZIDI
60
D.BOUZIDI
61
Li une seule base de donnes Li une seule base de donnes Modifi frquemment par le serveur oracle. Modifi frquemment par le serveur oracle. Indispensable pour la restauration de la base. Indispensable pour la restauration de la base. Doit tre multiplex Doit tre multiplex En cas de perte du fichier de contrle, En cas de perte du fichier de contrle, la base de donnes doit tre restaure la base de donnes doit tre restaure Pour afficher les noms des fichiers de CTL Pour afficher les noms des fichiers de CTL
show parameter control_files show parameter control_files select value from v$parameter where name='control_files'; select value from v$parameter where name='control_files';
D.BOUZIDI 63
D.BOUZIDI
64
Unit
control01.ctl
Unit 2 Unit 3
control02.ctl control03.ctl
D.BOUZIDI
65
Mthode 2 Mthode 2
Ajouter le nouveau fichier de contrle /disk3/oradata/orcl/control04.ctl Ajouter le nouveau fichier de contrle /disk3/oradata/orcl/control04.ctl dans le paramtre CONTROL_FILES en utilisant la commande :: dans le paramtre CONTROL_FILES en utilisant la commande
alter system set control_files= alter system set control_files= '/disk1/oradata/orcl/control01.ctl', '/disk1/oradata/orcl/control01.ctl', '/disk1/oradata/orcl/control02.ctl ', '/disk1/oradata/orcl/control02.ctl ', '/disk1/oradata/orcl/control03.ctl ', '/disk1/oradata/orcl/control03.ctl ', '/disk1/oradata/orcl/control04.ctl' scope=spfile; '/disk1/oradata/orcl/control04.ctl' scope=spfile; '/disk1/oradata/orcl/control04.ctl'
Arrter la base Arrter la base Copier le fichier de contrle en utilisant les commandes OS Copier le fichier de contrle en utilisant les commandes OS Dmarrer la base de donnes Dmarrer la base de donnes
Oracle met jours les fichiers de contrle en mme temps, mais seul le premier fichier cit dans le Oracle met jours les fichiers de contrle en mme temps, mais seul le premier fichier cit dans le paramtre CONTROL_FILES est consult. paramtre CONTROL_FILES est consult. //SCOPE=SPFILE:le changement de paramtre est enregistr dans le SPFILE, et ne sera pris en compte //SCOPE=SPFILE:le changement de paramtre est enregistr dans le SPFILE, et ne sera pris en compte quau prochain dmarrage de l'instance. Utilis pour les paramtres non dynamique quau prochain dmarrage de l'instance. Utilis pour les paramtres non dynamique
D.BOUZIDI
66
Cest recommand de sauvegarder le fichier de contrle chaque Cest recommand de sauvegarder le fichier de contrle chaque modification de la structure de la base (Ajout, renomme ou modification de la structure de la base (Ajout, renomme ou suppression de fichiers de donnes ou de journalisation). suppression de fichiers de donnes ou de journalisation).
D.BOUZIDI
67
V$CONTROLFILE : affiche tous les noms des fichiers de contrle et et leur statut qui peut tre NULL ou INVALID V$CONTROLFILE_RECORD_SECTION : plusieurs infos sur le fichier de contrle (TYPE : Type de la section, RECORD_SIZE : Taille d'une d'une entre en bits, RECORDS_TOTAL : Nombre d'entres alloues pour la entr d'entr allou section, RECORDS_USED : Nombres d'entres utilises dans la d'entr utilis section, FIRST_INDEX : Index de la premire entre, LAST_INDEX : premi entr Index de la dernire entre) derni entr V$KCCDI : affiche la valeur de MAXLOGMEMBERS (DIMLM) Liste des vues qui lisent directement du fichier de contrle : V$THREAD, V$DATABASE, V$DATAFILE, V$DATAFILE_HEADER V$LOGFILE, V$ARCHIVED_LOG, V$BACKUP, V$BACKUP_DATAFILE, V$BACKUP_PIECE, V$BACKUP_REDOLOG, V$BACKUP_SET,
Fichier de contrle
D.BOUZIDI
68
Instance
Mmoire SGA Zone de mmoire partage
LGW ARC
Fichiers de donnes
D.BOUZIDI
70
Mode de fonctionnement des fichiers de Mode de fonctionnement des fichiers de journalisation journalisation
Groupe 1
Groupe 2
Groupe 3
Membre1
Membre1
Membre1
Unit 1 Unit
Membre2
Membre2
En mode NOARCHIVELOG, un fichier log plein est disponible aprs que les En mode NOARCHIVELOG, un fichier log plein est disponible aprs que les changements enregistrs dedans sont crits dans les fichiers de donnes. changements enregistrs dedans sont crits dans les fichiers de donnes. En ARCHIVELOG, un fichier log plein est disponible aprs que les changements En ARCHIVELOG, un fichier log plein est disponible aprs que les changements effectus dedans sont crits dans les fichiers de donnes et tait archiv effectus dedans sont crits dans les fichiers de donnes et tait archiv Un fichier log en ligne ou archiv est identifi par son numro de squence Un fichier log en ligne ou archiv est identifi par son numro de squence
D.BOUZIDI 71
Sur les groupes et les membres partir :: Sur les groupes et les membres partir
V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL status : unused (jamais crit), current (en ligne et en cours d'criture), active (en ligne et ncessaires la restauration de la base ), inactive (en ligne non ncessaires la restauration de la base)
SELECT group#, sequence#, bytes, members, status FROM v$log ; SELECT group#, sequence#, bytes, members, status FROM v$log ;
V$LOGFILE (group#, type, status, member) V$LOGFILE (group#, type, status, member) status : invalid (le fichier est inaccessible), stale (le fichier est incomplet), deleted (le fichier nest pas utilis), vide (le fichier est en cours dutilisation)
D.BOUZIDI SELECT * FROM v$logfile; SELECT * FROM v$logfile; 72
Changements de fichier de Changements de fichier de journalisation et points de reprise journalisation et points de reprise
Un log switch est le point o la base arrte d'crire dans l'un des Un log switch est le point o la base arrte d'crire dans l'un des fichiers redo en ligne et commence crire dans un autre. fichiers redo en ligne et commence crire dans un autre. Se dclanche :: Se dclanche
Le fichier log courant est plein et on doit continuer crire dans le fichier redo Le fichier log courant est plein et on doit continuer crire dans le fichier redo Configur pour qu'il se reproduit intervalles rguliers Configur pour qu'il se reproduit intervalles rguliers Manuellement Manuellement
Imposer des changements de fichier de journalisation l'aide de la Imposer des changements de fichier de journalisation l'aide de la commande :: commande
ALTER SYSTEM SWITCH LOGFILE; ALTER SYSTEM SWITCH LOGFILE; La commande suivante permet d'archiver le redo log courant et d'activer le La commande suivante permet d'archiver le redo log courant et d'activer le redo log suivant. redo log suivant. ALTER SYSTEM CHECKPOINT; //archiver le redo log courant. . ALTER SYSTEM CHECKPOINT; //archiver le redo log courant
Grer les points de reprise l'aide des paramtres d'initialisation :: Grer les points de reprise l'aide des paramtres d'initialisation
LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT LOG_CHECKPOINT_TIMEOUT FAST_START_IO_TARGET FAST_START_IO_TARGET
D.BOUZIDI
73
ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M; ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M;
ALTER DATABASE ADD LOGFILE MEMBER ALTER DATABASE ADD LOGFILE MEMBER '/DISK2/Redo11.log' TO GROUP 1, '/DISK2/Redo11.log' TO GROUP 1, '/DISK2/Redo21.log' TO GROUP 2; '/DISK2/Redo21.log' TO GROUP 2;
Redo10.log
Redo20.log
Redo30.log
Redo11.log
Redo21.log
Redo31.log
Suppression des membres des groupes :: Suppression des membres des groupes
ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log'; ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log';
D.BOUZIDI
76
Fichier de contrle
D.BOUZIDI
77
Application de modles d'accs aux donnes. Application de modles d'accs aux donnes. Annulation des modifications de la base Annulation des modifications de la base de donnes. de donnes. Utilisation des donnes archives pour effectuer Utilisation des donnes archives pour effectuer des oprations de rglage et planifier les des oprations de rglage et planifier les capacits. capacits.
D.BOUZIDI
78
LogMiner
Le problme de ces fichiers c'est que l'on ne Le problme de ces fichiers c'est que l'on ne peut pas diter le contenu aussi facilement peut pas diter le contenu aussi facilement Oracle a fournit un outil trs pratique Oracle a fournit un outil trs pratique permettant d'analyser et dauditer les actions permettant d'analyser et dauditer les actions effectues sur la base :: LogMiner effectues sur la base LogMiner Deux scripts sont utiliss pour linstaller :: Deux scripts sont utiliss pour linstaller
<oracle home>/rdbms/admin/dbmslm.sql qui <oracle home>/rdbms/admin/dbmslm.sql qui installe le package DBMS_LOGMNR qui vous installe le package DBMS_LOGMNR qui vous servira analyser les REDO LOG, ainsi que des servira analyser les REDO LOG, ainsi que des procdures, vues et tables publiques. procdures, vues et tables publiques. <oracle home>/rdbms/admin/dbmslmd.sql qui <oracle home>/rdbms/admin/dbmslmd.sql qui installe le package DBMS_LOGMNR_D qui servira installe le package DBMS_LOGMNR_D qui servira construire le dictionnaire de donnes. construire le dictionnaire de donnes.
D.BOUZIDI
79
Utiliser LogMiner
Cration dun Snapshot du DD (pour avoir les dfinitions Cration dun Snapshot du DD (pour avoir les dfinitions des objets prsents dans la base de donnes) des objets prsents dans la base de donnes)
Initialiser le paramtre UTL_FILE_DIR :: Initialiser le paramtre UTL_FILE_DIR
Alter system SET utl_file_dir=/oracle/tmp/' SCOPE=spfile; Alter system SET utl_file_dir=/oracle/tmp/' SCOPE=spfile;
Dfinition des fichiers de log analyser en configurant la vue Dfinition des fichiers de log analyser en configurant la vue V$LOGMNR_CONTENTS (spcifie les fichiers log analyser) V$LOGMNR_CONTENTS (spcifie les fichiers log analyser) Initialisation dune nouvelle liste et dfinition du premier Initialisation dune nouvelle liste et dfinition du premier fichier de log analyser fichier de log analyser
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo10.log', DBMS_LOGMNR.NEW); EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo10.log', DBMS_LOGMNR.NEW);
Ajout dautres fichiers analyser la liste :: Ajout dautres fichiers analyser la liste
EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE); EXECUTE DBMS_LOGMNR.ADD_LOGFILE(/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE);
Utiliser LogMiner
Lancement de lanalyse Lancement de lanalyse
Initialisation dune session logMiner :: Initialisation dune session logMiner Initialisation dune session logMiner pour une priode donnes: Initialisation dune session logMiner pour une priode donnes:
EXECUTE Dbms_Logmnr.Start_Logmnr(/oracle/temp/monDictionnaire.ora', EXECUTE Dbms_Logmnr.Start_Logmnr(/oracle/temp/monDictionnaire.ora', starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime => to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS')); => to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS')); EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>/tmp/monDictionnaire.ora'); EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>/tmp/monDictionnaire.ora');
Identification des modification apportes une table Identification des modification apportes une table
SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE seg_name = 'EMP'; seg_name = 'EMP';
D.BOUZIDI
81
Obtenir des informations sur les Obtenir des informations sur les fichiers de journalisation analyser fichiers de journalisation analyser
Il existe 4 vues dynamiques lies notre session LogMiner Il existe 4 vues dynamiques lies notre session LogMiner (celles-ci n'existent que pendant notre session LogMiner) (celles-ci n'existent que pendant notre session LogMiner) V$LOGMNR_DICTIONARY :: contient les infos sur le V$LOGMNR_DICTIONARY contient les infos sur le dictionnaire de donnes de LogMiner. dictionnaire de donnes de LogMiner. V$LOGMNR_PARAMETERS :: contient les infos concernant V$LOGMNR_PARAMETERS contient les infos concernant la session LogMiner en cours. la session LogMiner en cours. V$LOGMNR_CONTENTS :: contient les infos issues des V$LOGMNR_CONTENTS contient les infos issues des fichiers REDO LOG. fichiers REDO LOG. V$LOGMNR_LOGS :: contient les infos sur tous les fichiers V$LOGMNR_LOGS contient les infos sur tous les fichiers REDO LOG qui ont t ajouts pour cette session REDO LOG qui ont t ajouts pour cette session
D.BOUZIDI
82
Logique
Segment
Extent
Bloc Oracle
Bloc OS
Les tablespaces
Une base donnes mmorise dans une ou plusieurs units Une base donnes mmorise dans une ou plusieurs units logiques appeles TABLESPACE. logiques appeles TABLESPACE. Cette organisation permet ladministrateur de :: Cette organisation permet ladministrateur de Contrler lallocation despace disque Contrler lallocation despace disque Assigner des quotas de ressource disque aux utilisateurs Assigner des quotas de ressource disque aux utilisateurs Contrler la disponibilit des donnes en rendant les Contrler la disponibilit des donnes en rendant les tablespaces online ou offline tablespaces online ou offline Constituer des units de sauvegarde ou de restauration Constituer des units de sauvegarde ou de restauration partielle de la base partielle de la base Rpartir les zones de stockage entre plusieurs disques Rpartir les zones de stockage entre plusieurs disques pour accrotre les performances pour accrotre les performances
Cration de tablespaces
CREATE TABLESPACE app_data CREATE TABLESPACE app_data DATAFILE '/DISK1/app_data_01.dbf SIZE 100M, DATAFILE '/DISK1/app_data_01.dbf SIZE 100M, '/DISK2/app data_ 02.dbf SIZE 100M '/DISK2/app data_ 02.dbf SIZE 100M DEFAULT STORAGE ( INITIAL 500K DEFAULT STORAGE ( INITIAL 500K NEXT NEXT MAXEXTENTS MAXEXTENTS PCTINCREASE PCTINCREASE 500K 500K 500 500 0 ); 0 );
o INITIAL : Dfinit la taille du premier extent (Par dfaut o INITIAL : Dfinit la taille du premier extent (Par dfaut 5*DB_BLOCK_SIZE) 5*DB_BLOCK_SIZE) o NEXT se rapporte la taille de l'extent suivant. o NEXT se rapporte la taille de l'extent suivant. o MINEXTENTS exprime le nombre d'extents allous lors de la cration o MINEXTENTS exprime le nombre d'extents allous lors de la cration du segment (Par dfault 1). du segment (Par dfault 1). o MAXEXTEBTS est le nombre maximal dextents pouvant tre alloues o MAXEXTEBTS est le nombre maximal dextents pouvant tre alloues un segment un segment o PCTINCREASE dfinie le pourcentage de croissance de la taille du o PCTINCREASE dfinie le pourcentage de croissance de la taille du segment suivant segment suivant
Tablespace disponible pour des oprations de lecture Tablespace disponible pour des oprations de lecture (Impossible de supprimer les objets du tablespace) (Impossible de supprimer les objets du tablespace) Pour crer un tablespace en lecture seule sur un lecteur non Pour crer un tablespace en lecture seule sur un lecteur non rinscriptible :: rinscriptible ALTER TABLESPACEREAD ONLY; ALTER TABLESPACEREAD ONLY; Placez le fichier de donnes sur le lecteur non rinscriptible Placez le fichier de donnes sur le lecteur non rinscriptible ALTER TABLESPACERENAME DATAFILE; ALTER TABLESPACERENAME DATAFILE;
Suppression :: Suppression
Tablespace supprim du dictionnaire de donnes. Tablespace supprim du dictionnaire de donnes. Eventuellement, contenu supprim du dictionnaire de donnes. Eventuellement, contenu supprim du dictionnaire de donnes. Fichiers de systme d'exploitation non supprims. Fichiers de systme d'exploitation non supprims. DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES; DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;
Redimensionner un tablespace :: Redimensionner un tablespace Modification de la taille d'un fichier de donnes automatique Modification de la taille d'un fichier de donnes automatique
ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf' ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; MAXSIZE 500M;
Types de segment
On distingue cinq types de segments :: On distingue cinq types de segments 1. Les segments de donnes 1. Les segments de donnes
Ils servent stocker les donnes des tables utilisateurs Ils servent stocker les donnes des tables utilisateurs et systme et systme Chaque table a un et un seul segment qui est cre Chaque table a un et un seul segment qui est cre automatiquement lors de la cration de la table. automatiquement lors de la cration de la table.
D.BOUZIDI
93
Types de segment
On distingue cinq types de segments :: On distingue cinq types de segments 3. Les segments temporaires 3. Les segments temporaires
Utiliss par Oracle pour le traitement des requtes SQL Utiliss par Oracle pour le traitement des requtes SQL ncessitant un espace disque temporaire. ncessitant un espace disque temporaire. Les segments temporaires sont crs en cas de besoin et Les segments temporaires sont crs en cas de besoin et supprims aprs lexcution de la commande. supprims aprs lexcution de la commande. Le tablespace dans lequel sont cres ces segments est dfini Le tablespace dans lequel sont cres ces segments est dfini lors de la cration et modification dun utilisateur. Si ce lors de la cration et modification dun utilisateur. Si ce tablespace nest pas dfini, alors cest le tablespace SYSTEM tablespace nest pas dfini, alors cest le tablespace SYSTEM qui est utilis par dfaut. qui est utilis par dfaut.
Notion de bloc :
Unit minimum d'entre/sortie Unit minimum d'entre/sortie Constitu d'un ou de plusieurs blocs de systme Constitu d'un ou de plusieurs blocs de systme d'exploitation d'exploitation Dfini par DB_BLOCK_SIZE Dfini par DB_BLOCK_SIZE Dfini lors de la cration de la base de donnes Dfini lors de la cration de la base de donnes
D.BOUZIDI 95
En-tte (@ du bloc, Entype de segment,) segment, Espace libre : utilis pour utilis linsertion de nouvelles lignes ou mise jours ncessitant n despace sup. Donnes : lorsquune ligne ne Donn lorsqu peut tenir sur un seul bloc elle est stocke dans deux ou +iers stock +iers Blocs (blocs chans) (blocs cha
D.BOUZIDI
96
PCTFREE PCTUSED
D.BOUZIDI
97
80 % 40 % Insertions 3 Insertions 3
D.BOUZIDI
98
Compte utilisateur
Pour crer un utilisateur, l'administrateur doit affecter un profil, Pour crer un utilisateur, l'administrateur doit affecter un profil, choisir une technique d'authentification et affecter des tablespaces choisir une technique d'authentification et affecter des tablespaces
Un nom utilisateur unique ou login (< 30 caractres, pas de caractres Un nom utilisateur unique ou login (< 30 caractres, pas de caractres spciaux et doit commencer par une lettre) spciaux et doit commencer par une lettre) Une mthode dauthentification :: Autre lauthentification par mot de Une mthode dauthentification Autre lauthentification par mot de passe ORACLE fait lauthentification par certificats, par biomtrie et passe ORACLE fait lauthentification par certificats, par biomtrie et par systme tier par systme tier Un tablespace par dfaut :: emplacement par dfaut o l'utilisateur Un tablespace par dfaut emplacement par dfaut o l'utilisateur mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui accorder les privilges et les quotas ncessaires pour quil puisse crer accorder les privilges et les quotas ncessaires pour quil puisse crer des objets) des objets) Un tablespace temporaire :: emplacement dans lequel l'utilisateur peut Un tablespace temporaire emplacement dans lequel l'utilisateur peut crer des objets temporaires, tels que des tris et des tables temporaires crer des objets temporaires, tels que des tris et des tables temporaires Un profil utilisateur :: cest lensemble de restrictions de ressources Un profil utilisateur cest lensemble de restrictions de ressources concernant concernant
lutilisation de la base de donnes lutilisation de la base de donnes et le mot de passe affect l'utilisateur (longueur, priode dexpiration, ) et le mot de passe affect l'utilisateur (longueur, priode dexpiration, )
D.BOUZIDI
101
Profil utilisateur
CPU/Session (exprim en centimes de secondes) :: pour une valeur CPU/Session (exprim en centimes de secondes) pour une valeur gale 1000, un utilisateur, qui consomme plus de 10 secondes de gale 1000, un utilisateur, qui consomme plus de 10 secondes de temps de CPU, sera dconnect. temps de CPU, sera dconnect. CPU/Call :: au lieu de limiter la session globale dun utilisateur, on CPU/Call au lieu de limiter la session globale dun utilisateur, on empche que la commande qui consomme plus des ressources CPU empche que la commande qui consomme plus des ressources CPU de lutilisateur de lutilisateur
Network/Memory :: une session utilisateur consomme des Network/Memory une session utilisateur consomme des ressources rseau et mmoire, on peut donc grer :: ressources rseau et mmoire, on peut donc grer
Nombre de minutes pendant lesquelles un utilisateur peut tre Nombre de minutes pendant lesquelles un utilisateur peut tre connect avant d'tre automatiquement dconnect (Connect Time). connect avant d'tre automatiquement dconnect (Connect Time). Nombre de minutes pendant lesquelles une session utilisateur peut Nombre de minutes pendant lesquelles une session utilisateur peut rester inactive avant d'tre automatiquement dconnecte (Idle Time). rester inactive avant d'tre automatiquement dconnecte (Idle Time). Nombre de sessions simultanes pouvant tre cres l'aide d'un Nombre de sessions simultanes pouvant tre cres l'aide d'un compte utilisateur de base de donnes. compte utilisateur de base de donnes. Private SGA :: limite la quantit d'espace consomm dans la mmoire Private SGA limite la quantit d'espace consomm dans la mmoire pour le tri, cration dindex, etc. pour le tri, cration dindex, etc.
Disk I/O :: limite la quantit de donnes qu'un utilisateur peut Disk I/O limite la quantit de donnes qu'un utilisateur peut lire, par session ou par appel. lire, par session ou par appel.
D.BOUZIDI 102
Profil utilisateur
Lauthentification permet de vrifier lidentit dune entit qui Lauthentification permet de vrifier lidentit dune entit qui souhaite utiliser les ressources de la base de donnes :: souhaite utiliser les ressources de la base de donnes
Ce mcanisme permet dtablir une relation de confiance pour les Ce mcanisme permet dtablir une relation de confiance pour les interactions ultrieures. interactions ultrieures. La responsabilit :: permettant de lier laccs et des actions des La responsabilit permettant de lier laccs et des actions des entits spcifiques. entits spcifiques.
))
Tablespace :: Tablespace
Tablespaces et de schmas
Un tablespace par dfaut est le tablespace dans lequel les objets sont Un tablespace par dfaut est le tablespace dans lequel les objets sont crs si aucun tablespace n'est dsign lors de la cration de l'objet crs si aucun tablespace n'est dsign lors de la cration de l'objet
Si on a pas choisi de tablespace par dfaut, le tablespace permanent par dfaut Si on a pas choisi de tablespace par dfaut, le tablespace permanent par dfaut dfini par le systme est utilis dfini par le systme est utilis Si on na pas indiqu de tablespace temporaire, celui dfini par le systme est Si on na pas indiqu de tablespace temporaire, celui dfini par le systme est utilis utilis CREATE USER user01 identified by PWDuser01 CREATE USER user01 identified by PWDuser01 DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users; DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users;
Schma :: Schma
L'ensemble des objets appartenant un utilisateur est appel schma (Tables, L'ensemble des objets appartenant un utilisateur est appel schma (Tables, Dclencheurs, Index, Vues, Squences, Types de donnes dfinis par l'utilisateur, Dclencheurs, Index, Vues, Squences, Types de donnes dfinis par l'utilisateur, ) ) Lors de la cration d'un utilisateur de base de donnes, un schma correspondant Lors de la cration d'un utilisateur de base de donnes, un schma correspondant portant le mme nom est cr pour cet utilisateur portant le mme nom est cr pour cet utilisateur Les objets du mme schma peuvent rsider dans diffrents tablespaces et un Les objets du mme schma peuvent rsider dans diffrents tablespaces et un tablespace peut contenir des objets de diffrents schmas tablespace peut contenir des objets de diffrents schmas Un utilisateur ne peut tre associ qu' un seul schma, le nom utilisateur et le Un utilisateur ne peut tre associ qu' un seul schma, le nom utilisateur et le schma sont souvent utiliss de manire interchangeable. schma sont souvent utiliss de manire interchangeable. Pour accder aux objets de lutilisateur user01 (si on a le droit) on prcede le nom Pour accder aux objets de lutilisateur user01 (si on a le droit) on prcede le nom de lobjet par le nom de lutilisateur (equi au nom du schma) de lobjet par le nom de lutilisateur (equi au nom du schma) Select * from user01.nomTable; Select * from user01.nomTable; D.BOUZIDI 104
Privilges
Par dfaut, lorsqu'un utilisateur est cr, aucun privilge ne Par dfaut, lorsqu'un utilisateur est cr, aucun privilge ne lui est accord, il ne peut effectuer aucune opration dans la lui est accord, il ne peut effectuer aucune opration dans la base de donnes. base de donnes. Si l'utilisateur ne dispose d'aucun quota dans aucun Si l'utilisateur ne dispose d'aucun quota dans aucun tablespace, il ne pourra pas crer d'objets. tablespace, il ne pourra pas crer d'objets. Deux types de privilge :: Deux types de privilge
Systme :: Systme
Accord par l'administrateur ou par quelqu'un qui la permission Accord par l'administrateur ou par quelqu'un qui la permission d'administrer le privilge a t accord, d'administrer le privilge a t accord, Permet aux utilisateurs d'effectuer des actions particulires dans la Permet aux utilisateurs d'effectuer des actions particulires dans la base de donnes (par exemple crer des Tablespaces). base de donnes (par exemple crer des Tablespaces).
Objet :: Objet
permet aux utilisateurs d'accder un objet spcifique et de le permet aux utilisateurs d'accder un objet spcifique et de le manipuler (table, sequence, ) manipuler (table, sequence, ) Sans permission spcifique, les utilisateurs ne peuvent accder qu' Sans permission spcifique, les utilisateurs ne peuvent accder qu' leurs propres objets. leurs propres objets. Les privilges objet peuvent tre accords par Les privilges objet peuvent tre accords par le propritaire d'un objet, le propritaire d'un objet, l'administrateur l'administrateur qui la permission d'accorder des privilges sur l'objet a t qui la permission d'accorder des privilges sur l'objet a t 105 accorde explicitement. accorde explicitement.
D.BOUZIDI
Privilges
DROP ANY object :: le privilge DROP ANY autorise l'utilisateur DROP ANY object le privilge DROP ANY autorise l'utilisateur supprimer des objets qui ne lui appartiennent pas supprimer des objets qui ne lui appartiennent pas CREATE, MANAGE, DROP, ALTER TABLESPACE :: les CREATE, MANAGE, DROP, ALTER TABLESPACE les utilisateurs qui ne sont pas administrateurs ne doivent utilisateurs qui ne sont pas administrateurs ne doivent gnralement pas pouvoir contrler les tablespaces. gnralement pas pouvoir contrler les tablespaces. GRANT ANY OBJECT PRIVILEGE :: ce privilge autorise les GRANT ANY OBJECT PRIVILEGE ce privilge autorise les utilisateurs accorder des permissions sur des objets qui ne utilisateurs accorder des permissions sur des objets qui ne leur appartiennent pas. leur appartiennent pas. ALTER DATABASE et ALTER SYSTEM :: les utilisateurs qui ne ALTER DATABASE et ALTER SYSTEM les utilisateurs qui ne sont pas administrateurs ne doivent gnralement pas tre sont pas administrateurs ne doivent gnralement pas tre autoriss modifier la base de donnes ou l'instance. autoriss modifier la base de donnes ou l'instance.
D.BOUZIDI
106
Exemples de privilges
Privilges systme Privilges systme
Catgorie
INDEX
Exemples
CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX CREATE TABLE CREATE ANY TABLE ALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE CREATE SESSION ALTER SESSION RESTRICTED SESSION CREATE TABLESPACE ALTER TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE
TABLE
Privilges
ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE ALTER, SELECT DELETE, INSERT, SELECT, UPDATE EXECUTE
SESSION
TABLESPACE
D.BOUZIDI
107
Affectation de quotas
Un quota est une allocation d'espace dans un tablespace Un quota est une allocation d'espace dans un tablespace donn. donn. Par dfaut, un utilisateur ne dispose d'aucun quota sur aucun Par dfaut, un utilisateur ne dispose d'aucun quota sur aucun des tablespaces. des tablespaces. Trois options pour affecter un quota utilisateur Trois options pour affecter un quota utilisateur
Unlimited :: permet l'utilisateur d'employer tout l'espace Unlimited permet l'utilisateur d'employer tout l'espace disponible dans le tablespace. disponible dans le tablespace. Valeur :: indique l'espace pouvant tre employ par l'utilisateur. Valeur indique l'espace pouvant tre employ par l'utilisateur. Cette valeur ne garantit cependant pas que l'espace est rserv Cette valeur ne garantit cependant pas que l'espace est rserv pour l'utilisateur. Elle peut tre suprieure ou infrieure l'espace pour l'utilisateur. Elle peut tre suprieure ou infrieure l'espace actuellement disponible dans le tablespace. actuellement disponible dans le tablespace. Privilge systme UNLIMITED TABLESPACE :: remplace tous les Privilge systme UNLIMITED TABLESPACE remplace tous les quotas individuels sur les tablespaces et accorde l'utilisateur un quotas individuels sur les tablespaces et accorde l'utilisateur un quota illimit sur tous les tablespaces quota illimit sur tous les tablespaces
ALTER USER user01 ALTER USER user01 QUOTA 10M ON AppData; QUOTA 10M ON AppData;
D.BOUZIDI
108
Option cascade :: Si le schma contient des tables, Oracle effacera Option cascade Si le schma contient des tables, Oracle effacera alors toute les contraintes d'intgrits des tables et toutes les alors toute les contraintes d'intgrits des tables et toutes les contraintes d'intgrits dans les schmas d'autres utilisateurs contraintes d'intgrits dans les schmas d'autres utilisateurs qui faisaient rfrences aux contraintes UNIQUE et PRIMARY qui faisaient rfrences aux contraintes UNIQUE et PRIMARY KEY du schma qui est en cours de suppression KEY du schma qui est en cours de suppression Les vues principales permettant de surveiller des utilisateurs Les vues principales permettant de surveiller des utilisateurs
dba_users et dba_TS_Quotas dba_users et dba_TS_Quotas
D.BOUZIDI 109
Les Rles
Problmes :: Problmes
Il est trop fastidieux d'accorder de manire individuelle les Il est trop fastidieux d'accorder de manire individuelle les privilges ncessaires chaque utilisateur privilges ncessaires chaque utilisateur le risque d'erreur est trop important. le risque d'erreur est trop important.
D.BOUZIDI
110
D.BOUZIDI
111
RESOURCE
DBA
Les vues permettant de surveiller des utilisateurs Les vues permettant de surveiller des utilisateurs
DBA_SYS_PRIVS //privilges systmes DBA_SYS_PRIVS //privilges systmes DBA_TAB_PRIVS //privilges objets DBA_TAB_PRIVS //privilges objets Dba_TS_Quotas //quotas sur un tablespace Dba_TS_Quotas //quotas sur un tablespace
D.BOUZIDI 112
Rles
Utilisateurs
Rles
HR_MGR
HR_CLERK
Privilges Privil
CREATE TABLE
D.BOUZIDI
D.BOUZIDI
Crer un rle protg par un mot de passe Crer un rle protg par un mot de passe
CREATE ROLE hr_clerk CREATE ROLE hr_clerk IDENTIFIED BY bonus; IDENTIFIED BY bonus;
Crer un rle dont lauthentification est gre par une Crer un rle dont lauthentification est gre par une application externe application externe
CREATE ROLE hr_manager CREATE ROLE hr_manager IDENTIFIED EXTERNALLY; IDENTIFIED EXTERNALLY;
D.BOUZIDI
Description
Permet l'ouverture et la modification d'une session, la cration de tables, vues, clusters, squences, synonymes et liens de DB SESSION Permet de crer des types, tables clusters, oprateurs, squences, index et procdures Tous les privilges systme avec l'option WITH ADMIN OPTION Privilges d'export de base de donnes. Privilges d'import de base de donnes
RESOURCE
D.BOUZIDI
D.BOUZIDI
REVOKE hr_manager FROM PUBLIC; REVOKE hr_manager FROM PUBLIC; DROP ROLE hr_manager; DROP ROLE hr_manager;
D.BOUZIDI
D.BOUZIDI
HR_CLERK
HR_MANAGER
PAY_CLERK
BENEFITS
PAYROLL
D.BOUZIDI
Utilisation des rles protgs par mot de passe et des rles par dfaut
Protg par mot de Prot passe (ne correspond pas un rle par dfaut) d
PAY_CLERK
PAY_CLERK_RO
Description
Tous les rles existants dans la base de donnes Rles accords aux utilisateurs et aux rles Rles accords aux rles Privilges systme accords aux utilisateurs et aux rles Privilges systme accords aux rles Privilges de table accords aux rles Rles d'un utilisateur actuellement activs
D.BOUZIDI
Sauvegarde et restauration
IMPORT et EXPORT
Permet de sauvegarder/restaurer le contenu Permet de sauvegarder/restaurer le contenu logique d'une base de donnes dans un fichier logique d'une base de donnes dans un fichier de transfert Oracle au format binaire de transfert Oracle au format binaire Le fichier export permet de recrer des objets Le fichier export permet de recrer des objets qu'il contient (portabilit OS et logiciel) qu'il contient (portabilit OS et logiciel) A ne pas utiliser distance :: augmente le trafic A ne pas utiliser distance augmente le trafic du rseau du rseau La version de l'utilitaire Import ne peut tre La version de l'utilitaire Import ne peut tre antrieure celle de l'utilitaire Export antrieure celle de l'utilitaire Export
D.BOUZIDI
Utilisateur Utilisateur
Que les objets appartenant un utilisateur qui sont Que les objets appartenant un utilisateur qui sont exports (OWNER) exports (OWNER) On peut impoter, du fichier export, les objets dun On peut impoter, du fichier export, les objets dun utilisateur donn dans le schma dun utilisateur utilisateur donn dans le schma dun utilisateur (FROMUSER / TOUSER) (FROMUSER / TOUSER) Le fichier export permet de recrer des objets qu'il Le fichier export permet de recrer des objets qu'il contient (portabilit OS et logiciel) contient (portabilit OS et logiciel)
D.BOUZIDI
D.BOUZIDI
Privilge ou rle
CREATE SESSION SYSDBA, DBA et EXP_FULL_DATABASE EXP_FULL_DATABASE IMP_FULL_DATABASE
D.BOUZIDI
Paramtres de lExport
Paramtres Userid File Log Full Grants Indexes Owner Parfile Rows Query Tables Statistics Description chane de connexion la base de donnes Nom du fichier de sauvegarde Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier Export de toute la base Export des privilges Export des index Utilisateur(s) exporter Fichier contenant les paramtres d'export Export des lignes Dfinit une condition de filtre pour exporter un sousensemble Table(s) exporter Analyse des objets exports
D.BOUZIDI
Paramtres dimport
Paramtres Userid File Log Fromuser Full Grants Indexes Parfile Rows Show Destroy Tables Analyze Touser
D.BOUZIDI
Description chane de connexion la base de donnes Nom du fichier de sauvegarde Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier Utilisateur exporter vers TOUSER Export de tout le contenu du fichier de sauvegarde Import des privilges Import des index Fichier contenant les paramtres dimport Import des lignes Liste le contenu du fichier d'export, aucune opration n'est effectue dans la base Dtruit les objets s'ils existent avant de les importer Table(s) exporter Excute la commande ANALYZE dans le fichier de sauvegarde Utilisateur destinataire
Exemple dexport
Exporter les structures de la base donnes Exporter les structures de la base donnes
exp userid=system/manager exp userid=system/manager file=c:\save\exp_ORCL_struct_full.dump file=c:\save\exp_ORCL_struct_full.dump log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n
Exemple dimport
Importer tous les schma sauvegards Importer tous les schma sauvegards
imp userid=stystem/manager imp userid=stystem/manager file=c:\save\exp_ORCL_struct_full.dump file=c:\save\exp_ORCL_struct_full.dump log=c:\logsave\imp_ORCL_struct_full.log log=c:\logsave\imp_ORCL_struct_full.log
Importer un schma dun fichier export contenant tt la BD Importer un schma dun fichier export contenant tt la BD
imp userid=scott/tiger imp userid=scott/tiger file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\imp_scott_full.log owner=scott log=c:\logsave\imp_scott_full.log owner=scott
Importer une table dun schma vers un autre Importer une table dun schma vers un autre
imp userid=system/manager imp userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp touser=user02 touser=user02 D.BOUZIDI
Exemple dexport /import utilisant Exemple dexport /import utilisant un fichier de paramtres un fichier de paramtres
Cration du fichier de paramtres dexport Cration du fichier de paramtres dexport
userid=system/manager userid=system/manager file=c:\save\exp_scott_full.dump file=c:\save\exp_scott_full.dump log=c:\exp_scott_full.log log=c:\exp_scott_full.log owner=scott owner=scott rows=y rows=y expScott.prm expScott.prm
D.BOUZIDI
Sauvegarde Froid Sauvegarde Froid Les tapes de sauvegarde Les tapes de sauvegarde
Lister les noms sauvegarder Lister les noms sauvegarder
Fichiers de donnes Fichiers de donnes
Select * from dba_datafiles; Select * from dba_datafiles;
Arrter de la base de donnes en mode immediate Arrter de la base de donnes en mode immediate
Shutdown immediate Shutdown immediate
Effectuer une copie des fichiers sauvegarder par Effectuer une copie des fichiers sauvegarder par une commande OS une commande OS Redmarrer la base de donnes Redmarrer la base de donnes
D.BOUZIDI
D.BOUZIDI
D.BOUZIDI
Sauvegarde Chaud Sauvegarde Chaud Sauvegarde dun tablespace mis en offline Sauvegarde dun tablespace mis en offline
Identifier les fichiers du tablesapce Identifier les fichiers du tablesapce sauvegarder sauvegarder
Select file_name from dba_datafiles where Select file_name from dba_datafiles where tablespace_name= NOMTABLESPACE tablespace_name= NOMTABLESPACE
Effectuer une copie des fichiers sauvegarder Effectuer une copie des fichiers sauvegarder par une commande OS par une commande OS Remettre le tablespace en mode on online Remettre le tablespace en mode on online
Alter tablespace NomTablespace online Alter tablespace NomTablespace online
D.BOUZIDI
Modifications appliques
1
D.BOUZIDI
Procdures de rcupration gres par Procdures de rcupration gres par l'utilisateur : commande RECOVER l'utilisateur : commande RECOVER
Restaurer tous les fichiers de base de donnes partir d'une sauvegarde et rcuprer la base de donnes :
SQL> RECOVER DATABASE
Restaurer les fichiers de donnes endommags partir d'une sauvegarde et rcuprer les fichiers de donnes :
SQL> RECOVER TABLESPACE index_tbs
Ou
SQL> RECOVER DATAFILE '/oradata/indx01.dbf'
D.BOUZIDI
Fichier de paramtres
SYSTEM
USERS
SYSAUX
INDEX
Fichiers de contrle
D.BOUZIDI
141
Situations ncessitant une Situations ncessitant une rcupration incomplte rcupration incomplte
La rcupration complte choue parce qu'un fichier de journalisation archiv est manquant. Un ou plusieurs fichiers de journalisation non archivs et un fichier de donnes sont manquants. Une sauvegarde du fichier de contrle est utilise pour ouvrir ou rcuprer la base de donnes.
D.BOUZIDI
Mthodes recommandes pour la Mthodes recommandes pour la rcupration incomplte rcupration incomplte
Suivez soigneusement toutes les tapes. Effectuez des sauvegardes totales de la base de donnes avant et aprs la rcupration. Vrifiez toujours que la rcupration a russi. Sauvegardez et supprimez les fichiers de journalisation archivs.
D.BOUZIDI
D.BOUZIDI