Vous êtes sur la page 1sur 67

Sur ce cours

Initie avec Farouk Toumani, Professeur Clermont-Ferrand Premire version en 2002 luniversit Blaise Pascal
3 anne ISIMA (cole ingnieur) DESS SIAD

Administration des bases de donnes : mise en uvre avec Oracle

Personnes qui ont contribu son volution


Fabien De Marchi, MdC, Univ Lyon 1 Helne Jaudoin, MdC, ENSSAT, Lannion

Jean-Marc Petit

+ de 20h de TP sous Oracle


Dpartement Informatique

Thmes du cours
Concrtiser la conception physique des bases de donnes Dmystifier les ordres SQL simples
create table EMP ( ); insert into EMP values ( ); select * from EMP where ;

Pr-requis

Autour des BD
Modle relationnel Langage de requtes Transactions Langage de programmation et BD

et comprendre les choix de conception physique Objectifs techniques sous Oracle


Comprendre l'architecture d'un serveur de BD Oracle Dmarrage et arrt dune instance et dune base de donnes Oracle Cration dune base de donnes oprationnelle Gestion des fichiers d'une base de donnes Oracle Gestion de la structure logique (tablespaces, segments, extents et blocs) Gestion des utilisateurs, des privilges et des

Autour des systmes dexploitation


Hirarchie de la mmoire Gestion du cache de donnes Politique de dfaut de pages

ressources

Sauvegarde/restauration/rorganisation des donnes

Sur ce cours
Forte volutivit des versions sous Oracle Comprendre les concepts importants, maitriser les points cls de lenvironnement Sur la technique :
savoir utiliser la documentation en ligne dOracle !!!

Histoire dOracle
1977
Relational Software Inc. (RSI - currently Oracle Corporation) established

1978
Oracle V1 ran on PDP-11 under RSX, 128 KB max memory. Written in assembly language. Implementation separated Oracle code and user code. Oracle V1 was never officially released.

1980
Oracle V2 released - the first commercially available relational database to use SQL. Oracle runs on on DEC PDP-11 machines. Coide is still written in PDP-11 assembly language, but now ran under Vax/VMS.

1982
Oracle V3 released, Oracle became the first DBMS to run on mainframes, minicomputers, and PC's (portable codebase). First release to employ transactional processing. Oracle V3's server code was written in C.

1983
Relational Software Inc. changed its name to Oracle Corporation.

1984
Oracle V4 released, introduced read consistency, was ported to multiple platforms, first interoperability between PC and server.

1986
Oracle V5 released. Featured true client/server, VAX-cluster support, and distributed queries. (first DBMS with distributed capabilities).

Corolaire :
Certains ordres prsents dans ce document peuvent tre errons en fonction de la version dOracle que vous utilisez

1988
Oracle V6 released - PL/SQL introduced.

1989
Released Oracle 6.2 with Symmetric cluster access using the Oracle Parallel Server

1991
Reached power of 1,000 TPS on a parallel computing machine. First database to run on a massively parallel computer (Oracle Parallel Server).

1992
Released Oracle7 for Unix

suite
1994
Oracle's headquarters moved to present location. Released Oracle 7.1 and Oracle7 for the PC.

Plan du cours
Introduction
Le rle de l'administrateur base de

1995
Reported gross revenues of almost $3 billion.

1995
OraFAQ.com website launched.

donnes
Composants de larchitecture dOracle Utilisation des outils dadministration

1997
Oracle8 released (supports more users, more data, higher availability, and object-relational features)

1998
Oracle announces support for the Intel Linux operating system

Serveur Oracle
Gestion dune instance Oracle Cration dune base de donnes Cration de vues du dictionnaire de donnes et Cration des packages standards

1999
Oracle8i (the "i" is for internet) or Oracle 8.1.5 with Java integration (JVM in the database)

2000
Oracle8i Release 2 released Oracle now not only the number one in Databases but also in ERP Applications Oracle9i Application Server generally available: Oracle tools integrated in middle tier

2001
Oracle9i Release 1 (with RAC and Advanced Analytic Service)

2002
Oracle9i Release 2

Structure physique de stockage


Fichier de contrle Fichiers de reprise

2004
Oracle10g Release 1 (10.1.0) available ("g" is for grid, the latest buzzword)

2005
Oracle10g Release 2 (10.2.0) available

Plan dtaill (2)


Structure logique de stockage
Fichiers de donnes et tablespaces Notions sur les segments Gestion des rollback segments Gestion des segments temporaires

Mise jour de l'intgrit des donnes Scurit


Gestion Gestion Gestion Gestion des des des des utilisateurs profils privilges rles

Sauvegarde/Restauration

Quesaco ? Partie 1
Administration des bases de donnes
conception physique des bases de donnes Dernire tape dun processus de conception de BD Nombreux choix possibles sur la faon dorganiser le serveur de bases de donnes
taille dun bloc, emplacements des fichiers sur disque, nombre de fichiers de donnes, taille des fichiers, multiplexage, espace logique de stockage (tablespace),

Introduction l'administration des bases de donnes

La face cache des bases de donnes


13

Tches de ladministrateur de BD
Dans la phase de conception
dfinition du schma conceptuel de la base rgles de gestion, cohrence des informations cycle de vie des donnes, volumtrie

Rles dun DBA


Doit matriser la technique pour mieux sen affranchir Penser globalement et fixer localement
Ncessite de matriser les concepts

Grandes fonctions :
installer le SGBD et les applications clientes Crer la base de donnes en faisant des choix au niveau physique et la maintenir Grer les utilisateurs Assurer la cohrence et la scurit des donnes Echanger des donnes avec l'extrieur Amliorer les performances
gestion des ressources mmoires gestion des temps de rponses prohibitifs

Dans la phase de maintenance


Planification et cration des BD
Gestion des structures physiques Gestion des structures logiques suivant le design

Gestion de la scurit, des utilisateurs Sauvegarde et restauration Optimisation de la base de donnes


optimisation de requtes

Administration du rseau 15

16

Tendance actuelle
Administrateur de base de donnes
souvent form "sur le tas" l'intersection de plusieurs domaines beaucoup de demande, peu d'offre
mouton 5 pattes, env 45 KE/an

Exemple avec Oracle


Deux produits principaux avec Oracle 10g
Oracle Entreprise Edition
dans la continuit des versions prcdentes

Tendances actuelles
progiciels intgrs
minimise les besoins en administration sans pour autant les supprimer

Oracle Express Edition


En rupture avec la tradition Oracle Le SGBD fait des choix la place de ladministrateur
plus difficile tuner Objectif : concurrencer SQL server ?

amlioration des outils d'administration par les fournisseurs de SGBD


Notion d'Assistant
pour la cration des bases, la sauvegarde/restauration, ...

A terme, vers des BD qui s'autoadministrent 17

Exemple concret de self-tuning des BD

Composants de larchitecture d'Oracle


1. Les clients et les serveurs d'Oracle 2. Les processus, les structures de la mmoire et les fichiers d'Oracle 3. tapes du traitement d'une requte d'interrogation 4. tapes du traitement d'un ordre de modification/ajout/suppression 5. tapes du traitement d'un ordre de fin de transaction (commit)
19

1. Les clients et les serveurs d'Oracle


1 serveur <--> plusieurs clients Oracle Oracle

Utilisateurs
Connexion directe l'hte
e.g. avec telnet + sql*plus

Connexion client/serveur ou deux tiers


e.g. avec les outils OEM (e.g. SQL Worksheet) ou avec une application dveloppe en Client/Serveur (e.g. avec Developer 2000)

Administrateurs
chargs de l'entretien du serveur Oracle

20

Connexion une base de donnes


via SQL*Plus ou application tierce => lancement d'un processus utilisateur sur le poste du client (qui peut tre le serveur) lors de la connexion (login/passwd/service BD) => lancement d'un processus serveur sur le serveur communication
inter-processus si les 2 processus s'excutent sur le mme poste via un logiciel de rseau sinon

Processus Utilisateur
Fonctionne sur la machine du client Dmarre lors de l'appel d'un outil ou d'une application Excute l'outil ou l'application (SQL*Plus, Server Manager, OEM, Developer/2000) Inclut l'UPI (User Program Interface) Appelle le serveur Oracle

Session : connexion spcifique entre un utilisateur et un serveur prt l'emploi, i.e. un serveur dmarr.
21 22

Processus Serveur
Fonctionne sur la mme machine que le serveur Oracle En cas de serveur ddi, prend en charge un unique processus utilisateur Utilise une PGA exclusive (Program Global Area) Inclut l'OPI (Oracle Program Interface) Traite les appels gnrs par le client Retourne les rsultats au client en cas de serveur partag (MTS), plusieurs processus utilisateurs partagent un processus serveur
23

Architecture
Architecture serveur ddi
1 processus <-> 1 processus client serveur Architecture
la plus simple la plus rpandue

Inadapt si beaucoup de clients connects de faon simultane

Architecture serveur partag


n processus <-> 1 processus clients serveur Serveur partag ou Multi-Thread Server (MTS) Gestion d'une file de requtes des processus clients et de rponses retourner
Dispatcher + Listener

24

2. Serveur Oracle
Serveur Oracle =

instance Oracle + base de donnes Oracle


Instance Oracle
C'est un moyen pour accder une base de donnes Oracle Ouvre une unique base de donnes Instance Oracle = SGA + des processus en arrire plan pour grer la base

25

26

Instance Oracle : la SGA


SGA (Shared Global Area) ou Zone mmoire globale du systme contient les donnes et les informations de contrle pour le serveur Oracle
Fait le lien avec le processus serveur

Instance Oracle : Processus en arrire plan


5 principaux processus sont lancs pour une instance donne
DBWR (processus d'criture des blocs de donnes) LGWR (processus d'criture du fichier de reprise) CKPT : point de synchronisation SMON (processus System Monitor) PMON ( processus Process Monitor)

allou en mmoire virtuelle par le systme d'exploitation du serveur Elle comprend


Une zone partage (shared pool) Le cache de donnes Le cache de reprise (redo log)

D'autres processus sont lancs


suivant le type de serveur
serveur ddi/partag

suivant le mode d'archivage


archivelog ou noarchivelog

... 27 28

BD Oracle
dsigne par un nom (DB_NAME), souvent pris identique celui de l'instance correspondante. reprsente les structures physiques des donnes se compose de fichiers du systme d 'exploitation
fichiers de donnes (>=1), (10g >=2) fichiers de reprise (redo log) (>=2) fichiers de contrle (>=1) fichier de paramtres fichier mot de passe fichiers de reprise archivs

29

30

Architecture Oracle
Processus utilisateur

3. Traitement d'une requte d'interrogation


Le processus client envoie la requte au processus serveur Le processus serveur effectue l'analyse syntaxique et smantique de la requte
utilise la shared pool de la SGA pour compiler l'ordre retourne l'tat (analyse correcte ou incorrecte) au processus client.

Instance
Zone de mmoire m partage partag

SGA

Processus Serveur PGA

Cache de la librairie Cache du dict. de donnes

Cache de donnes

Cache de reprise

SMON DBW0 PMON CKPT LGWR Autres

Excution de la requte Rcupration des rsultats


le processus serveur envoie les lignes extraites par la requte ( partir du cache de donnes si les donnes y ont dj t charges)

Fichiers journaux Fichier de Fichiers de Fichiers de Fichiers de contrle journalisation archivs paramtres donnes Fichier de mots de passe

Base de donnes

31

32

La shared Pool de la SGA


taille en octet dfinie par le paramtre SHARED_POOL_SIZE
80 Mo sur 10g !

Le cache de donnes de la SGA


Objectif :
minimiser les cots d'entres/sorties entre la mmoire centrale et la mmoire secondaire

Sert pour lallocation de mmoire des requtes SQL et code PL/SQL compose de :
library cache
contient le texte de la requte, le code analys et un plan d'excution dtermin par l'optimiseur

Stocke les blocs les plus rcemment utiliss (LRU)


Une liste LRU ------ MRU Une "dirty list"

Paramtres
nombre de blocks dfini par DB_BLOCK_BUFFERS taille d'un bloc dfinie par DB_BLOCK _SIZE

cache du dictionnaire de donnes


pour l'analyse smantique de la requte

33

34

La zone mmoire du programme (PGA)


Zone mmoire utilise par un seul processus serveur
la diffrence de la SGA qui est partage par tous les processus serveurs

4. Traitement d'un ordre de mise jour (DML)


Similaire une requte d'interrogation pour la phase d'analyse Phase d'excution diffrente :
1. le processus serveur lit des blocs de donnes et de rollback partir
des fichiers de donnes du buffer cache de donnes

PGA contient :
une zone de tri des informations sur la session l'tat du curseur ...

2. Si des blocs ne sont pas dj dans le cache, copie des blocs du disque dans le cache 3. Mise jour de verrou sur les donnes 4. Enregistrement des modifications
apporter au rollback (image avant) et aux donnes (nouvelles valeurs)

dans le cache de reprise (redo log) 5. Mmes oprations dans le cache de

donnes
35
Ces blocs sont marqus comme modifis (diffrents des blocs stocks sur disque)

36

Rollback Segment
Permet la gestion des transactions
COMMIT : valide un ensemble de MAJ ROLLBACK : annule un ensemble de MAJ

Cache de reprise
Redo log = reprise Fait partie de la SGA Taille dfinie par LOG_BUFFER Stocke la trace des modifications
le bloc modifi l'emplacement de la modification la nouvelle valeur
les 3 constituent une "entre redo"

Avant d'effectuer une modification des donnes, le processus serveur enregistre l'ancienne valeur dans un

rollback segment
Intrts :
si la transaction choue, les modifications "dj faites" sont annules Assure une lecture cohrente des donnes par les autres transactions en cas de panne, les donnes sont restaures dans un tat cohrent.

Pas de distinction sur le type du bloc


bloc d'index, de donnes,

Cache circulaire
capacit infinie !

37

38

Database Writer (DBWR)


Objectifs :
Limiter les cots d'entres/sorties en "retardant" (de faon transparente l'utilisateur) l'criture des blocs modifis

Log Writer (LGWR)


Objectifs
Enregistrer toutes les modifications apportes aux donnes afin d'assurer la reprise aprs panne

DBWR
un des processus serveur en arrire plan enregistre les modifications du cache de donnes dans les fichiers de donnes Quand ?
Nombre de blocs modifis atteint un seuil pas assez de blocs libres dclenchement d'un point de synchronisation

Enregistre les modifications du cache de reprise de la SGA dans

les fichiers de reprise


Effectue des critures squentielles
quand le cache de reprise est plein

1/3
une transaction est valide juste avant que DBWR ne fonctionne

Comme le cache de reprise, les fichiers de reprise sont organiss de faon circulaire
39 capacit infinie 40

10

5. Traitement des oprations COMMIT


SCN pour System Change Number
chaque transaction valide -> 1 identifiant de modification SCN sorte d'horodateur interne
permet de vrifier la cohrence indpendamment de la date/heure du SE

Les outils d'administration


Dpend du systme d'exploitation sur lequel Oracle est install
tendance actuelle : automatiser les tches d'administration
avec des outils graphiques des assistants

Lorsqu'un ordre effectu:

COMMIT

est

1. Le processus serveur enregistre dans le cache de reprise 1 SCN 2. LGWR effectue une lecture contigu de tout le cache de reprise (SCN inclu) dans les fichiers de reprise 3. L'utilisateur reoit "commit complete" 4. Le processus serveur libre les verrous 41

Identification des applications d'administrations d' Oracle Entreprise Manager (OEM) Objectif :
Utilisation
des composants d'OEM du mode ligne de commande

42

Exemples d'outils
Mode ligne de commandes
Sqlplus sous NT
remplace SQL*DBA

SQL*Loader import/export oradim80, orapwd80, ...

Mode graphique
Outils d'OEM
Instance Manager Storage Manager SQL Worksheet Schema Manager Security Manager Backup Manager Data Manager

Autres outils Oracle :


Oracle Net8

43

11

Objectifs Partie 2
Dcrire larchitecture dun SGBD
Comprendre son interface avec le matriel, le systme dexploitation

Etre capable de crer son propre serveur de bases de donnes Trois notions importantes Serveur de bases de donnes
Instance Base de donnes Dictionnaire et packages

45

46

Objectifs Instance Oracle


Initialisation du systme d'exploitation
Diffrents types d'authentification

Cration du fichier de paramtres Dmarrage d'une instance et ouverture de la base de donnes Fermeture de la base de donnes et arrt de l'instance Obtention et initialisation des paramtres Gestion des sessions Contrle des fichiers d'alertes et de traces

47

48

12

Instance Oracle
Pralable obligatoire pour accder une base de donnes Oracle Instance Oracle
associe une unique base de donnes SGA processus en arrire plan

Utilisateurs administrateurs
Utilisateur SYS et SYSTEM
crs automatiquement (rle DBA)

SYS
mot de passe : celui spcifi avec ORADIM ou change_on_install propritaire du dictionnaire
relations + vues dans le schma SYS

Tches courantes de l'administrateur


de dmarrer l'instance
puis de monter la BD et de l'ouvrir

possde tous les droits

SYSTEM
mot de passe : celui spcifi avec ORADIM ou manager moins de privilges que SYS

de l'arrter
aprs avoir fermer puis dmonter la BD

Utilisateur INTERNAL (plus support)


mot de passe admin sous Unix et oracle sur Windows 49 50

Authentification
Deux possibilits :
laisser Oracle grer l'authentification dcharger Oracle en se rfrant au SE

Instance Oracle : Rappel


SGA (Shared Global Area) ou Zone mmoire globale du systme contient les donnes et les informations de contrle pour le serveur Oracle allou en mmoire virtuelle (gre par le systme d'exploitation du serveur) Elle comprend
la shared pool : stocke les informations les plus rcemment utilises (e.g. requtes SQL) le cache de donnes : stocke les donnes les plus rcemment utilises le cache de reprise : utilis pour enregistrer les modifications apportes la base de donnes 51 52

Authentification par Oracle


cf. gestion de la Scurit

Authentification par le systme d'exploitation :


Dfinir l'utilisateur tre authentifi par le SE pour qu'il ait les privilges administrateurs
groupe sous Oracle/Unix utilisateurs du groupe cf. doc pour la mise en uvre

4 cas de figure :
utilisateurs sans privilge utilisateurs privilgis (SYSOPER, SYSDBA) utilisateur sys affecter des rles aux utilisateurs

13

Instance Oracle : Rappel (2)


5 principaux processus lancs pour une instance Oracle :
DBWR (processus d'criture des blocs de donnes modifis) : crit les

Cration d'une instance


Pouvoir se connecter comme administrateur Editer le fichier de paramtres init<sid>.ora Sous sqlplus, commande STARTUP
Exemple :
connect sys/oracle as sysdba startup nomount file=d:\data\initU01.ora

donnes modifies dans la base de donnes


LGWR (processus d'criture des modifications) : enregistre les

modifications enregistres dans le cache de reprise dans les fichiers de reprise


SMON (processus System Monitor) :

vrifie la cohrence et redmarre la base de donnes aprs panne


PMON (processus Process Monitor) :

Aucune vrification de cohrence ce niveau Allocation de la SGA

nettoie les ressources lors de l'echec d'un processus CKPT : Synchronise et assure la cohrence des donnes

53

54

Instance et Service NT
serveur Oracle = instance + BD Sous NT, chaque serveur est associ un service Pour crer un service, il faut utiliser l'outil ORADIM
permet d'excuter plusieurs serveurs Oracle sur la mme machine Attention au nombre de caractres
< 4 pour les noms de service (V8)

Estimer la taille de la SGA dpend de la quantit de mmoire vive disponible en gnral, on a :


taille SGA = 40% taille RAM

Taille SGA =
db_block_size * db_block_buffer + shared_pool_size + log_buffer

Crer une instance, e.g. nomme IF3


ORADIM -NEW -SRVC OracleServiceIF3 [-SYSPWD sys_PWD] [-sid SRVCNAME] [-MAXUSERS NUMBER] [-STARTMODE AUTO, MANUAL] [-PFILE FILENAME]

Exemple : Soit 500 Mo de RAM disponible => SGA = 200 Mo pour fixer les paramtres, dpend de la version dOracle !
10g :
db_cache_size = db_block_size * db_block_buffer, db_block_buffer plus maintenu

Supprimer une instance


ORADIM -DELETE -SID IF3

55

14

Le fichier de paramtres
Paramtre obligatoire :
db_name : idf de la bd, < 8 charactres, pas de chiffre comme 1er caractre

SGA
Vues dynamiques :
V$SGA : gnralit V$SGAINFO : info sur taille composants V$SGASTAT : info dtaille Exemple :
select sum(value) from V$SGA

Paramtres communment modifis:


control_files : nom des fichiers de contrle compatible : version du serveur avec laquelle cette instance est compatible db_block_buffers : nombre de blocs mis en cache dans la SGA (min. 50) plus maintenu 10g ! shared_pool_size : taille en octet de la zone de partage (minimum 3.500.000 avec V8, 70 000 000 avec 10g !) log_buffer : Nombre d'octets allous au cache de reprise dans la SGA user_dump_dest : emplacement o les fichiers trace sont crs processes : nombre max de processus du SE pouvant se connecter simultanment une instance sql_trace : active ou pas un espion pour chaque session utilisateur max_dump_file_size : taille max du fichier de trace timed_statistics : active ou pas le minutage dans les fichiers trace undo_management=MANUAL ou AUTO : dlgation ou pas des rollback segments Oracle (depuis 9i)

Paramtres dinitialisation (10g)


db_block_buffer, sga_target shared_pool_size, java_pool_size, Large_pool_size, db_cache_size log_buffer, db_keep_cache_size

57

Exemple de fichier de paramtres


control_files=(D:\oracle\product\10.2.0\ora data\Mais\control.001.ctl, D:\oracle\product\10.2.0\oradata\Mais\contr ol.002.ctl) db_name db_domain db_block_size shared_pool_size undo_management = = = = = mais insa-lyon.fr 4096 100000000 AUTO

Dmarrage par tapes


3 options lors du dmarrage
nomount : seule l'instance est dmarre mount : fichier de contrle ouvert pour cette instance open : tous les fichiers dfinis pour cette instance dans le fichier de contrle sont ouverts

# define directories to store trace # and alert files # background_dump_dest=D:\oracle\product\10.2 .0\admin\Mais\bdump user_dump_dest=D:\oracle\product\10.2.0\adm in\Mais\udump

Certaines commandes ncessitent que la base soit dans une de ces options
tape NOMOUT pour la cration de la base de donnes tape MOUNT pour renommer des fichiers de reprise, ...

59

60

15

Paramtres d'initialisation dynamiques


Certains paramtres du fichier init.ora peuvent
tre modifis base ouverte
la plupart !

Restauration d'instance
Fait suite un problme
du SE, de l'instance du matriel ...

tre modifis base ferme


en ditant le fichier init.ora ex avec undo_management

le processus SMON
restaure automatiquement l'instance
lorsque l'instance est redmarre le cache des donnes est restaure partir du fichier de reprise

ne jamais tre modifis


ex avec db_block_size

Modification base ouverte


Ordre ALTER SYSTEM ou ALTER SESSION Exemples :
ALTER SESSION SET SQL_TRACE=true;
modifie seulement la valeur pour la session courante

les tapes sont :


rolling forward : restaure les donnes enregistres dans les fichiers de reprise mais non enregistres dans le fichier de donnes ouverture de la base de donnes (accs possible sur toutes les donnes non verrouilles) rolling back : les transactions non valides sont annules

ALTER SYSTEM SET TIMED_STATISTICS=true;


modification permanente

ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;


modification pour les autres sessions

Possibilit de modification permanente si fichier binaire de init.ora existe


clause SCOPE = SPFILE ou MEMORY

61

62

La commande STARTUP
Syntaxe :
STARTUP [FORCE] [RESTRICT] [PFILE=filename] [EXCLUSIVE | PARALLEL | SHARED] [ OPEN [RECOVER][DATABASE] | MOUNT | NOMOUNT] open : permet aux utilisateurs d'accder la base mount : monte la base mais accs limits nomount : sga + processus arrire plan. Pas d'accs la base exclusive : seule cette instance accde la base parallel ou shared : avec server // Oracle force : annule l'instance courante avant de dmarrer normalement restrict : accs rservs aux utilisateurs ayant le privilge RESTRICTED SESSION recover : dmarre la restauration quand la base dmarre

La commande SHUTDOWN
Syntaxe :
SHUTDOWN [NORMAL | TRANSACTIONNAL | IMMEDIAT | ABORT]

Mode d'arrt nouvelles connexions permises attend la fin des sessions en cours attend la fin des transactions en cours force un point de synchronisation et ferme

A 0 0 0 0

I 0 0 0 1

T 0 0 1 1

N 0 1 1 1

Temps d'arret : N -> T -> I -> A

63

64

16

Vues dynamiques sur les performances


Entretenues par le serveur Oracle
mises jour automatiquement image fidle du serveur

Exemples
SGA
V$PARAMETER, V$SGA, V$OPTION, V$PROCESS , V$SESSION , V$VERSION , V$INSTANCE

Dcrivent les structures du disque et de la mmoire Utiles pour le tuning des performances Prfixes par V$
dfinies partir de tables normalises prfixes par X$

Fichiers :
V$THREAD , V$CONTROLFILE , V$DATABASE , V$DATAFILE , V$DATAFILE_HEADER , V$LOGFILE

Afficher les valeurs courantes des paramtres


SHOW PARAMETER control

Accessible par l'administrateur l'tape NOMOUNT V$FIXED_TABLE : les dcrit toutes

ou
select name from V$PARAMETER where name like '%control%';

65

66

BACKUPS, ARCHIVE, RESTAURATION


V$ARCHIVE V$ARCHIVED_LOG (V8) V$ARCHIVE_DEST (V8) V$BACKUP
V$BACKUP_CORRUPTION (V8)

V$SQL V$SQLAREA V$SQLTEXT


V$SQLTEXT_WITH_NEWLINES

SQL*LOADER (Chargement direct)


V$LOADCSTAT V$LOADPSTAT (V8) V$LOADTSTAT

V$SQL_BIND_DATA (V8)
V$SQL_BIND_METADATA (V8)

V$BACKUP_DATAFILE (V8) V$BACKUP_DEVICE (V8) V$BACKUP_PIECE (V8) V$BACKUP_REDOLOG (V8) V$BACKUP_SET (V8) V$DELETED_OBJECT (V8)
V$RECOVERY_FILE_STATUS

V$SQL_CURSOR V$SQL_SHARED_MEMORY

FIXED Vues
V$FIXED_TABLE V$FIXED_VIEW_DEFINITION V$INDEXED_FIXED_COLUMN

DATABASES et INSTANCES
V$ACTIVE_INSTANCES V$BGPROCESS V$BH (V8) V$COMPATIBILITY V$COMPATSEG V$COPY_CORRUPTION (V8) V$DATABASE V$DATAFILE V$DATAFILE_COPY (V8) V$DATAFILE_HEADER (V8) V$DBFILE V$DBLINK V$DB_PIPES V$INSTANCE V$LICENSE V$OFFLINE_RANGE (V8) V$OPTION V$SGA V$SGASTAT V$TABLESPACE (V8) V$VERSION

I/O
V$FILESTAT V$WAITSTAT

V$LATCH_MISSES V$LATCH_PARENT V$LOCK V$LOCK_ACTIVITY V$LOCK_ELEMENT V$LOCKED_OBJECT V$LOCKS_WITH_COLLISIONS V$PING V$RESOURCE V$RESOURCE_LIMIT (V8)
V$TRANSACTION_ENQUEUE (V8)

Verrous
V$BUFFER_POOL (V8) V$CACHE_LOCK V$CLASS_PING (V8)
V$DLM_CONVERT_LOCAL (V8) V$DLM_CONVERT_REMOTE (V8)

V$_LOCK V$_LOCK1

Divers
V$TIMER V$TYPE_SIZE V$_SEQUENCES (V8)

V$RECOVERY_LOG V$RECOVERY_STATUS V$RECOVER_FILE

CACHE MANAGEMENT
V$CACHE (V8) V$DB_OBJECT_CACHE V$LIBRARYCACHE V$ROWCACHE V$SUBCACHE (V8)

CONTROL FILES
V$CONTROLFILE V$CONTROLFILE_RECORD_S ECTION (V8)

CURSORS et SQL
V$OPEN_CURSOR

V$DLM_LATCH (V8) V$DLM_MISC (V8) V$ENQUEUE_LOCK (V8) V$EVENT_NAME V$FALSE_PING V$FILE_PING (V8) V$LATCH V$LATCHHOLDER V$LATCHNAME V$LATCH_CHILDREN

Serveur MULTI-THREADED et PARALLEL


V$CIRCUIT V$DISPATCHER V$DISPATCHER_RATE (V8) V$MTS V$QUEUE V$REQDIST V$SHARED_SERVER V$THREAD

67

68

17

PERFORMANCE
V$GLOBAL_TRANSACTION (V8)

REDO LOGS
V$LOG V$LOGFILE V$LOGHIST V$LOG_HISTORY

V$OBJECT_DEPENDENCY
V$SHARED_POOL_RESERVED

Mode "restricted session"


Utiliser l'option RESTRICT au dmarrage de l'instance
l'accs est ainsi limit ds le dbut

V$SORT_SEGMENT V$SORT_USAGE (V8) V$STATNAME V$SYSSTAT


V$SYSTEM_CURSOR_CACHE

ROLLBACK SEGMENTS
V$ROLLNAME V$ROLLSTAT

V$SYSTEM_EVENT V$TRANSACTION

SECURITE et PRIVILEGES
V$ENABLEDPRIVS V$PWFILE_USERS

OPTION REQUETE PARALLELLE


V$EXECUTION
V$EXECUTION_LOCATION (V8)

SESSIONS
V$ACCESS V$MYSTAT V$PROCESS V$SESSION V$SESSION_CONNECT_INFO V$SESSION_CURSOR_CACHE V$SESSION_EVENT V$SESSION_LONGOPS (V8)
V$SESSION_OBJECT_CACHE (V8)

Utiliser ALTER SYSTEM


pour rendre l'accs une instance limite exemples :
ALTER SYSTEM ENABLE RESTRICTED SESSION ALTER SYSTEM DISABLE RESTRICTED SESSION

V$PQ_SESSTAT V$PQ_SLAVE V$PQ_SYSSTAT V$PQ_TQSTAT

PARAMETRES ORACLE
V$NLS_PARAMETERS V$NLS_VALID_VALUES V$PARAMETER V$SYSTEM_PARAMETER

V$SESSION_WAIT V$SESSTAT V$SESS_IO

69

70

Fermeture de sessions
Identifier la session fermer
interroger la vue V$SESSION Exemple :
select sid, serial# from V$SESSION where username='SCOTT';

Fichiers de trace
Remplis par le serveur et les processus en arrire plan Tout y est consign
constitue un journal chronologique des messages et des erreurs

Intrts :
permet de dtecter les erreurs internes et les corruptions de blocs surveiller (espionner) les oprations sur la base de donnes

Supprimer la avec un ordre ALTER SYSTEM


Exemple :
ALTER SYSTEM KILL SESSION '7,117';

Devrait se retrouver dans le dossier :


Oracle\10.2.0\admin\IF3\bdump

Pour les traces de lutilisateur


Oracle\10.2.0\admin\IF3\udump

Possible d'activer dautres traces


avec ALTER SESSION le paramtre SQL_TRACE 71 72

18

Informations sur l'instance


Interroger la vue V$INSTANCE
utiliser la commande describe faire des requtes

Base de donnes Oracle

commande SHOW

73

74

Prrequis
Un compte autoris DBA
tous les privilges sur le systme d'exploitation

BD Oracle : Rappel
dsigne par un nom DB_NAME
souvent le mme que celui de l'instance reprsente les structures physiques des donnes

Une mmoire suffisante pour le dmarrage de l'instance


SGA excutable Oracle les processus

se compose de fichiers du SE
fichiers de donnes (>=1)
stocke le dictionnaire des donnes, les objets utilisateurs et les images avant des donnes

Un espace disque suffisant pour stocker la base de donnes


au moins 1 fichier de donnes au moins 2 fichiers de reprise au moins 1 fichier de contrle

fichiers de reprise (redo log) (>=2)


stocke toutes les modifications apportes la base de donnes (pour la reconstruire en cas de panne)

fichiers de contrle (>=1)


contient les informations ncessaires la mise jour et la vrification de l'intgrit des donnes.

Pour le disque, il faut estimer ...


75

Autres fichiers :
fichier de paramtres, fichier mot de passe, fichiers de reprise archivs

76

19

Emplacements des fichiers


Conserver au moins 2 copies du fichier de contrle sur 2 machines et/ou disques diffrents => multiplexer Multiplexer les fichiers de reprise Sparer les fichiers de donnes afin
d'viter la fragmentation de la base
sparer les donnes applicatives ou temporaires dans diffrents tablespaces

Cration d'une base : Remarques


Sous Unix :
Cration automatique au cours d'une installation Cration manuelle aprs installation

Sous Windows :
Cration automatique au cours d'une installation Cration via Oracle Database Assistant ou cration manuelle

minimiser les accs disques ou E/S


sparer les tables et les index dans diffrents tablespaces

OFA (Optimal Flexible Architecture)


conu pour optimiser l'organisation des fichiers Oracle sous Unix Existe aussi sur NT 77

En cas de cration manuelle, utiliser des scripts de cration (cf TP)

78

Cration manuelle d'une base de donnes


Choisir un nom unique pour l'instance et la base de donnes Choisir un jeu de caractres Dfinir les variables du SE Prparer le fichier des paramtres Crer un fichier mot de passe Dmarrer l'instance Crer la base de donnes
Deux groupes de fichiers logs Deux tablespaces
SYSTEM avec ventuellement EXTENT MANAGEMENT LOCAL SYSAUX

Fichier de paramtres
Crer un fichier init<sid>.ora partir d'un fichier existant Editer le pour modifier certains paramtres
choix difficiles, nombreux paramtres

Possibilit de crer un fichier binaire avec ordre CREATE

SPFILE
Exemple :
CREATE SPFILE='/u01/oracle/dbs/test_spfile.ora' FROM PFILE='/u01/oracle/dbs/test_init.ora';

Excuter les scripts pour gnrer le dictionnaire de donnes


80

20

Dmarrage de l'instance et cration de la BD


Se connecter en tant que SYSDBA Dmarrer l'instance l'tape NOMOUNT
STARTUP NOMOUNT PFILE=d:\data\initU01.ora

Aprs la cration de la base de donnes


La base contient :
les fichiers de donnes constituant le tablespace SYSTEM et SYSAUX les fichiers de contrle et de reprise l'utilisateur SYS et SYSTEM le rollback segment SYSTEM Tables X$ + vues V$

Cration de la base de donnes


Ordre CREATE DATABASE
CREATE DATABASE U01 USER SYS IDENTIFIED BY adm USER SYSTEM IDENTIFIED BY adm LOGFILE GROUP 1 ('D:\oracle\product\10.2.0\oradata\Mais\log1a.log') SIZE 10M, GROUP 2 ('D:\oracle\product\10.2.0\oradata\Mais\log2a.log') SIZE 10M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET WE8ISO8859P1 DATAFILE 'D:\oracle\product\10.2.0\oradata\Mais\system01.dbf' SIZE 160M SYSAUX DATAFILE 'D:\oracle\product\10.2.0\oradata\Mais\sysaux01.dbf' SIZE 50M;

Pour modifier la base de donnes


ordre ALTER DATABASE Exemple pour ouvrir une base de donnes qui est l'tat NOMOUNT :
ALTER DATABASE [MOUNT | OPEN]

En particulier, elle ne contient pas encore le dictionnaire de donnes


81

NB : pas de vue V$ (ni sur le dictionnaire) pour la BD oracle

82

Dictionnaire de donnes et Packages standards

Objectifs
Sur le dictionnaire :
Construction des vues du dictionnaire de donnes
script catalog.sql

Utilisation du dictionnaire
par exemple, pour l'valuation smantique des requtes

Sur les packages


Prparation de l'environnement PL/SQL l'aide de scripts administratifs
script catproc.sql

Administration des procdures stockes et des packages

83

84

21

Dictionnaire de donnes
Fournit des informations sur
la structure logique et physique d'une base de donnes les noms, dfinitions, et allocation d'espace des objets des schmas les contraintes d'intgrit les utilisateurs, les privilges de la base l'audit

Vues du dictionnaire
Le prfixe USER
USER_XXX : objets qui appartiennent l'utilisateur Exemple :
USER_TABLES : contient toutes les tables d'un utilisateur

Le prfixe ALL
ALL_XXX : objets qui sont accessibles aux utilisateurs (grce colonne OWNER)

Compos de tables et de vues :


Les tables :
tables normalises
exemple : IND$, OBJ$ ...

Le prfixe DBA
DBA_XXX : objets de toute la base Accdes par
l'administrateur ou un utilisateur ayant le privilge systme SELECT ANY TABLE

cres partir du script sql.bsq

Les vues :
simplifient l'accs aux tables cres partir du script catalog.sql

Ordre d'inclusion :
85 USER <= ALL <= DBA 86

Exemples de vues
Vues
dictionary dict_columns dba_tables dba_objects dba_lobs dba_tab_constraints dba_users dba_sys_privs dba_roles dba_extents dba_free_space dba_segments dba_rollback_segs dba_data_files dba_tablespaces dba_audit_trail dba_audit_objects dba_audit_obj_opts

VUES RELATIVES AUX OBJETS D'UN UTILISATEUR


USER_CATALOG ou CAT
TABLE_NAME TABLE_TYPE

Description
Gnralits Informations sur les objets utilisateurs, e.g. tables, colonnes Informations sur les privilges et les rles utilisateurs Allocation despace pour les objets de la base Structure gnrale de la base Information sur laudit

Liste des Tables, Vues, Synonymes et squences que possde lutilisateur.

USER_OBJECTS ou OBJ
OBJECT_NAME OBJECT_TYPE LAST_DDL_TIME STATUS OBJECT_ID CREATED TIMESTAMP COMMENTS

Liste des Objets appartenant lutilisateur.

Trace des commandes excutes sur des objets appartenant lutilisateur. USER_AUDIT_SESSION Trace des connexions et des dconnexions de lutilisateur. USER_AUDIT_STATEMENT Trace des commandes suivantes:GRANT, REVOKE, AUDIT, NOAUDIT, et ALTER SYSTEM USER_TAB_COLUMNS ou COLS Liste des colonnes des tables, vues ou cluster crs par lutilisateur USER_COL_GRANTS Liste des Autorisations sur les colonnes pour lesquelles lutilisateur est le propritaire ou a lautorisation USER_COL_GRANTS_MADE Liste des Autorisations attribues par cet utilisateur sur les colonnes ou tables ou vues lui appartenant. USER_CONSTRAINTS Liste des Contraintes dfinies sur les tables de lutilisateur.
OWNER CONSTRAINT_TYPE SEARCH_CONDITION R_CONSTRAINT_NAME STATUS CONSTRAINT_NAME TABLE_NAME R_OWNER DELETE_RULE

USER_AUDIT_OBJECT

87

88

22

USER_CONS_COLUMS Listes des Colonnes intervenant dans la dfinition des contraintes sur les tables de l'utilisateur USER_DEPENDENCIES Listes des dpendances entre tables ou vues et procdures, fonctions et packages USER_ERRORS Listes des Erreurs courantes relatives aux procdures fonctions ou corps de package. USER_IND_COLUMNS Liste des colonnes, des index dfinis sur les tables de l'utilisateur. USER_INDEXES ou IND Liste des index crs par l'utilisateur USER_OBJECTS ou OBJ Tous ceux appartenant l'utilisateur USER_RESOURCE_LIMITS Description des valeurs limites des ressources pour cet utilisateur. USER_ROLE_GRANTS Liste des rles attribus cet utilisateur. USER_SEQUENCES ou SEQ Liste des squences cres par l'utilisateur USER_SOURCE Liste des textes des procdures packages, fonctions et corps de package crs par l'utilisateur. USER_SNAPSHOTS Liste des snapshots crs par l'utilisateur. USER_SYNONYMS ou SYN Liste des synonymes privs cres par l'utilisateur. USER_SYS_GRANTS Liste des privilges systmes attribus cet utilisateur. USER_TAB_COMMENTS Liste de commentaires relatifs aux tables et vues de l'utilisateur. USER_TAB_GRANTS_MADE Liste des Autorisations sur les objets appartenant l'utilisateur. USER_TAB_GRANTS_RECD Liste des objets sur lesquels l'utilisateur a reu une autorisation. USER_TABLES ou TABS Liste des tables cres par l'utilisateur. USER_TABLESPACES Liste des tablespaces accessibles cet utilisateur. USER_TRIGGERS Liste des triggers crs par l'utilisateur. USER_TS_QUOTAS Description des quotas de l'espace des tablespaces attribus l'utilisateur. USER_USERS Informations sur ce user. USER_VIEWS Liste des vues cres par cet utilisateur. CONSTRAINTS_DEFS Liste des dfinitions de contraintes relatives aux tables accessibles l'utilisateur.

VUES RELATIVES AUX OBJETS ACCESSIBLES A UN UTILISATEUR


ALL_CATALOG Liste de toutes les Tables, vues, synonymes et squences accessibles l'utilisateur.

OWNER TABLE_NAME TABLE_TYPE

ALL_COL_COMMENTS Liste des commentaires relatifs aux colonnes des tables et vues accessibles l'utilisateur. ALL_COL_GRANTS Liste des colonnes pour lesquelles l'utilisateur est autoris accder. ALL_CONSTRAINTS Liste des contraintes dfinies sur les tables accessibles l'utilisateur. ALL_CONS_COLUMNS Liste des colonnes intervenant dans la dfinition des contraintes dfinies sur les tables accessibles lutilisateur. ALL_DEPENDENCIES Liste des dpendances entre tables ou vues et procdures, fonctions et package, ces objets tant accessibles lutilisateur. ALL_ERRORS Liste des erreurs courantes relatives aux procdures, fonctions et packages, ces objets tant accessibles lutilisateur. ALL_IND_COLUMNS Liste des colonnes des index dfinis sur les tables accessibles lutilisateur. ALL_INDEXES Liste des index dfinis sur les tables accessibles lutilisateur. ALL_OBJECTS Liste des objets accessibles l'utilisateur.
OWNER OBJECT_NAME OBJECT_ID OBJECT_TYPE CREATEDLAST_DDL_TIME TIMESTAMP STATUS

ALL_SEQUENCES ALL_SOURCE

Liste des squences accessibles l'utilisateur. Liste des textes de procdures, fonctions et corps de package accesibles l'utilisateur.

89

90

VUES RELATIVES AUX ADMINISTRATEURS


Liste des transactions rparties ayant chou lors de la phase de prparation. DBA_2PC_NEIGHBORS Connexions vers ou partir de bases distantes pour les traitements des transactions rparties. DBA_AUDIT_EXISTS Trace de la commande AUDIT EXISTS. DBA_AUDIT_OBJECT Trace les commandes excutes sur tous les objets de la base. DBA_AUDIT_SESSION Trace les connexions et des dconnexions de tous les utilisateurs. DBA_AUDIT_STATEMENT Trace les commandes suivantes: GRANT, REVOKE, AUDIT, NOAUDIT, et ALTER SYSTEM par tous les utilisateurs. DBA_CATALOG Liste des Tables, Vues, Synonymes et squence de la base. DBA_CLUSTERS Liste de tous les clusters de la base. DBA_CLU_COLUMNS Description de la correspondance entre colonnes d'une table et colonnes d'un cluster. DBA_COL_COMMENTS Liste des commentaires relatifs aux colonnes de toutes les tables et vues de la base. DBA_COL_GRANTS Liste des Autorisations sur toutes les colonnes de la base. DBA_CONSTRAINTS Liste de toutes les contraintes dfinies sur les tables. DBA_CONS_COLUMNS Liste des colonnes intervenant dans la dfinition de toutes les contraintes de la base. DBA_DATA_FILES Description de tous les fichiers de la base. DBA_DB_LINKS Liste de tous les liens de la base. DBA_DEPENDENCIES Liste des dpendances entre tables ou vues et procdures, fonctions et packages de la base. DBA_ERRORS Liste des erreurs courantes relatives aux procdures fonctions ou corps de package de la base. DBA_EXP_FILES Description des fichiers d'exportation. DBA_EXP_OBJECTS Description des objets ayant t imports d'une faon incrmentale. DBA_2PC_PENDING

Liste des snapshots accessibles l'utilisateur. Liste des synonymes accessibles l'utilisateur. Liste des colonnes, des tables, vues ou clusters accessibles l'utilisateur. ALL_TAB_COMMENTS Liste des commentaires relatifs aux tables et vues accessibles l'utilisateur. ALL_TAB_GRANTS Liste des autorisations sur les tables ou vues pour lesquelles l'utilisateur est autoris explicitement. ALL_TAB_GRANTS_MADE Liste des autorisations attribues ou reues par lutilisateur. ALL_TAB_GRANTS_RECD Liste des objets sur lesquels l'utilisateur a reu une autorisation. ALL_TABLES Liste des tables accessibles l'utilisateur. ALL_TRIGGERES Liste des triggers accessibles un utilisateur. ALL_USERS Liste des Informations sur les utilisateurs. ALL_VIEWS Liste des vues accessibles l'utilisateur.

ALL_SNAPSHOTS ALL_SYNONYMS ALL_TAB_COLUMNS

91

92

23

Numro de version de la dernire session d'importation. DBA_EXTENTS Liste des extensions de tous les tablespaces de la base. DBA_FREE_SPACE Description des extensions libres dans tous les tablespaces de la base. DBA_IND_COLUMNS Liste des colonnes de tous les index dfinis sur toutes les tables de la base. DBA_INDEXES Liste des index de la base. DBA_OBJET_AUDIT_OPTS Liste des options d'audit pour toutes les tables et vues de la base. DBA_OBJECTS Liste de tous les objets de la base. DBA_PROFILES Liste de s profils attribus aux utilisateurs. DBA_ROLE_GRANTS Liste des rles attribus aux utilisateurs, et d'autres rles. DBA_ROLES Liste de tous les rles dans la base. DBA_ROLLBACK_SEGS Liste des segments d'annulation de la base DBA_SEGMENTS Description de tous les paramtre de stockage de tous les segments de la base. DBA_SEQUENCES Liste de toutes les squences de la base. DBA_SOURCE Liste des textes de toutes les procdures, packages, fonctions et corps de package DBA_SNAPSHOTS Liste de tous les snapshots de la base. DBA_SNAPSHOTS_LOGS Liste de tous les snapshots logs dans la base. DBA_SYNONYMS Liste de tous les synonymes de la base. DBA_SYS_GRANTS Liste des privilges systmes attribus aux utilisateurs et aux rles. DBA_TAB_COLUMNS Liste des colonnes des tables, vues ou cluster DBA_TAB_COMMENTS Liste des commentaires relatif aux tables et vues DBA_TAB_GRANTS Liste d'autorisations sur tous les objets de la base. DBA_TABLES Liste des tables de la base. DBA_TABLESPACES Liste des tablespaces de a base. DBA_TRIGGERS Liste des triggers de la base. DBA_TS_QUOTAS Description des quotas de l'espace des tablespaces DBA_USERS Informations sur tous les utilisateurs. DBA_VIEWS Liste des vues de la base.

DBA_EXP_VERSION

VUES DYNAMIQUES

Liste des objets verrouills actuellement. Description de lactivit des processus darrire plan. V$DATABASE Description de la base de donnes partir du fichier de contrle. V$DATAFILE Description de fichiers de donnes partir du fichier de contrle. V$DISPATCHERS Description de l'activit des processus dispatchers. V$FILESTAT Statistiques sur le oprations de lecture/criture sur un fichier. V$LOGFILE Description des fichiers de reprise partir du fichier de contrle. V$PARAMETER Description des valeurs actuelles des paramtres dinitialisation. V$PROCESS Description des processus actifs. V$SESSION Description des sessions courantes. V$SGA Description sommaire de la SGA. V$GASTAT Description dtaille de la SGA. V$SHARED_SERVERS Description des serveurs partags. V$TRANSACTION Description des transactions en cours.

V$ACCESS V$BGPROCESS

93

94

Scripts administratifs
Information catalogue et dictionnaire de donnes
cat*.sql exemple : catrman.sql pour l'utilitaire Recovery Manager

Exemples de packages fournis par Oracle


DBMS_LOB
oprations sur type BLOB et CLOB

DBMS_SESSION
gnre commandes SQL tq
ALTER SESSION o u SET ROLE

Spcification des packages de la base


dbms*.sql

DBMS_UTILITY
routines utilitaires

Code compress d'un package base de donnes


prvt*.plb

DBMS_SPACE
informations relatives la disponibilit de l'espace des segments.

Vues et tables pour les utilitaires de la base


utl*.sql exemple : utlsampl.sql pour tables de dmonstration 95

DBMS_ROWID
fournit les informations sur le ROWID

DBMS_SHARED_POOL
conserve et retire des objets dans la SHARED_POOL 96

24

Requtes sur les objets stocks


Interroger la vue du dictionnaire DBA_OBJECTS
colonnes OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS (valid ou invalid) exemple :
select object_name, object_type, status from dba_objects where object_name like 'DBMS_%';

ou commande DESCRIBE
exemples :
describe dbms_session describe dbms_session.set_role

97

25

Partie 3

Fichiers de contrle

Structure physique de stockage

101

102

Objectifs
Explication sur les utilisations du fichier de contrle Examen du contenu du fichier de contrle Rcupration de l'information sur le fichier de contrle Multiplexage du fichier de contrle

Utilisation du fichier de contrle


Fichier binaire Sert pour la base de donnes
lors du dmarrage normal
A chaque fois qu'une instance monte une base de donnes Renseigne l'emplacement des fichiers de donnes et des fichiers de reprise

lors du dmarrage aprs panne


Contient les informations ncessaires la remise en tat de la base de donnes

pour le bon fonctionnement


continuellement mis jour doit tre disponible quand une base de donnes est monte ou ouverte

Si un fichier de contrle devient indisponible => la base ne fonctionne pas correctement


103 104

26

Contenu du fichier de contrle


Le nom et l'identification de la base de donnes le nom et l'emplacement des fichiers
de donnes de reprise

Dtails du fichier de contrle


Paramtres influenant sa taille :
MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES

le nom des tablespaces La date et l'heure de la cration de la base de donnes le numro de squence du fichier de reprise courant informations sur le dernier point de synchronisation historique du journal

Requtes sur le fichier de contrle


V$CONTROLFILE NAME V$PARAMETER NAME VALUE V$CONTROLFILE_RECORD_SECTION (V8)
TYPE RECORDS_SIZE RECORDS_TOTAL RECORDS_USED

105

106

Multiplexage du fichier de contrle


Vu son importance pour une base Oracle, il faut prvenir des dfaillances disques ou suppressions malheureuses Oracle gre alors plusieurs copies du mme fichier
par exemple, sur des disques diffrents

Fichiers de reprise

paramtre CONTROL_FILES dans le fichier d'initialisation


dans initSID.ora
control_files = (d:\data\ctl1SID.ora, e:\data\ctl2SID.ora)

ou redo log files ou journaux

Permet d'viter un unique point

d'chec

107

108

27

Objectifs
Explication sur l'utilisation des fichiers de reprise (journaux) Rcupration de l'information sur le fichier de reprise et sur l'archivage Contrle des basculements et des points de synchronisation des fichiers de reprise Multiplexage et maintenance de fichiers de reprise

Utilisation des fichiers de reprise (rappel)


Ide de base
enregistrer toutes les modifications apportes aux donnes pour minimiser les problmes lis aux pannes

Le serveur Oracle met jour les fichiers de reprise


buffer de reprise processus LGWR

Ne sont utiliss qu'en cas d'chec d'une instance pour restaurer des

donnes valides non crites dans les fichiers de donnes

109

110

Groupes et membres de fichiers de reprise


Groupes de fichiers de reprise :
ensemble de copies identiques de fichiers de reprise online

Initialisation des fichiers de reprise


Gnrs lors de la cration de la base de donnes Paramtres
MAXLOGFILES : nombre max de groupe dans une base de donnes (<255) MAXLOGMEMBERS : nombre max de membre par groupe LOG_FILES (dans init<sid>.ora) : nombre max de fichiers de reprise ouvrir :
doit tre infrieur
MAXLOGFILES * MAXLOGMEMBERS

Un membre est un lment d'un groupe, i.e. un fichier de reprise LGWR crit simultanment sur chaque membre du groupe
tous les membres d'un groupe possdent un numro de squence log
sert d'identifiant le numro courant est stock dans le fichier de contrle

Les membres d'un groupe sur des disques diffrents au moins 2 groupes
111

112

28

Rappel
Serveur Oracle enregistre squentiellement toutes les modifications dans le buffer de reprise circulaire de la SGA Transfert du buffer vers le groupe courant de reprise par LGWR
quand un commit est excut quand le buffer est rempli au 1/3 lors d'un dlai d'attente du LGWR (3s) avant que DBWR n'crive les blocs modifis du buffer cache de donnes dans les fichiers de donnes

Point de synchronisation
Un point de synchronisation se produit:
quand LGWR change de groupe courant quand une instance s'arrte (N,T ou I) avec les paramtres d'initialisation
LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT

commande de l'administrateur
ALTER SYSTEM SWITCH LOGFILE ALTER SYSTEM CHECKPOINT GLOBAL
plus rapide, n'implique pas de switch logfile

Sauvegarde d'un tablespace activ ou quand un tablespace est dsactiv

Actions faites :
tous les blocs modifis du cache de donnes qui sont aussi traits par le cache de reprise sont crits par DBWR le processus en arrire plan CKPT met jour les fichiers de contrle pour signaler 114 son aboutissement

LGWR crit squentiellement dans les fichiers de reprise


organisation circulaire des groupes quand un groupe est plein, on passe au

suivant

113

Archivage
Dpend de la politique locale vis vis des donnes, i.e.
Une perte des donnes peut-elle tre envisage ?
Oui ? Non ?

Archivage des fichiers de reprise


Assure une cohrence parfaite des donnes en cas de panne Processus en arrire plan ARCH
dclench chaque basculement

Si oui, quelle est la dure maximale tolrable ?


1 jour ? 1 semaine ?

Archivage
soit manuel
c'est l'administrateur de dclencher ou pas un archivage des fichiers de reprise
ALTER SYSTEM ARCHIVE LOG pas conseill par Oracle

Dcision importante de l'administrateur


mode ARCHIVELOG
fichiers de reprise sont archivs permet de garder toutes les modifications de la base

soit automatique
paramtre de l'instance LOG_ARCHIVE_START=true dans init.ora, voir aussi paramtres :
LOG_ARCHIVE_DEST LOG_ARCHIVE_FORMAT

mode NOARCHIVELOG
fichiers de reprise sont crass (quand une boucle est faite) On accepte de perdre en cas de panne des modifications

Distinction entre les fichiers de reprise online et offline

possibilit de les mutilplexer 115 116

29

Requtes sur les fichiers de reprise


Sur l'archivage :
Sous SQLPlus :
ARCHIVE LOG LIST

Interroger les vues


V$DATABASE
name, log_mode

V$INSTANCE
archiver

V$LOG_HISTORY, V$ARCHIVED_LOG, V$ARCHIVE_DEST

sur les groupes


V$THREAD
groups, current_group#, sequence#

Sur les membres


V$LOG
group#, members, status, sequence#, bytes

117

118

Modification de fichiers de reprise


Ajout de groupes
ALTER DATABASE ADD LOGFILE ('D:\data\DISK3\log3a.rdo', 'D:\data\DISK4\log3b.rdo') size 150 K;

Suppression
Suppression de groupes de fichiers de reprise
ALTER DATABASE DROP LOGFILE GROUP 3

Ajout de membres
ALTER DATABASE ADD LOGFILE MEMBER 'D:\data\DISK3\log1b.rdo' TO GROUP 1, 'D:\data\DISK3\log2b.rdo' TO GROUP 2;

Suppression de membres fichiers de reprise


ALTER DATABASE DROP LOGFILE MEMBER 'D:\data\DISK3\log2b.rdo' Le groupe doit tre inactif un autre membre du groupe doit exister Si mode ARCHIVELOG et que le groupe du membre n'a pas t archiv, opration non permise.

Dplacement des fichiers de reprise


1. Arrter la base de donnes 2. Copier les fichiers de reprise au nouvel emplacement 3. Monter la base de donnes 4. Excuter un ordre ALTER DATABASE [db] RENAME FILE ['file' [, 'file'] TO ['file' [, 'file'] 5. Ouvrir la base de donnes (6. supprimer lancien fichier)

Suppression des contenus des fichiers


ALTER DATABASE CLEAR LOGFILE 'D:\data\DISK3\log2a.rdo'

119

120

30

Objectifs Partie 4
Faire le lien entre structure physique et logique
via les fichiers de donnes

Comprendre les moyens logiques de structuration Structure logique de stockage


Segment

Etude de deux segments particuliers


Segment rollback Segment temporaires
121 122

Objectifs Fichiers de donnes et tablespaces


Description de la structure logique de la base de donnes Cration des tablespaces Changement de la taille des tablespaces par diffrentes mthodes Changement du statut et stockage de l'initialisation des tablespaces Dplacement des tablespaces Prparation des tablespaces requis

123

124

31

Gnralits
Base de donnes Oracle
structure physique
fichier de contrle fichiers de reprise fichiers de donnes

Utilisation du tablespace
Contrle de l'allocation d'espace et affectation de quotas aux utilisateurs Contrle de disponibilit des donnes par la mise online ou offline des tablespaces

structure logique
tablespace segment extent bloc

Distribution du stockage des donnes


sur plusieurs dispositifs
pour amliorer les E/S pour rduire la contention sur un seul disque

=> Ncessaire de comprendre ces 2 niveaux de reprsentation

Sous OEM, Storage Manager

Excution de sauvegarde partielle Conservations de volumes importants de donnes statiques sur des dispositifs en lecture seule.
126

125

Tablespaces
Appartient une seule base de donnes Chaque tablespace comprend un ou plusieurs fichiers SE Les tablespaces peuvent tre mis on/off line lors de l'excution de la base de donnes
except le tablespace SYSTEM et un tablespace avec un rollback segment actif

Fichiers de donnes
Un ou plusieurs fichiers de donnes sont associs un tablespace
un fichier de donnes ne peut appartenir qu' un tablespace un serveur Oracle cre toujours un peu plus d'espace disque que ce qui est spcifi

Informations quantitatives :
nombre maximum de fichier par tablespace = 1023 nombre maximum de tablespace par base de donnes : 64 000

Possibilit de basculer entre le statut Read/Write et le statut Read seul.

127

128

32

Lien segments/extents/blocs
Segments
Espace allou un type spcifique de structure logique de stockage dans un tablespace
segments de table, segments d'index, segment temporaire, rollback segment

Structure logique

Extents
Ensemble de blocs contigus. Chaque type de segment est compos d'un ou plusieurs extents

Blocs de donnes
contient un ou plusieurs blocs de fichier physique allou partir d'un fichier de donnes existant plus petite unit d'E/S sa taille vaut DB_BLOC_SIZE 129 130

Tablespace SYSTEM et non-SYSTEM


Tablespace SYSTEM contient:
informations relatives au dictionnaire de donnes Un rollback segment SYSTEM

Tablespace nonSYSTEM contient:


les rollback segments les segments temporaires les donnes applicatives les indexes applicatifs

S'il en existe un seul, c'est lui ! Ne devrait pas contenir de donnes utilisateurs Depuis 10 g, tablespace SYSAUX est ncessaire 131

Introduisent plus de souplesse dans l'administration

132

33

Syntaxe
CREATE TABLESPACE nom DATAFILE file SIZE integer [K|M] [autoextend_clause] [, file [autoextend_clause] [MINIMUM EXTENT integer [K|M]] [DEFAULT storage_clause] [PERMANENT | TEMPORARY] [ONLINE | OFFLINE] storage_clause ::= STORAGE ( [INITIAL integer [K|M]] [NEXT integer [K|M]] [MINEXTENTS integer] [MAXEXTENTS [integer | UNLIMITED] [PCTINCREASE integer] ) autoextend_clause ::= AUTOEXTEND [OFF | ON [NEXT integer [K|M] ] [MAXSIZE [UNLIMITED | integer [K|M]]]]

Paramtres de stockage
Paramtres qui influent sur l'allocation d'espace de segment
INITIAL : taille du 1er extent (min 2*DB_BLOC_SIZE, par dfaut 5 blocs) NEXT : taille du suivant (min 1 bloc, par dfaut 5 blocs) MINEXTENTS : nombre d'extents allous lors de la cration du segment (min 1). MAXEXTENTS : nombre maximum d'extent d'un segment (min 1, par dfaut dpend de la taille du bloc, i.e. DB_BLOC_SIZE, max =UNLIMITED) PCTINCREASE : % de croissance de la taille de l'extent calcule par :
Taille du nime extent = NEXT*(1+PCTINCREASE/100)^(n-2)

minimum 0 valeur par dfaut 50 valeur calcule arrondie (multiple de 5 blocs).

133

134

Tablespaces temporaires
Utilis pour les oprations de tri
par les segments de tri (= segments temporaires)

Augmenter la capacit de stockage


Deux faons de procder :
Ajouter des fichiers de donnes au tablespace
ALTER TABLESPACE app_data ADD DATAFILE 'd:\data\DISK5\app03.dbf' SIZE 200M;

Ne peut pas contenir d'objets permanents Exemple :


CREATE tablespace tri DATAFILE '/DISK2/sortO1' SIZE 50M MINIMUM EXTENT 1M DEFAULT STORAGE ( INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) TEMPORARY;

Modifier la taille des fichiers de donnes existants


Automatiquement avec la clause AUTOEXTEND
ALTER TABLESPACE app_data ADD DATAFILE 'd:\data\DISK6\app04.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

Manuellement avec la commande ALTER DATABASE


ALTER DATABASE DATAFILE 'd:\data\DISK5\app02.dbf' RESIZE 2M;

135

136

34

Statut OFFLINE
Les donnes d'un tablespace offline ne sont plus accessibles
L'administrateur peut sauvegarder cette partie des donnes sans arrter le fonctionnement du reste de la base

Dplacement de fichiers de donnes


1) BD ouverte
Le tablespace concern doit tre offline Les fichiers de donnes cibles doivent exister (commandes SE) Avec ALTER TABLESPACE :
ALTER TABLESPACE app_data RENAME DATAFILE 'd:\data\ DISK4\app01.dbf' TO 'd:\data\DISK5\app01.dbf'

Ne peuvent jamais tre mis offline


le tablespace SYSTEM tout tablespace avec des rollbacks segments actifs

2) BD ferme Arrter puis monter la base de donnes


Utiliser l'ordre ALTER DATABASE
ALTER DATABASE RENAME FILE 'd:\data\DISK1\system01.dbf' TO 'd:\data\ DISK2\system01.dbf' ;

Exemple :
ALTER TABLESPACE app_data OFFLINE;

137

138

Lecture seule
Empche toute opration d'criture sur les fichiers de donnes Permet de faciliter l'administration d'un sous-ensemble stable des donnes de l'application
donnes peuvent rsider sur CDROM ou WORM Exemple :
ALTER TABLESPACE app_data READ ONLY

Suppression d'un tablespace


Syntaxe :
DROP TABLESPACE tablespace [INCLUDING CONTENTS [CASCADE CONSTRAINTS]] ; INCLUDING CONTENTS : supprime tous les segments du tablespace CASCADE CONSTRAINTS : supprime les contraintes d'intgrit rfrentielle des tables dfinies dans un autre tablespace qui rfrencent une table du tablespace supprimer

Concept un peu confus dOracle


139

Un tablespace contenant encore des donnes ne peut tre supprim sans l'option INCLUDING CONTENTS Ne supprime que les pointeurs de fichiers du fichier de contrle => les fichiers de donnes existent toujours
140

35

Informations sur les tablespaces


Requtes sur la vue

Informations (2)
Informations sur les fichiers de donnes et les tablespaces partir du

DBA_TABLESPACES

TABLESPACE_NAME NEXT_EXTENT MAX_EXTENTS PCT_INCREASE MIN_EXTLEN STATUS CONTENTS

fichier de contrle
Jointure entre V$DATAFILE et V$TABLESPACE sur l'attribut TS#

Informations sur les fichiers de donnes Requtes sur la vue DBA_DATA_FILES


FILE_NAME TABLESPACE_NAME BYTES AUTOEXTENSIBLE MAXBYTES INCREMENT_BY

A retenir :
utiliser de nombreux tablespaces assigner des quotas aux utilisateurs

141

142

Quelques conseils
Sparez les donnes utilisateurs des donnes du dictionnaire Sparez les donnes utilisateurs suivant les applications qui les utilisent => notion de charge Afin de diminuer la contention E/S, placer les fichiers des tablespaces diffrents sur des disques distincts Sparer les segments rollback des segments de donnes

Notions sur les segments

143

144

36

Types de segments
Table (ou table non-clusterise ou table non-partitionne)
ressource la plus courante pour stocker les donnes donnes stockes sans ordre particulier on a peu de contrle sur l'emplacement des lignes dans les blocs d'une table. Appartient un seul tablespace

Types de segments (2)


Cluster
les lignes d'un cluster sont stockes suivant une valeur cl de colonne un cluster contient une ou plusieurs tables le cluster et les tables qui y participent appartiennent au mme segment Intrts : acclre les jointures

Partition de table (V8 + option Partionning)


Partition de la table suivant des cls stockage des partitions dans plusieurs tablespaces une partition est un segment Intrts : objets utiliss souvent et de faon simultane 145

146

Cluster (suite)

Cluster (fin)

147

148

37

Types de segments (3)


Index
Toutes les entres d'un index sont stockes dans un segment d'index Si une table 3 index, 3 segments d'index sont utiliss Intrts : acclre les recherches, les jointures

Types de segments (4)


Rollback segment
utilis par une transaction
avant de changer les blocs de donnes ou d'index, l'ancienne valeur est stocke dans le rollback segment

10g : possibilit de dlguer Oracle leur gestion

Index-Organized table
les donnes sont stockes dans l'index bas sur une valeur cl

Segment temporaire
pour grer lopration de tri omniprsente en SQL permet dimplanter un algorithme de tri out of core

Partition d'index
mme ide que Partition de table

Segment LOB
pour stocker des colonnes d'objets volumineux (LOB), e.g. documents textes, images, vidos
149 150

Types de segments (5)


Index LOB
implicitement cr lors de la cration d'un segment LOB Pour acclrer les requtes sur ces colonnes

Priorit des clauses de stockage


Par ordre de priorit :
Segment Tablespace Valeur par dfaut Oracle

Table imbrique (V8 + Option Objects)


table en non 1ere forme normal permet de faire de l'orient-objet

En cas de modifications des clauses de stockage


pas de changement sur ce qui existe

Segment de dmarrage (ou segment en mmoire cache)


cr par le script sql.bsd ne ncessite pas d'attention de la part de l'administrateur !

Certaines clauses ne sont accessibles qu'au niveau des Segments

151

152

38

Allocation et restitution d'extents


Allou quand le segment est :
cr ou tendu ou modifi

Fusion d'espace libre


Libration d'espace contigu lorsque des extents sont librs
ALTER TABLESPACE data01 COALESCE;
SELECT tablespace_name, total_extents, percent_extents_coalesced FROM dba_free_space_coalesced WHERE percent_extents_coalesced <> 100;

Restitu quand le segment est :


supprim ou modifi ou vid ou

automatiquement redimensionn (rollback


segment uniquement)

Manuellement :
Avec l'ordre
ALTER TABLE table ALLOCATE EXTENT;

ou Utiliser Oracle Storage Manager


tools->Coalesce Free Extents

Avec les outils d'import/d'export

Sur une table


ALTER TABLE table DEALLOCATE UNUSED

153

154

Blocs de base de donnes


Rappels :
plus petite unit d'E/S consiste en 1 ou plusieurs blocs SE taille fix par DB_BLOCK_SIZE : donn la cration de la base de donnes

Un bloc contient :
entte de bloc :@ du bloc de donnes, rpertoire de la table et de la ligne et entres transactionnelles. Croit de faon descendante. espace des donnes : les donnes d'une ligne sont insres de manire ascendante. espace libre : se trouve au milieu !

155

156

39

Paramtres d'un bloc


Pour les accs concurrents :
INITRANS
par dfaut, vaut 1 si segment de donnes, 2 si segments d'index

MAXTRANS
par dfaut, vaut 255

spcifie le nombre min/max d'entres de transaction cres dans un bloc (de donnes ou d'index)

Pour la gestion de l'espace libre :


PCTFREE : %tage d'espace rserv la croissance due aux mises jour
par dfaut, vaut 10%

PCTUSED : %tage d'espace au del duquel le bloc n'est pas considr comme libre
par dfaut, vaut 40%

157

158

Gestion espace libre


Pour un segment donn, Oracle gre une liste de blocs libres
PCTFREE spcifie partir de quand un bloc libre est considr comme plein PCTUSED spcifie partir de quand un bloc plein est considr comme libre

159

160

40

PCTUSED

161

162

Les vues du dictionnaire

Information sur le Segment


Interroger la vue
DBA_SEGMENTS

DBA_TABLESPACES Tablespaces * DBA_SEGMENTS Segments * DBA_EXTENTS Extents utiliss * DBA_DATA_FILES Fichiers de donnes * DBA_FREE_SPACE Extents libres

information gnrale :
owner, segment_name segment_type, tablespace_name

taille :
extents, blocks

initialisation du stockage :
initial_extent, next _extent min_extent, max_extent pct_increase

Exemple :
SELECT segment_name, tablespace_name, extents, blocks FROM DBA_SEGMENTS WHERE owner = 'SCOTT'

163

164

41

Information sur l'extent utilis


Interroger la vue
DBA_EXTENTS
identification :
owner segment_name extent_id

Information sur l'extent libre


Sur la vue
DBA_FREE_SPACE
emplacements et taille
tablespace_name relative_fno file_id block_id blocks

Emplacement et taille
tablespace_name relative_fno file_id block_id blocks

Exemple :
SELECT tablespace_name, count(*), max (blocks), sum(blocks) FROM dba_free_space GROUP BY tablespace_name;

Exemple :
SELECT extent_id, file_id, block_id, blocks FROM DBA_EXTENTS WHERE owner = 'SCOTT' AND segment_name = 'EMP'

165

166

Tendance la fragmentation
Tablespace
SYSTEM TOOLS DATA_n INDEX_n RBS_n TEMP_n Dico Appli Seg. Donnes Seg. index Rollback seg. Seg. Tmp Nulle Trs basse Basse Basse Elev Trs lev

Gestion des rollbacks

Influence sur la dure de vie ...

167

168

42

Objectifs
Maintenir des informations pour tre capable dannuler des mises jour de donnes Deux types de gestion :
au niveau dun tablespace spcifique
Automatic undo management : UNDO TABLESPACE Introduit dans la 10g Fortement conseill par Oracle

Role des rollback


Rollback segment (ou segment d'annulation)
utilis pour sauvegarder l'ancienne valeur lors de modifications apportes des donnes Stocke l'information sur
le bloc (identifiant fichier ou bloc) les donnes

au niveau des segments


rollback segments vite de grer plusieurs rollbacks, leur taille, leur emplacement Obligatoire sur version antrieure 10g 169

L'entte du rollback segment contient une table des transactions donnant les transactions courantes utilisant le segment

Transaction
utilise un seul rollback segment y sont stocks tous les enregistrements rollback de la transaction l inverse est faux

Intrts (2)
Lecture cohrente
les autres transactions voient l'image avant des donnes grce au rollback segment

Gestion au niveau dun tablespace


Paramtre dinitialisation UNDO_MANAGEMENT mettre en AUTO Les informations rollback sont dsignes par undo data Tout est gr par Oracle Deux options
Nommage explicite dun tablespace spcifique
clause UNDO TABLESPACE lors de la cration de base de donnes

Rollback dune transaction


la valeur avant modification est rcupre

Restauration de transactions
En cas de panne, relecture du rollback segment dans un fichier de donnes

NB :
Permet de grer la cohrence des donnes lors des oprations de MAJ A ne pas confondre avec les fichiers de reprise

Cration implicite dun UNDO TABLESPACE nomm SYS_UNDOTBS

171

43

Gestion au niveau segment 1/4


2 types de rollback segment :
SYSTEM
dans le tablespace du mme nom utilis pour les modifications des objets de ce tablespace

Cration
Ordre :

2/4

CREATE ROLLBACK SEGMENT Exemple :


CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXETENTS 1000);

Non-SYSTEM
cr par l'administrateur deux cas :
Private utilisation normale Public serveur // d'Oracle

Allocation d'un rollback segment pour une transaction donne :


Oracle choisit le rbs "le plus" disponible et l'affecte la transaction. Ou l'utilisateur le spcifie :
SET TRANSACTION USE ROLLBACK SEGMENT rbs012;

cr OFFLINE par dfaut PCTINCREASE ne peut pas tre spcifi

Sous OEM, utiliser


Oracle Storage Manager

173

174

Gestion
Modification
ALTER ROLLBACK SEGMENT Mise ONLINE

3/4

Informations
Interroger la vue
DBA_ROLLBACK_SEGS
identification
SEGMENT_ID SEGMENT_NAME

4/4

ALTER ROLLBACK SEGMENT name ONLINE; ou ajouter dans init<sid>.ora :


ROLLBACK_SEGMENTS = (rbs01)

emplacement, type, status


TABLESPACE_NAME OWNER STATUS

Libration d'espace
ALTER ROLLBACK SEGMENT name SHRINK TO 2M;

Mise OFFLINE
ALTER ROLLBACK SEGMENT name OFFLINE

Statistiques
V$ROLLNAME V$ROLLSTAT

Activits courantes Suppression


DROP ROLLBACK SEGMENT name; V$SESSION V$TRANSACTION

175

176

44

Intrts Gestion des segments temporaires


Outil technique permettant dimplmenter une opration des SGBD : le TRI Ncessaire pour tri out of core Quantit de mmoire utilise par un processus pour trier
paramtre SORT_AREA_SIZE
Alloue en PGA pour chaque session !!! Alloue en SGA si architecture MTS

Si le volume de tri dpasse


plusieurs oprations de tri sont ncessaires rsultats intermdiaires stocks sur disque

Segments temporaires crs dans le tablespace temporaire affect l'utilisateur pour trier
177 178

Types de segments temporaires


Relatif au type de leur tablespace
Temporaire Permanent

Rgles s'appliquant aux segments temporaires


Initialiser plusieurs tablespaces TEMPORARY selon les besoins de tri Spcification du stockage par dfaut:
PCTINCREASE = 0
assure que tous les extents ont la mme taille

Eviter les segments temporaires dans un tablespace permanent


fragmentation

Segment temporaire dans un tablespace temporaire :


appel aussi segment de tri un seul segment de tri par tablespace et par instance cr lorsque le premier tri se produit libr l'arrt de l'instance

INITIAL = NEXT = SORT_AREA_SIZE*entier + DB_BLOCK_SIZE


puisque un processus crit sur disque les donnes de la zone de tri de la SGA (dont la taille vaut SORT_AREA_SIZE), on prvoit un multiple de cette taille.

179

180

45

Informations sur les segments temporaires


Interroger les vues
V$SORT_SEGMENT : Statistiques sur le segment de tri V$SESSION et V$SORT_USAGE : activit du segment temporaire V$SORT_USAGE : tri actif en cours DBA_SEGMENTS : donne le type du segment temporaire

Exemple :
select s.username, u."USER", u.tablespace, u.contents, u.extents, u.blocks from V$SESSION s, V$SORT_USAGE v where s.saddr = u.session_addr;

181

46

Un peu de recul Partie 5


Quel sens donner lintgrit des donnes ? Plusieurs significations
Cohrence de la structure physique et adquation avec la technologie matrielle Cohrence de la structure logique Cohrence des donnes

Intgrit des donnes

185

186

Intgrit des donnes


Trois niveaux de codage :
le code applicatif les triggers les contraintes d'intgrit
PRIMARY KEY, UNIQUE, FOREIGN KEY CHECK, NOT NULL

Contraintes diffres
Lors de mise jour de la base de donnes (ordre du LMD), l'intgrit des donnes est vrifie
soit chaque ordre constituant la transaction
Option INITIALLY IMMEDIATE (par dfaut)

Etat d'une contrainte


V7
DISABLE ou ENABLE

soit en fin de transaction


option INITIALLY DEFERRED Ncessite d'avoir spcifi que la vrification des contraintes serait dfre (alter table )

V8
DISABLE ENABLE NOVALIDATE
les donnes existantes peuvent ne pas tre cohrentes, les nouvelles le sont

Exemples :
au niveau de la session :
ALTER SESSION SET CONSTRAINTS = IMMEDIATE;

ENABLE VALIDATE
toutes les donnes sont cohrentes

au niveau de la transaction :
SET CONSTRAINTS pk1, fk2 DEFERRED;

Exemple :
ALTER TABLE emp ENABLE NOVALIDATE pk1;

187

Cf syntaxe de la clause CONSTRAINTs

188

47

Triggers
Permet de dfinir des contraintes lors d'insertion/suppression/modification de lignes dans une table Activation
ALTER TABLE scott ENABLE ALL TRIGGERS;

Informations relatives
Pour les contraintes, interroger les vues
DBA_CONSTRAINTS DBA_CONS_COLUMNS

Pour les triggers, interroger les vues


DBA_TRIGGERS DBA_TRIGGERS_COLS DBA_OBJECTS

Dsactivation
ALTER TRIGGER scott.tg1 DISABLE;

Suppression
DROP TRIGGER scott.tg1;

189

190

48

Quest-ce que la gestion de la scurit ? Partie 6


Scurit = protection des donnes
Piratage Accs non autoriss Manipulations non autorises

Gestion de la scurit sous Oracle Gestion de la scurit


Plusieurs niveaux de scurit
Compte utilisateurs Accs aux objets de la base de donnes Scurit au niveau systme

Possibilit daudit pour chaque niveau de scurit


193 194

Niveaux de scurit
Comptes utilisateurs
connexion (directe ou indirecte) une base de donnes protection par des mots de passe

Quelques notions de base


Privilges
SYSTEME OBJET

Rles
A mi-chemin entre
les utilisateurs : Ordre de cration de rle similaire les privilges : Assure l'affectation de plusieurs privilges

Rles et privilges
de niveau objets
gestion des accs aux objets (e.g., select sur la table EMP de SCOTT)

de niveau systme
gestion des commandes de niveau systme (e.g., create table, alter index, create database )

Gestion simplifie des privilges Disponibilit slective des privilges

Profils Ensemble nomm de limites de ressources


e.g. nombre de connexions simultanes par utilisateur

195

196

49

Implmentation de la scurit Niveau systme dexploitation


Autorisation daccs au serveur Protection des fichiers Oracle
fichiers de donnes, fichiers de reprise, fichiers de contrle, dump, sauvegardes,

Gestion des utilisateurs

Protection des copies, rplicats, ...

Niveau Oracle
Utilisateurs Rles Profiles Affectation directe des privilges

197

198

Schma de base de donnes


Schma
peut tre vu comme un compte Oracle collection
de tables de vues d'index (cf Oracle Schema Manager)

Liste de contrle pour la cration d'utilisateur


Choisir un nom d'utilisateur et un mcanisme d'authentification Identifier les tablepaces dans lesquels l'utilisateur va stocker ses objets
typiquement 3 tablespaces pour les donnes, les tris et les index Revient affecter un tablespace par dfaut et un tablespace temporaire

Utilisateur de BD = Schma
souvent utilis de faon indiffrente

Dcider des quotas pour chaque tablespace Crer lutilisateur Accorder des privilges et des rles l'utilisateur

199

200

50

Exemples
Sous sqlplus :
Authentification par Oracle
CREATE USER Paul IDENTIFIED BY edze!2z DEFAULT TABLESPACE data01 TEMPORARY TABLESPACE temp QUOTA 1M ON data01;

Modification
Avec ordre ALTER USER Exemples :
Changement du compte
ALTER USER Paul IDENTIFIED BY edze!2z PASSWORD EXPIRE; <- ligne optionnelle

Authentification par le SE
CREATE USER Paul IDENTIFIED EXTERNALLY DEFAULT TABLESPACE data01 TEMPORARY TABLESPACE temp QUOTA 1M ON data01; Conseil Oracle : A utiliser avec modration !

Suppression de quota
ALTER USER Paul QUOTA 0 ON data01;
les donnes existantes restent mais plus possible d'en insrer d'autres

quota illimit
ALTER USER Paul QUOTA UNLIMITED ON data01;

Avec OEM
Oracle Security Manager

Nom rel
ALTER USER Paul GLOBALY AS "Jean Paul Lponge";

201

202

Suppression
Syntaxe :
DROP USER utilisateur [CASCADE]

Informations sur les utilisateurs


Utiliser les vues
DBA_USERS DBA_TS_QUOTAS

Option CASCADE
supprime tous les objets du schma puis supprime l'utilisateur

Exemples :
select username,default_tablespace, temporary_tablespace from dba_users where username = 'PAUL'; select * from dba_ts_quotas where username= 'PAUL';

Exemple :
DROP USER Paul CASCADE;

Remarque :
impossible de supprimer un utilisateur connect

203

204

51

Profils Gestion des profils


Ensembles nomms de limites de ressource
e.g. nombre de connexions simultanes par utilisateur

Affects aux utilisateurs


lors de leur cration par modification

Peuvent tre activs/dsactivs Peuvent driver du profil DEFAULT

205

206

Gestion des ressources l'aide des profils


Etapes suivre :
crer les profils
ordre CREATE PROFIL

Modification/suppression
Modification
ordre ALTER PROFILE Exemple :
alter profile new_prof limit sessions_per_user 3 idle_time 2;

les affecter l'utilisateur


ordre CREATE/ALTER USER

activer les limites de ressources


soit ALTER SYSTEM soit fichier de paramtres d'initialisation

Suppression
ordre DROP PROFILE
option CASCADE : assure que tous les utilisateurs ayant ce profil seront mis jour!

Exemple
create profile new_prof limit sessions_per_user 2 idle_time 1; alter user Paul profile new_prof; alter system set RESOURCE_LIMIT=true; 207

le profile DEFAULT ne peut tre supprim Exemple :


drop profile new_prof cascade;

Entre en vigueur pour les sessions suivantes

208

52

Informations sur les profils


Utiliser les vues
DBA_USERS DBA_PROFILES

Gestion des privilges

Exemples :
select distinct profile from dba_profiles; select * from dba_profiles where profile='DEFAULT';

209

210

Privilges
Deux types de Privilges
SYSTEME
permet aux utilisateurs d'effectuer des oprations dans la base de donnes Environ 80 privilges systmes

Attribution de privilges systmes


Avec l'option
GRANT TO WITH ADMIN OPTION;

OBJET
permet aux utilisateurs d'accder /manipuler un objet particulier

Pour accorder un privilge systme, il faut possder le privilge WITH ADMIN OPTION Avec OEM, utiliser Oracle Security

Manager
Ordre GRANT permet d'ajouter un privilge un utilisateur
Exemple :
GRANT create index, create table TO Paul;

Privilges SYSDBA et SYSOPER


SYSDBA = privilges de SYSOPER WITH ADMIN OPTION + CREATE DATABASE ...

Ordre REVOKE pour le supprimer


Exemple :
REVOKE create table FROM Paul;

211

212

53

Privilges Objets
Les principaux privilges Objet :
ALTER, DELETE, INDEX, REFERENCES (pour les tables), SELECT, UPDATE, EXECUTE (pour les procdures)

Informations sur les privilges


Interroger les vues
pour les privilges SYSTEM :
DBA_SYS_PRIVS SESSION_PRIVS

Exemples :
GRANT execute ON dbms_pipe TO public; GRANT select ON emp TO Bob WITH GRANT OPTION; REVOKE execute ON dbms_pipe FROM scott;

pour les privilges OBJET :


DBA_TAB_PRIVS DBA_COL_PRIVS

Exemple :
select * from DBA_SYS_PRIVS; select * from SESSION_PRIVS; select * from DBA_TAB_PRIVS where grantee='BOB';

Attention la formulation :
pour donner le privilge "with admin option", il faut faire :
GRANT WITH GRANT OPTION

213

214

Rles Gestion des rles


A mi-chemin entre
les utilisateurs
Ordre de cration de rle similaire

les privilges
Assure l'affectation de plusieurs privilges

Gestion simplifie des privilges Disponibilit slective des privilges

215

216

54

Cration/Affectation de Rles
Cration
Ordre CREATE ROLE Exemples :
CREATE ROLE Vente; CREATE ROLE Vente IDENTIFIED BY bonus; CREATE ROLE Vente IDENTIFIED EXTERNALLY;

Rles par dfaut aux utilisateurs


Syntaxe :
ALTER USER DEFAULT ROLE [|ALL] [EXCEPT ];

Exemples :
ALTER USER scott DEFAULT ROLE Vente, Achat; ALTER USER scott DEFAULT ROLE ALL; ALTER USER scott DEFAULT ROLE ALL EXCEPT Vente; ALTER USER scott DEFAULT ROLE NONE;

Sous OEM :
Oracle Security Manager

Affectation
Ordre GRANT Exemples :
GRANT create any table TO Vente ; GRANT Vente TO scott; GRANT Vente TO scott WITH ADMIN OPTION;

217

218

Activation on/off des rles


Relatif la session
intressant dans une application accdant la base pour s'assurer que la personne qui excute l'application est bien autorise.

Conseils
Crer un rle pour chaque tche

d'application
e.g. traitement du salaire

Commande SET ROLE


Exemples :
SET ROLE Vente; SET ROLE Vente IDENTIFIED BY commission; SET ROLE ALL EXCEPT Achat; SET ROLE NONE;

Attribuer aux rles d'application les privilges ncessaires pour excuter la tche Crer un rle pour chaque type

d'utilisateur
e.g. chef de service

Suppression des rles :


DROP ROLE role

N'attribuer aux rles d'utilisateur que des rles d'application.


Ne pas affecter des privilges individuels

Suppression des rles d'un utilisateur


REVOKE role FROM [util | PUBLIC];

Accorder des rles d'utilisateurs aux utilisateurs


220

219

55

Informations sur les rles


Interroger les vues
DBA_ROLES
tous les rles de la bd

DBA_ROLE_PRIVS
rles accords aux utilisateurs et aux rles

ROLE _ROLE_PRIVS
rles accords aux rles

DBA_SYS_PRIVS
Privilges accords aux utilisateurs et aux rles

ROLE_SYS_PRIVS
Privilges systmes accords aux rles

ROLE_TAB_PRIVS
Privilges de table accords aux rles

SESSION_ROLES
rles d'un utilisateur actuellement activs

221

56

Diffrents types de sauvegarde Partie 7


Sauvegarde base ferme
dite sauvegarde froid

Sauvegarde base ouverte


dite sauvegarde chaud

Diffrentes possibilits lies


au choix du mode d'archivage des fichiers de reprise
Mode NoArchivelog

Sauvegarde / restauration

la sauvegarde la plus rcente est utilise pour restaurer la base perte d'information possible

Mode Archivelog
idem + fichiers de reprise archivs pas de perte d'information

de l'environnement technique
commandes du SE, outils NT, manuel, automatique environnement disques (RAID)

225

226

Deux modes d'archivage


mode NOARCHIVELOG
Restauration possible en cas d'incidents logiciel (processus SMON)
pas possible en cas d'incidents disques

Sauvegarde froid
La plus simple mettre en uvre Les tapes :
identification des fichiers
select name from v$datafile; select member from v$logfile; select name from v$controlfile;

Sauvegarde BD ferme Pas de travail supplmentaire pour le DBA

mode ARCHIVELOG
Restauration possible en cas d'incidents disque et logiciel Sauvegarde possible tout en gardant la BD ouverte et prte l'emploi Beaucoup de travail supplmentaire pour le DBA pour maintenir les fichiers archivs

arrter la base de donnes sauvegarder tous ces fichiers


commandes du SE

Redmarrer la base

En cas d'erreur, copie de ces fichiers pour redmarrer


perte d'information possible A privilgier si la BD n'est pas dans un environnement transactionnel lev 228

227

57

Exemple Sauvegarde chaud


Plus difficile mettre en uvre
ncessite le mode ARCHIVELOG
possible aussi en mode Noarchivelog mais les fichiers sauvs ne sont pas utilisables pour une restauration

(mode ARCHIVELOG)
Sauvegarde de fichiers de donnes
Identifier les fichiers de donnes d'un tablespace, eg 'tbs' Tablespaces activs
1. ALTER TABLESPACE tbs BEGIN BACKUP; 2. Copier les fichiers partir du SE 3. ALTER TABLESPACE tbs END BACKUP;

Les grandes tapes :


base de donnes ouverte soit mettre offline un tablespace
ALTER TABLESPACE tbs OFFLINE NORMAL;

Tablespaces dsactivs
1. ALTER TABLESPACE tbs OFFLINE NORMAL; 2. Copier les fichiers partir du SE 3. ALTER TABLESPACE tbs ONLINE;

soit utiliser l'ordre BEGIN BACKUP


ALTER TABLESPACE tbs BEGIN BACKUP;

sauvegarder les fichiers concerns


commandes du SE

Sauvegarde des fichiers de contrle


ALTER DATABASE BACKUP CONTROLFILE TO 'e:\backup\control01.ctl';

soit mettre online le tablespace


ALTER TABLESPACE tbs ONLINE

soit utiliser l'ordre END BACKUP


ALTER TABLESPACE tbs END BACKUP;

Attention :
l'tat d'un fichier de donnes sauvegard online partir du SE est incertain

229

230

Requtes
Sur le mode d'archivage
select log_mode from v$database;

Restaurations
Mode Noarchivelog
perte des donnes saisies depuis la dernire sauvegarde restauration de tous les fichiers

En mode archivage
informations sur les tablespaces actuellement sauvegards
V$BACKUP, V$DATAFILE_HEADER,

Mode Archivelog
Diffrentes restaurations :
Restauration complte
Base de donnes ferme Base de donnes ouverte, tablespaces dsactivs Base de donnes ouverte, tablespaces dsactivs, fichiers de donnes endommags Fichier de contrle corrompu

Restauration incomplte
bas sur l'annulation bas sur les modifications et sur le temps

commande 'recover'
doc dans SQL*Plus !

231

232

58

Restauration: le principe

Restauration complte
Mode Noarchivelog
Les tapes 1. Fermer la base 2. Rparer la panne disque 3. Restaurer tous les fichiers de la sauvegarde la plus rcente 4. Ouvrir la base l'tape OPEN
Si les emplacements des fichiers ont chang, il faut renommer ces fichiers au niveau du fichier de contrle
redmarrer la base l'tape MOUNT

Des donnes peuvent avoir t perdues 233 234

Restauration en mode Archivelog


Commande recover
RECOVER [AUTOMATIC][FROM location] {[STANDBY] DATABASE [UNTIL options] [USING BACKUP CONTROLFILE] |TABLESPACE {tablespace [, tablespace ...]} |DATAFILE {datafilename [, datafilename ...]} |STANDBY {TABLESPACE tablespace [,tablespace ...] |DATAFILE datafilename [, datafilename ...]} UNTIL CONTROLFILE |LOGFILE filename |CONTINUE [DEFAULT] |CANCEL} [PARALLEL clause]

Exemple de restauration partielle


Mode Archivlog base ouverte, tablespace dsactiv 1. Ouvrir la base l'tape OPEN 2. Dsactiver le(s) tablespace(s)
ALTER TABLESPACE nom OFFLINE

Possibilit de restaurer
toute la base des tablespaces le fichier de contrle des fichiers de donnes

3. Rparer la panne disque 4. Restaurer seulement les fichiers endommags 5. Lancer la restauration
RECOVER TABLESPACE tablespace ou pour chaque fichier de donnes RECOVER DATAFILE nom_fich

7. Activer le tablespace
ALTER TABLESPACE nom ONLINE

Ncessite la prsence des fichiers de reprise archivs 235

236

59

Cot serveur Partie 8


Concept de base : "mettre un processus sur le

serveur NT l'coute de connexion sur un serveur Oracle par l'intermdiaire d'un ou plusieurs protocoles rseaux"
Protocoles rseaux
e.g., TCP/IP, NMP,

Configuration du rseau

Serveur BD Oracle
instance + base, e.g. ORCL, U01 ...

Notion de service
utiliser pour la rplication, l'authentification par le SE, ...

Sur NT, processus listener80 qui fait cette tche


237 238

Cot serveur (2)


Les configurations sont enregistres dans le fichier listener.ora
c:\orant\net8\admin ou c:\orant\sqlnet\admin

Exemple de fichier listener.ora


MESOREILLES = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = lmijmp)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = NMP)(SERVER = LMIJMP)(PIPE = ORAPIPE)) ) ) SID_LIST_MESOREILLES = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) ) (SID_DESC = (SID_NAME = F3) ) ) PASSWORDS_MESOREILLES = (test123)

Deux faons de procder


la main, en ditant le fichier listener.ora avec Net8 Assistant

Crer autant de service qu'il existe de faon d'accder au serveur Redmarrer le PC pour prendre en compte les modifications Utiliser lsnrctl
commandes utiles :
status, set password 'pwd', stop 'listener', start 'listener'

239

240

60

Cot Client
Les configurations sont enregistres dans le fichier tnsnames.ora
c:\orant\net8\admin ou c:\orant\sqlnet\admin

Exemple de fichier tnsnames.ora


BDTEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = lmijmp)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) )

Deux faons de procder


la main, en ditant le fichier tnsnames.ora avec Net8 Easy Config

Crer un nom de service, i.e. un alias pour accder la base de donnes


permet aux clients de se connecter de

Le SID de la BD est 'ORCL' La machine distante s'appelle 'lmijmp' Le protocole rseau est TCP/IP

faon transparente
choisir un nom de service pertinent, e.g.

Paye
241 242

Cot Client (2)


Etapes suivre :
1. Choisir un nom de service 2. Spcifier le protocole de communication avec le serveur 3. Donner le nom du serveur 4. Donner le SID de la base de donnes

Audit

243

244

61

Audit sous Oracle


Possible sur toute action sur une base de donnes
tentatives de login accs aux objets actions bases de donnes

Audit des logins


Commande audit et noaudit Exemples :
audit session whenever [not] successfull noaudit connect

Stockage des enregistrements de laudit


SYS.AUD$, ou au niveau du systme dexploitation

Rsultats de laudit
Vue DBA_AUDIT_SESSION
OS_USERNAME USERNAME TERMINAL RETURNCODE ...

Pour activer laudit


Paramtre AUDIT_TRAIL (init.ora) Valeurs possibles : NONE, DB, OS
245

246

Audit des actions


Audit des commandes systme (create, alter, drop, ) sur un objet
Exemple audit update table by scott;

Groupes dactions
Possibilit de grouper les actions auditer
exemple : audit de toutes les commandes qui affectent les rles audit role audit connet whenever not successfull exemple de groupes fournis par Oracle
DBA : commande qui ncessitent une autorit DBA (grant, revoke, ) RESOURCE : create et drop pour les tables, clusters, vues, index, tablespaces, types et synonyms 248

Affectation dun code pour chaque action pouvant faire lobjet dun audit
Vue AUDIT_ACTIONS

Rsultats de laudit
Vue DBA_AUDIT_OBJECT pour dterminer comment un objet a t affect par une action

247

62

Audit des objets


Audit des commandes DML sur un objet Deux possibilits
par session

Remarques sur SYS.AUD$ Table SYS.AUS$


contient des informations critiques stocke dans le dictionnaire de donnes peut crotre rapidement

audit insert on scott.emp by session


par accs

donc il faut penser :


larchiver et la vider priodiquement la scuriser lauditer
audit all on SYS.AUD$ by access;

audit all on scott.emp by access

Toujours possible de spcifier en cas de russite ou dchec Rsultats de laudit


Vue DBA_AUDIT_OBJECT

249

250

Objectifs Chargement des donnes


Aperu de trois techniques :
Export et Import
sauvegarde "logique" des donnes rorganisation des donnes exclusivement pour les environnements Oracle indpendant du SE et des versions d'Oracle

SQL*Loader
Pour charger des donnes stockes ailleurs que dans des bases Oracle

Direct-load insert
chargement rapide de tables

Communication des bases Oracles avec d'autres BD

251

252

63

Export/Import Utilitaire Export/Import


Trois modes
table utilisateur base de donnes

Mode table
dfinition, donnes, index, triggers, contraintes, autorisations,

Rorganisation logique des donnes Migration

Mode utilisateur
en fonction des droits de l'utilisateur

Mode base de donnes


toute la base sauf les objets de l'utilisateur SYS
ncessite le privilge cf EXP_FULL_DATABASE

253

254

Deux chemins dexport


Chemin conventionnel
SQL SELECT Chemin :
donnes transfres du disque vers le buffer cache de donnes buffer d'valuation transfert vers le fichier d'export

Utilisation d'export
Ligne de commande
utilitaire EXP[80]
cf doc Oracle8 Server Utilities exp80 help=y

exemple :
exp80 scott/tiger tables=(dept,emp) \ file=emp.dmp log=exp.log

Chemin direct ( partir de V7.3.3)


Chemin
vite le buffer d'valuation

Une seule de ces options :


tables=(schma.table) owner=utilisateur full=y
option incrmental, cumulative

plus rapide que le chemin conventionnel n'influence pas de faon significative les performances de l'export

Conventionnel :
direct = n (par dfaut)

OEM
Utiliser Oracle Data Manager
Data -> Export ...

255

256

64

Utilisation d'Import
Ligne de commande
utilitaire IMP[80]
cf doc Oracle8 Server Utilities imp80 help=y

Comportement d'Import
Ordre d'import
lecture contigu du fichier d'export table -> donnes -> index -> contraintes Si les tables existent dj, il est recommand de dsactiver les contraintes d'intgrit rfrentielles avant de faire l'import

exemple :
imp80 scott/tiger file=emp.dmp log=imp.log ignore=y

OEM
Utiliser Oracle Data Manager
Data -> Import

Tablespace utilis pour l'objet


si possible, mme tablespace que dans la base de donnes source sinon, tablespace par dfaut de l'utilisateur
si quota suffisant

cf privilge IMP_FULL_DATABASE

257

258

Les fichiers ncessaires Utilitaire SQL*Loader


Fichiers de contrle
spcifie le format d'entre, les tables de sorties et des conditions sur le chargement

Fichiers de donnes
contiennent les donnes au format dfini dans le fichier de contrle

Fichiers de paramtres Interface avec des donnes extrieures


facultatif, alternative au mode ligne de commande

Fichier "bad"
enregistrements refuss lors de l'insertion

Fichier "log"
trace du chargement

Fichier "discard"
facultatif, contient les enregistrements qui ne correspondaient pas aux critres de selection

259

260

65

SQL*Loader

Deux chemins de chargement


Chemin conventionnel
utilise l'ordre SQL INSERT fichiers de reprise sont mis jour les contraintes sont respectes comportement classique

Chemin direct
criture directe dans des blocs de donnes pas d'informations enregistres dans les fichiers de reprise (sauf si mode ARCHIVELOG) applique seulement les contraintes de cl primaire, unique et not null.

261

262

Utilisation
Sous invite SE, par ex msdos :
SQLLDR80 scott/tiger \ control=ulcase6.ctl \ log=ulcase6.log direct=true Ne fonctionne pas en mode interactif

Direct-Load insert

Exemple de fichier de contrle :


load data infile 'ulcase6.dat' replace into table emp sorted indexes (empix) (empno position(1:4), ename position(6:15), job position(17:25), mgr position(27:30) nullif mgr=blanks, sal position(32:39) nullif sal=blanks, comm position(41:48) nullif comm=blanks, deptno position(50:51) nullif empno=blanks)

263

264

66

Chargement direct
V8 uniquement Utile pour charger des volumes de donnes important
plus rapide que les chemins conventionnels Ordre INSERT avec le hint APPEND

Exemple :
INSERT /*+APPEND*/ INTO bob.emp NOLOGGING SELECT * FROM scott.emp;

L'option NOLOGGING spcifie que les modifications ne sont pas enregistres dans les fichiers de reprise

265

67