Fonctionnement d’Oracle
Fichiers
Programmes
Mémoire
 les fichiers de données .dbf: >90% volume de la BD;
dictionnaire de données (tables, index, vues …); paramétrage
admin (...
 Sous UNIX : processus
 Sous Windows : exécutables > processus >
threads
Les programmes
 DBWR (DataBaseWriter ou Dirty BufferWriter), chargé
d'écrire le contenu des buffers dans les fichiers de
données
 LGWR ...
 CKPT (CheckPoint), chargé d'écrire le contenu des buffers dans les fichiers de
données
 RECO (Recoverer), il s'agit d'u...
La mémoire
 le cache des blocs de données (buffer cache) :
données transitant de ou vers la base de données
 les buffers redo-log :...
 La zone PGA (Program Global Area) permettant
le fonctionnement des divers processus (afin
de stocker toutes les données ...
Instance
Privilèges OS :
ORA_DBA
Privilèges Oracle :
SYSDBA ,
SYSOPER
Principe du tablespace
 SYSTEM : dictionnaire de données
 SYSAUX : différents outils ou options
d’Oracle (RMAN,Text, UltraSearch, Data
Mining, ...
 Répartir les fichiers de la base de données sur différents disques
 Faciliter les opérations de maintenance : sachant q...
tablespaces
DB_BLOCK_SIZE
tablespaces : la gestion locale et
dictionnaire
CREATETABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M...
 La gestion locale (interne à chaque tablespace) facilite les opérations lors du déplacement de
tablespaces de base à bas...
 INITIAL précise la taille de la première extension.Tout segment
possède une taille initiale à sa création.
 NEXT précis...
tablespaces en gestion LOCALE
CREATETABLESPACE test1
DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M
EXTENT MANAGEMENT...
 Index
 DROP INDEX..CREATE INDEX
 ALTER INDEX REBUILD
 ALTER INDEX COALESCE
 Table
 RENAME TEST to TEST_OLD ;
 CREA...
tablespaces
CREATE USER nouvel_utilisateur
IDENTIFIED BY son_mot_de_passe
DEFAULT TABLESPACE tablespace_utilisateur
QUOTA ...
 SORT_AREA_SIZE de la SGA
 TEMPORARY TABLESPACE
 SYSTEM
Les tablespaces temporaires
CREATE TEMPORARYTABLESPACE temp_dat...
 Les tablespaces UNDO ou d’annulation
(remplacement des rollback segments).
 Les tablespaces BIGFILES : Les tablespaces ...
Contrôle de données
 SYS (mot de passe par défaut :
CHANGE_ON_INSTALL)
 SYSTEM (mot de passe par défaut : MANAGER)
Utilisateur
Utilisateur
CREATE USER utilisateur IDENTIFIED
{ BY motdePasse | EXTERNALLY | GLOBALLY AS 'nomExterne' }
[ DEFAULTTABLESPA...
 IDENTIFIED BY motdePasse permet d’affecter un mot de passe à un utilisateur local
(cas le plus courant et le plus simple...
Profil
CREATE PROFILE nomProfil LIMIT
{ ParamètreRessource | ParamètreMotdePasse }
[ ParamètreRessource | ParamètreMotdePa...
 SESSIONS_PER_USER : nombre de sessions concurrentes autorisées.
 CPU_PER_SESSION : temps CPU maximal pour une session e...
 FAILED_LOGIN_ATTEMPTS : nombre de tentatives de connexion avant de
bloquer l’utilisateur (pour la carte bleue, c’est tro...
Privilèges système
GRANT { privilège Système | nomRôle | ALL PRIVILEGES }
[, { privilègeSystème | nomRôle | ALL PRIVILEGES...
 Privilège Système : description du privilège système (exemple
CREATE TABLE,CREATE SESSION, etc.).
 ALL PRIVILEGES : tou...
Oracle : Foctionnement
Oracle : Foctionnement
Prochain SlideShare
Chargement dans…5
×

Oracle : Foctionnement

1 129 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
1 129
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
81
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Oracle : Foctionnement

  1. 1. Fonctionnement d’Oracle Fichiers Programmes Mémoire
  2. 2.  les fichiers de données .dbf: >90% volume de la BD; dictionnaire de données (tables, index, vues …); paramétrage admin (taille, emplacement ..)  les fichiers redo-log .rdo ou .log: historique des ordres modifiant structure ou données; min 3 fichiers;  Les fichiers de contrôle .ctl : état de la base de données; chemins d’accès et les noms de tous les fichiers (base de données et redo-log)  les fichiers d’administration : fichier d'initialisation initSID.ora ; fichiers de trace et d’alerte générés par Oracle; fichiers paramètres d’outils Les fichiers
  3. 3.  Sous UNIX : processus  Sous Windows : exécutables > processus > threads Les programmes
  4. 4.  DBWR (DataBaseWriter ou Dirty BufferWriter), chargé d'écrire le contenu des buffers dans les fichiers de données  LGWR (LogWriter), chargé d'écrire le contenu des buffers dans les fichiers Redo Log  PMON (Process Monitor), chargé de nettoyer les ressources, les verrous et les processus utilisateurs non utilisés  SMON (System Monitor), chargé de vérifier la cohérence de la base de données et éventuellement sa restauration lors du démarrage si besoin Les threads indispensables,
  5. 5.  CKPT (CheckPoint), chargé d'écrire le contenu des buffers dans les fichiers de données  RECO (Recoverer), il s'agit d'un thread optionnel permettant de résoudre les transactions interrompues brutalement dans un système de bases de données distribuées (par exemple un système de réplication de bases de données)  ARCH (Archiver). optionnel et n'existe qu'en mode ARCHIVELOG. Il permet de dupliquer les fichiers Redo-Log dans un espace d'archivage.  Dnnnn (Dispatcher, nnnn représente une suite de nombre entiers) : est optionnel et n'est présent que dans les configurations MTS (multi-threaded server). Il permet de router les requêtes des postes clients-serveurs distants vers les autres serveurs. Il existe au moins un processus Dnnnn pour chaque protocole de communication  Snnnn (Server, nnnn représente une suite de nombre entiers) : est n'est également présent que dans les configurations MTS. Il permet de recevoir les demandes de connexions distantes envoyées par le processus Dnnnn d'un serveur distant.  LCKn (Lock) est un thread de verrouillage utilisé lorsque Oracle Parallel Server est installé. Les threads optionnels
  6. 6. La mémoire
  7. 7.  le cache des blocs de données (buffer cache) : données transitant de ou vers la base de données  les buffers redo-log :contient les blocs de données (appelés Redo Entries) à modifier et les modifications à effectuer sur ces données  la Shared Pool : partage des ordres SQL et PL/SQL, structure BD, index …  la Java Pool : moteur Java intégré à la base.  une zone de communication inter-processus  des espaces partagés si l’option Multi-Thread est activée SGA
  8. 8.  La zone PGA (Program Global Area) permettant le fonctionnement des divers processus (afin de stocker toutes les données ne nécessitant pas d'être partagées).  Une connexion à une base Oracle 10g engendre donc la création d’un thread utilisateur et de sa mémoire associée, la PGA. PGA
  9. 9. Instance Privilèges OS : ORA_DBA Privilèges Oracle : SYSDBA , SYSOPER
  10. 10. Principe du tablespace
  11. 11.  SYSTEM : dictionnaire de données  SYSAUX : différents outils ou options d’Oracle (RMAN,Text, UltraSearch, Data Mining, etc.)  tablespace de type UNDO pour gérer les données en attente de validation ou d’annulation  tablespace de type TEMPORARY (tris) tablespaces
  12. 12.  Répartir les fichiers de la base de données sur différents disques  Faciliter les opérations de maintenance : sachant que la plus petite entité cohérente de sauvegarde est le tablespace, le DBA peut en créer plusieurs. Chacun d’eux contient des tables qui nécessitent d’être sauvegardées à la même fréquence ;  Gérer des données utilisées par des applications différentes dans une seule base de données. Cela permet de démarrer un seul jeu de processus Oracle, et d’allouer une seule zone mémoire partagée SGA pour des applications différentes ;  Spécialiser des tablespaces pour des tâches techniques internes à Oracle : l’espace où seront stockés les segments d’annulation (UNDO) et celui où Oracle effectuera ses tris (TEMPORARY). tablespaces
  13. 13. tablespaces DB_BLOCK_SIZE
  14. 14. tablespaces : la gestion locale et dictionnaire CREATETABLESPACE test1 DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL ; CREATETABLESPACE test2 DATAFILE 'c:oracleoradataTESTtest2_01.dbf' SIZE 20M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE ( INITIAL 100 K NEXT 100 K MINEXTENTS 2 MAXEXTENTS 100 PCTINCREASE 0 );
  15. 15.  La gestion locale (interne à chaque tablespace) facilite les opérations lors du déplacement de tablespaces de base à base. Les accès au dictionnaire de données sont limités.  Le travail de l’administrateur Oracle est facilité, les fastidieuses opérations d’allocation d’espace ne sont plus nécessaires.  La gestion centralisée dans le dictionnaire imposait des écritures dans les tables correspondantes lors de chaque allocation ou libération d’espace. L’écriture de données bitmap est plus rapide et évite ce goulot d’étranglement. Oracle peut supporter encore plus d’utilisateurs.  Lors de la libération d’espace, le stockage dans les tables du dictionnaire ne permettait pas à Oracle de détecter que deux espaces libres contigus pouvaient être agrégés. Cette opération devait être effectuée par l’ordre ALTER TABLESPACE… COALESCE. La gestion locale automatise cette opération.  Vous n’avez plus besoin de paramétrer la clause storage pour les tablespaces, tables et index. Cette opération est automatique en gestion locale.  Vous pouvez maintenant déplacer un tablespace d’une base pour la raccrocher à une autre. C’est très utile pour créer très rapidement un environnement de test. La composition du tablespace étant locale, elle se déplace en même temps que le tablespace. tablespaces : la gestion locale et dictionnaire
  16. 16.  INITIAL précise la taille de la première extension.Tout segment possède une taille initiale à sa création.  NEXT précise la taille de la deuxième extension. Lorsque la première est remplie, Oracle alloue automatiquement une seconde de NEXT octets.Toutes les extensions futures se fondent sur cette valeur.  PCT_INCREASE est un paramètre que nous positionnons toujours à zéro, mais que certaines personnes utilisent. Ce pourcentage dirige l’incrément de taille des extensions suivantes. Par exemple, INITIAL = 1 Mo, NEXT = 1 Mo et PCT_INCREASE = 50 %. La première extension sera de 1 Mo, la deuxième de 1 000 + 50 % (1 000) = 1,5 Mo, la troisième de 2,25 Mo, etc. Calculez la taille nécessaire pour la vingtième extension !  TABLESPACE indique le tablespace cible dans lequel sera créée la table EMP. tablespaces : mode DICTIONARY CREATETABLE emp ( ... liste des colonnes de la table... ... ) STORAGE ( INITIAL 100K NEXT 100 K PCTINCREASE 0 ) TABLESPACE user_data;
  17. 17. tablespaces en gestion LOCALE CREATETABLESPACE test1 DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; CREATETABLESPACE test1 DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; CREATETABLESPACE test1 DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL AUTOALLOCATE SPACE MANAGEMENT AUTO ; CREATETABLESPACE test1 DATAFILE 'c:oracleoradataTESTtest1_01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL AUTOALLOCATE SPACE MANAGEMENT MANUAL ;
  18. 18.  Index  DROP INDEX..CREATE INDEX  ALTER INDEX REBUILD  ALTER INDEX COALESCE  Table  RENAME TEST to TEST_OLD ;  CREATE table TEST as select * from TEST_OLD La défragmentation
  19. 19. tablespaces CREATE USER nouvel_utilisateur IDENTIFIED BY son_mot_de_passe DEFAULT TABLESPACE tablespace_utilisateur QUOTA UNLIMITED ON tablespace_utilisateur ; ALTER DATABASE DEFAULT TABLESPACE tablespace_utilisateur;
  20. 20.  SORT_AREA_SIZE de la SGA  TEMPORARY TABLESPACE  SYSTEM Les tablespaces temporaires CREATE TEMPORARYTABLESPACE temp_data TEMPFILE 'c:oracleoradataTESTtemp_data01.dbf' size 50M extent management local ; CREATE USER nouvel_utilisateur IDENTIFIED BY son_mot_de_passe TEMPORARYTABLESPACE temp_data; ALTER DATABASE DEFAULTTEMPORARYTABLESPACE temp_data;
  21. 21.  Les tablespaces UNDO ou d’annulation (remplacement des rollback segments).  Les tablespaces BIGFILES : Les tablespaces BIGFILES permettent d’utiliser les possibilités des systèmes 64 bits de gérer de très gros fichiers. Un tablespace BIGFILE ne contient qu’un seul fichier qui peut comporter jusqu’à 232 blocs Oracle, soit environ 8 exaoctets ou à peu près 8 millions de teraoctets… tablespaces
  22. 22. Contrôle de données
  23. 23.  SYS (mot de passe par défaut : CHANGE_ON_INSTALL)  SYSTEM (mot de passe par défaut : MANAGER) Utilisateur
  24. 24. Utilisateur CREATE USER utilisateur IDENTIFIED { BY motdePasse | EXTERNALLY | GLOBALLY AS 'nomExterne' } [ DEFAULTTABLESPACE nomTablespace [QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ] ] [TEMPORARYTABLESPACE nomTablespace [QUOTA { entier [ K | M ] | UNLIMITED } ON nomTablespace ].] [PROFILE nomProfil ] [PASSWORD EXPIRE ] [ ACCOUNT { LOCK | UNLOCK } ] ;
  25. 25.  IDENTIFIED BY motdePasse permet d’affecter un mot de passe à un utilisateur local (cas le plus courant et le plus simple).  IDENTIFIED BY EXTERNALLY permet de se servir de l’authenticité du système d’exploitation pour s’identifier à Oracle (cas des compte OPS$ pour Unix).  IDENTIFIED BY GLOBALLY permet de se servir de l’authenticité d’un système d’annuaire.  DEFAULT TABLESPACE nomTablespace associe un espace disque de travail (appelé tablespace) à l’utilisateur.  TEMPORARYTABLESPACE nomTablespace associe un espace disque temporaire (dans lequel certaines opérations se dérouleront) à l’utilisateur.  QUOTA permet de limiter ou pas chaque espace alloué.  PROFILE nomProfil affecte un profil (caractéristiques système relatives au CPU et aux connexions) à l’utilisateur.  PASSWORD EXPIRE pour obliger l’utilisateur à changer son mot de passe à la première connexion (par défaut il est libre). Le DBA peut aussi changer ce mot de passe.  ACCOUNT pour verrouiller ou libérer l’accès à la base (par défaut UNLOCK). Utilisateur
  26. 26. Profil CREATE PROFILE nomProfil LIMIT { ParamètreRessource | ParamètreMotdePasse } [ ParamètreRessource | ParamètreMotdePasse ]…; ParamètreRessource : { { SESSIONS_PER_USER | CPU_PER_SESSION | CPU_PER_CALL | CONNECT_TIME | IDLE_TIME | LOGICAL_READS_PER_SESSION | LOGICAL_READS_PER_CALL | COMPOSITE_LIMIT } { entier | UNLIMITED | DEFAULT } | PRIVATE_SGA {entier[K|M] | UNLIMITED | DEFAULT}} { FAILED_LOGIN_ATTEMPTS | PASSWORD_LIFE_TIME | PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX | PASSWORD_LOCK_TIME | PASSWORD_GRACE_TIME } { expression | UNLIMITED | DEFAULT } }
  27. 27.  SESSIONS_PER_USER : nombre de sessions concurrentes autorisées.  CPU_PER_SESSION : temps CPU maximal pour une session en centièmes de secondes.  CPU_PER_CALL : temps CPU autorisé pour un appel noyau en centièmes de secondes.  CONNECT_TIME : temps total autorisé pour une session en minutes (pratique pour les examens de TP minutés).  IDLE_TIME : temps d’inactivité autorisé, en minutes, au sein d’une même session (pour les étudiants qui ne clôturent jamais leurs sessions).  PRIVATE_SGA : espace mémoire privé alloué dans la SGA (System Global Area). Profil
  28. 28.  FAILED_LOGIN_ATTEMPTS : nombre de tentatives de connexion avant de bloquer l’utilisateur (pour la carte bleue, c’est trois).  PASSWORD_LIFE_TIME : nombre de jours de validité du mot de passe (il expire s’il n’est pas changé au cours de cette période).  PASSWORD_REUSE_TIME : nombre de jours avant que le mot de passe puisse être utilisé à nouveau. Si ce paramètre est initialisé à un entier, le paramètre PASSWORD_REUSE_MAX doit être passé à UNLIMITED.  PASSWORD_REUSE_MAX : nombre de modifications de mot de passe avant de pouvoir réutiliser le mot de passe courant. Si ce paramètre est initialisé à un entier, le paramètre PASSWORD_REUSE_TIME doit être passé à UNLIMITED.  PASSWORD_LOCK_TIME : nombre de jours d’interdiction d’accès à un compte après que le nombre de tentatives de connexions a été atteint (pour la carte bleue, ça dépend de plein de choses, de toute façon vous en recevrez une autre toute neuve mais toute chère…).  PASSWORD_GRACE_TIME : nombre de jours d’une période de grâce qui prolonge l’utilisation du mot de passe avant son changement (un message d’avertissement s’affiche lors des connexions).Après cette période le mot de passe expire. Profil
  29. 29. Privilèges système GRANT { privilège Système | nomRôle | ALL PRIVILEGES } [, { privilègeSystème | nomRôle | ALL PRIVILEGES }]… TO { utilisateur | nomRôle | PUBLIC } [,{ utilisateur | nomRôle | PUBLIC } ]… [ IDENTIFIED BY motdePasse ] [ WITH ADMIN OPTION ] ;
  30. 30.  Privilège Système : description du privilège système (exemple CREATE TABLE,CREATE SESSION, etc.).  ALL PRIVILEGES : tous les privilèges système.  PUBLIC : pour attribuer le(s) privilège(s) à tous les utilisateurs.  IDENTIFIED BY désigne un utilisateur encore inexistant dans la base. Cette option n’est pas valide si le bénéficiaire est un rôle ou est PUBLIC.  WITH ADMIN OPTION : permet d’attribuer aux bénéficiaires le droit de retransmettre le(s) privilège(s) reçu(s) à une tierce personne (utilisateur(s) ou rôle(s)). Privilèges système

×