72
ADMINISTRATION DES BASES DE DONNEES Pr BOUZIDI Année universitaire 2007-2008 D.BOUZIDI 2 Comprendre le rôle et l'importance de chacune des tâches de l'administration des bases de données Maîtriser l’administration de la base de données Oracle Objectifs

92520231-dbOraclec

Embed Size (px)

Citation preview

Page 1: 92520231-dbOraclec

ADMINISTRATION DES BASES DE DONNEES

Pr BOUZIDI

Année universitaire 2007-2008

D.BOUZIDI 2

� Comprendre le rôle et l'importance de chacune des tâches de l'administration des bases de données

� Maîtriser l’administration de la base de données Oracle

Objectifs

Page 2: 92520231-dbOraclec

Plan du cours

� Introduction

� Architecture conceptuelle de la BD Oracle

� Installation et configuration du logiciel Oracle Database 10g

� Contrôle la base de données

� Gestion du fichier de contrôle

� Gestion des fichiers de journalisation

� Gestion des structures de stockages

� Administration des utilisateurs et des schémas

� Gestion des rôles

� Sauvegarde / récupération

Introduction

Page 3: 92520231-dbOraclec

D.BOUZIDI 5Champ

Ligne

Colonne

Rappel (1)

Table

� Base de données (BD) : ensemble de données organisé en vue de son utilisation par des programmes correspondant à des applications distinctes et de manière à faciliter l'évolution indépendante des données et des programmes.

� SGBD : ensemble de programmes qui permettent l'accès à une BD

� Une table est l’élément de base d’une BD� Constituée de lignes de données� Chaque ligne comporte une ou plusieurs colonnes� Une colonne unique d'une ligne unique est appelée champ

D.BOUZIDI 6

� base de données relationnelle : Entité/Relation� Contraintes d'intégrité : utilisées pour garantir la validité des données stockées dans les tables� Les types de contrainte suivants :� NOT NULL� UNIQUE� PRIMARY KEY� FOREIGN KEY

Rappel (2)

� SQL : langage de programmation interactif standard permettant d'extraire et de mettre à jour les infos d'une BD

(interrogation, màj, contrôle d’accès, cohérence, intégrité, …)

Page 4: 92520231-dbOraclec

D.BOUZIDI 7

Tâches d'un administrateur de BD (1)

� Rôle SI (Système d’Information) : Administration et gestion efficace des données (lors de la mise en oeuvre de nouveaux systèmes basés sur les Bases de Données)

� éviter la redondance des données

� éviter un mauvais transfert d'un système à l'autre

� assurer la bonne compréhension des données

� implémenter la conception de la BD

D.BOUZIDI 8

Tâches d'un administrateur de BD (2)

�� Rôle technologique (Niveau physique) : Rôle technologique (Niveau physique) : Administration et gestion efficiente des BD (lors de Administration et gestion efficiente des BD (lors de la mise en oeuvre de nouveaux serveurs de BD ou la mise en oeuvre de nouveaux serveurs de BD ou de nouvelles BD)de nouvelles BD)�� Evaluer le matEvaluer le matéériel pour le serveur de base de riel pour le serveur de base de donndonnééeses

�� IInstallernstaller le logiciel Oraclele logiciel Oracle

�� Planifier la BDPlanifier la BD

�� CrCrééer et ouvrir la BDer et ouvrir la BD

�� Sauvegarder la BDSauvegarder la BD

�� RRéécupcupéérer la BD suite rer la BD suite àà uune pannene panne

�� GGéérer de la srer de la séécuritcuritéé

�� Surveiller les performances de la BDSurveiller les performances de la BD

Page 5: 92520231-dbOraclec

Architecture conceptuelle de la BD Oracle

D.BOUZIDI 10

ObjectifsObjectifs

� Maîtriser les concepts et le fonctionnement de l’architecture oracle :

� Instance

� Fichiers de données,

� Fichiers de paramétrage

�� MaMaîîtriser les concepts et le triser les concepts et le fonctionnement de lfonctionnement de l’’architecture oracle :architecture oracle :

�� InstanceInstance

�� Fichiers de donnFichiers de donnéées, es,

�� Fichiers de paramFichiers de paraméétragetrage

Page 6: 92520231-dbOraclec

D.BOUZIDI 11

PrésentationPrésentation

Processusutilisateur

Processusserveur

PGAMémoire SGA

Zone de mémoirepartagée

Fichiers de données

Fichiers de journalisation

Fichiers de contrôle

Instance

Base de données

Fic

hie

rA

LE

RT

Fic

hie

rT

race

Fic

hie

rPW

D

Fic

hie

r

Para

mètre

s

D.BOUZIDI 12

PrésentationPrésentation

� L'instance indispensable au bon fonctionnement d'une base de données Oracle

� Les fichiers de données

� Les fichiers de données facultatifs (fichier d'initialisation, fichier de mots de passe, etc...)

� L'instance indispensable au bon fonctionnement d'une base de données Oracle

� Les fichiers de données

� Les fichiers de données facultatifs (fichier d'initialisation, fichier de mots de passe, etc...)

Page 7: 92520231-dbOraclec

D.BOUZIDI 13

L’instanceL’instance

L'instance est la composition de 2 sous ensembles :

• Une zone mémoire (SGA) pour stocker les données issues des

fichiers de données sur le disque dur. Afin de pouvoir les

partager entre les différents processus.

•Des processus d'arrière plan :servent à gérer les transferts

de données entre la mémoire et le disque dur, plus d'autres

actions nécessaires au bon fonctionnement de la base de

données.

L'instance est la composition de 2 sous ensembles :

• Une zone mémoire (SGA) pour stocker les données issues des

fichiers de données sur le disque dur. Afin de pouvoir les

partager entre les différents processus.

•Des processus d'arrière plan :servent à gérer les transferts

de données entre la mémoire et le disque dur, plus d'autres

actions nécessaires au bon fonctionnement de la base de

données.

Cache des tampons des DATA Cache dictio D

Cache library

SMON

Mémoire SGAZone de mémoire

partagée

Instance

tampons Journalis

ation

PMON DBW LGWR ARCH CKPT

D.BOUZIDI 14

System global Area System global Area

La SGA ou System global Area

1. Shared Pool : zone de mémoire partagée

2. Database Buffer Cache : cache de tampons de données

3. Redo Log Buffer : tampon de journalisation

La taille totale de la mémoire SGA est définie par le paramètre SGA_MAX_SIZE

Variable_size : sont deux variables exprime la taille de l’espace réservé la SGA

fixedSize

La SGA ou System global Area

1. Shared Pool : zone de mémoire partagée

2. Database Buffer Cache : cache de tampons de données

3. Redo Log Buffer : tampon de journalisation

La taille totale de la mémoire SGA est définie par le paramètre SGA_MAX_SIZE

Variable_size : sont deux variables exprime la taille de l’espace réservé la SGA

fixedSize

Cache des tampons des DATA Cache dictio D

Cache library

SMON

Mémoire SGAZone de mémoire

partagée

Instance

tampons Journalis

ation

PMON DBW LGWR ARCH CKPT

Page 8: 92520231-dbOraclec

D.BOUZIDI 15

System global AreaSystem global AreaLa SGA ou System global Area

� Shared Pool : utilisutiliséée pour partager les informations sur e pour partager les informations sur les objets de la base de donnles objets de la base de donnéées ainsi que sur les droits es ainsi que sur les droits et privilet privilèèges accordges accordéés aux utilisateurs. s aux utilisateurs.

se dse déécoupe en 2 blocs : coupe en 2 blocs :

� La Library Cache : stocke les informations sur les stocke les informations sur les ordres SQL exordres SQL exéécutcutéés rs réécemment dans une zone SQL cemment dans une zone SQL Cache qui contiendra le texte de l'ordre SQL, la version Cache qui contiendra le texte de l'ordre SQL, la version compilcompiléée de l'ordre SQL et son plan d'exe de l'ordre SQL et son plan d'exéécution. cution.

� Le Dictionnary Cache : contenant les dcontenant les dééfinitions des finitions des objets de la base de donnobjets de la base de donnéées qui ont es qui ont ééttéé utilisutiliséé

rréécemment. Permettra au serveur Oracle de ne pas cemment. Permettra au serveur Oracle de ne pas avoir avoir àà aller chercher ces informations sur le disque aller chercher ces informations sur le disque ààchaque exchaque exéécution d'une requête SQL . cution d'une requête SQL .

D.BOUZIDI 16

System global AreaSystem global AreaLa SGA ou System global Area

� Database Buffer Cache :

• Sert à stocker les blocs de données utilisés récemment

• Fonctionne selon le principe dit du bloc ancien.

Sa taille est définie par deux paramètres

� DB_BLOCK_SIZE : défini lors de la création de la base de données, représente la taille d'un bloc de données Oracle. Celui-ci est défini de manière définitive et ne pourra plus être modifié.

� DB_BLOCK_BUFFERS : défini le nombre de blocs Oracle qui pourront être contenus dans le Database Buffer Cache.

� Ce paramètre est devenu obsolète à partir de la version 9i et a été remplacé par DB_CACHE-Size. Exprimé en octets ce paramètre modifiable dynamiquement

La SGA ou System global Area

� Database Buffer Cache :

• Sert à stocker les blocs de données utilisés récemment

• Fonctionne selon le principe dit du bloc ancien.

Sa taille est définie par deux paramètres

� DB_BLOCK_SIZE : défini lors de la création de la base de données, représente la taille d'un bloc de données Oracle. Celui-ci est défini de manière définitive et ne pourra plus être modifié.

� DB_BLOCK_BUFFERS : défini le nombre de blocs Oracle qui pourront être contenus dans le Database Buffer Cache.

� Ce paramètre est devenu obsolète à partir de la version 9i et a été remplacé par DB_CACHE-Size. Exprimé en octets ce paramètre modifiable dynamiquement

alter system set db_cache_size=100M;alter system set db_cache_size=100M;

Page 9: 92520231-dbOraclec

D.BOUZIDI 17

System global AreaSystem global Area

La SGA ou System global Area

� Redo Log Buffer : sert exclusivement à enregistrer toutes les modifications apportées sur les données de la base.

� Mémoire de type circulaire, et dont on pourra changer la taille avec le paramètre LOG_BUFFER

� Oracle ne pourra écraser les données contenues dans ce buffer que si elles ont été écrites dans les fichiers REDOLOG FILE

� Le paramètre définissant la taille de Redo log buffer est log_buffer

La SGA ou System global Area

� Redo Log Buffer : sert exclusivement à enregistrer toutes les modifications apportées sur les données de la base.

� Mémoire de type circulaire, et dont on pourra changer la taille avec le paramètre LOG_BUFFER

� Oracle ne pourra écraser les données contenues dans ce buffer que si elles ont été écrites dans les fichiers REDOLOG FILE

� Le paramètre définissant la taille de Redo log buffer est log_buffer

D.BOUZIDI 18

Program global AreaProgram global Area

� Mémoire non partagée.

� seulement utilisée par des processus serveur ou d'arrière plan

� allouée lors du démarrage du processus et désallouée lors de l'arrêt du processus.

� Mémoire non partagée.

� seulement utilisée par des processus serveur ou d'arrière plan

� allouée lors du démarrage du processus et désallouée lors de l'arrêt du processus.

Processusutilisateur

Processusserveur

PGAMémoire SGA

Zone de mémoirepartagée

Instance

Elle contient :

� La zone de tri : Appelée SORT AREA.

� Les informations de sessions, les privilèges de l'utilisateur

� Le Stack Space : Cette zone contiendra toutes les autres variables d'environnement et de session de l'utilisateur

Elle contient :

� La zone de tri : Appelée SORT AREA.

� Les informations de sessions, les privilèges de l'utilisateur

� Le Stack Space : Cette zone contiendra toutes les autres variables d'environnement et de session de l'utilisateur

Page 10: 92520231-dbOraclec

D.BOUZIDI 19

Les processus d'arrière plan Les processus d'arrière plan

� Le processus SMON (System Monitor) sert à :� Corriger les plantages de l'instance � Vérifier la synchronisation des données . � Si l'instance plante :

� Rejouer des transactions de REDO LOG FILE validées mais non non enregistrées sur le disque dur

� Ouvrir la BD pour les utilisateurs les informations non valides ne sont pas accessibles

� Annuler ttes les transactions non validés � SMON sert à nettoyer les segments TMP et défragmente les

fichiers de données

� Le processus SMON (System Monitor) sert à :� Corriger les plantages de l'instance � Vérifier la synchronisation des données . � Si l'instance plante :

� Rejouer des transactions de REDO LOG FILE validées mais non non enregistrées sur le disque dur

� Ouvrir la BD pour les utilisateurs les informations non valides ne sont pas accessibles

� Annuler ttes les transactions non validés � SMON sert à nettoyer les segments TMP et défragmente les

fichiers de données

Cache des tampons des DATA Cache dictio D

Cache library

SMON

Mémoire SGAZone de mémoire

partagée

Instance

tampons Journalis

ation

PMON DBW LGWR ARCH CKPT

D.BOUZIDI 20

Les processus d'arrière plan Les processus d'arrière plan

� Le processus PMON (Process Monitor) dédié aux utilisateurs, il sert à :

� annuler les transactions d'une session (lors d'un plantage de la session par exemple)

� relâcher tous les verrous posés par la session, � relâcher toutes les ressources détenues par la session.

� Le processus PMON (Process Monitor) dédié aux utilisateurs, il sert à :

� annuler les transactions d'une session (lors d'un plantage de la session par exemple)

� relâcher tous les verrous posés par la session, � relâcher toutes les ressources détenues par la session.

� Le processus DBWR (DataBaseWriter) dédié à :� l'écriture du Database Buffer Cache dans les fichiers de

données� vérifier en permanence le nombre de blocs libres dans le

Database Buffer Cache afin de laisser assez de place de disponible pour l'écriture des données dans le buffer

�Le processus DBWR se déclanche :

� Lorsque le nombre de bloc dirty atteint une certaine limite

� Lorsqu'un processus recherchant de blocs libres dans le Database Buffer Cache, et qu'il n’ a trouvé.

� Lors de timeout (3 secondes par défaut)

� Lors d'un checkpoint

� Le processus DBWR (DataBaseWriter) dédié à :� l'écriture du Database Buffer Cache dans les fichiers de

données� vérifier en permanence le nombre de blocs libres dans le

Database Buffer Cache afin de laisser assez de place de disponible pour l'écriture des données dans le buffer

�Le processus DBWR se déclanche :

� Lorsque le nombre de bloc dirty atteint une certaine limite

� Lorsqu'un processus recherchant de blocs libres dans le Database Buffer Cache, et qu'il n’ a trouvé.

� Lors de timeout (3 secondes par défaut)

� Lors d'un checkpoint

Page 11: 92520231-dbOraclec

D.BOUZIDI 21

Les processus d'arrière plan Les processus d'arrière plan

Le processus LGWR : va écrire les informations contenues dans le REDO LOG Buffer dans les fichiers REDOLOG FILE.

Il se déclanche :

� Qd une transaction est terminée avec un COMMIT

� Qd le REDO LOG Buffer est au 1/3 plein (paramétrable)

� Qd il y a plus de 1Mo d'infos de log contenues dans le buffer

Le processus LGWR : va écrire les informations contenues dans le REDO LOG Buffer dans les fichiers REDOLOG FILE.

Il se déclanche :

� Qd une transaction est terminée avec un COMMIT

� Qd le REDO LOG Buffer est au 1/3 plein (paramétrable)

� Qd il y a plus de 1Mo d'infos de log contenues dans le buffer

Le processus CKPT : sert à mettre à jour les en-têtes des fichiers de données, et les fichiers de contrôle CONTROL FILE afin de spécifier que l'action de CHECKPOINT s'est bien déroulée

Le processus CKPT : sert à mettre à jour les en-têtes des fichiers de données, et les fichiers de contrôle CONTROL FILE afin de spécifier que l'action de CHECKPOINT s'est bien déroulée

Le processus ARCH : copie un fichier REDO LOG FILE à un autre emplacement.

� La copie se déclenche automatiquement en mode ARCHIVELOG lors du changement de groupe de REDO LOG FILE (en mode NOARCHIVELOG le processus n'existe pas).

Le processus ARCH : copie un fichier REDO LOG FILE à un autre emplacement.

� La copie se déclenche automatiquement en mode ARCHIVELOG lors du changement de groupe de REDO LOG FILE (en mode NOARCHIVELOG le processus n'existe pas).

D.BOUZIDI 22

Une requête SELECT : Le client se connecte au serveur, ce qui génère la création d'un processus serveur.

L’exécution d’une requête SELECT s’effectue en trois phases :

� Le parsage :

� Vérifier l’existence d’une requête identique (Algorithme de Hachage) dans la LIBRARY CACHE

� Vérifier la syntaxe de la requête, les noms des objets et les privilèges de l’utilisateur (DICTIONNARY CACHE)

� Verrouiller les objets en question durant la phase de parsage afin d'éviter toutes modifications de structure.

� Générer le meilleur plan d'exécution de la requête qui sera enregistré dans LIBRARY CACHE afin d'optimiser les prochaines exécutions de la requête.

� L'exécution : Le serveur exécute la requête et récupère les données

� Le fetch

� Récupération des lignes et renvoie au processus utilisateur sous leur forme brute. (le formatage se fait au niveau du client selon les paramètres définis par l’utilisateur

Une requête SELECT : Le client se connecte au serveur, ce qui génère la création d'un processus serveur.

L’exécution d’une requête SELECT s’effectue en trois phases :

� Le parsage :

� Vérifier l’existence d’une requête identique (Algorithme de Hachage) dans la LIBRARY CACHE

� Vérifier la syntaxe de la requête, les noms des objets et les privilèges de l’utilisateur (DICTIONNARY CACHE)

� Verrouiller les objets en question durant la phase de parsage afin d'éviter toutes modifications de structure.

� Générer le meilleur plan d'exécution de la requête qui sera enregistré dans LIBRARY CACHE afin d'optimiser les prochaines exécutions de la requête.

� L'exécution : Le serveur exécute la requête et récupère les données

� Le fetch

� Récupération des lignes et renvoie au processus utilisateur sous leur forme brute. (le formatage se fait au niveau du client selon les paramètres définis par l’utilisateur

Exécution des requêtes Exécution des requêtes

Page 12: 92520231-dbOraclec

D.BOUZIDI 23

Une requête DML :

� Le parsage :

� Le même scénario que pour une requête SELECT.

� L'exécution :

� Pour assurer une bonne cohérence des données, création par le serveur

� Une image avant : utile pour les autres utilisateurs ou en cas d’annulation, enregistée dans le segment ROLLBack

� Une image après : utile pour la transaction en cours).

Une requête DML :

� Le parsage :

� Le même scénario que pour une requête SELECT.

� L'exécution :

� Pour assurer une bonne cohérence des données, création par le serveur

� Une image avant : utile pour les autres utilisateurs ou en cas d’annulation, enregistée dans le segment ROLLBack

� Une image après : utile pour la transaction en cours).

Exécution des requêtes Exécution des requêtes

Installation et configuration du logiciel Oracle Database 10g

Page 13: 92520231-dbOraclec

D.BOUZIDI 25

Objectifs

� Connaître la configuration requise pour le système

� Utiliser l'architecture Optimal Flexible Architecture (OFA)

� Installer et configurer le logiciel avec Oracle Universal Installer

D.BOUZIDI 26

Configuration système requise

� 512 Mo de mémoire physique (RAM)

� 1 Go d'espace de swap

� 400 Mo d'espace disque utilisé comme espace temporaire (/tmp ou \Temp)

� 1,5 Go d'espace disque pour le logiciel Oracle

� 1,5 Go d'espace disque pour la base de données préconfigurée

Page 14: 92520231-dbOraclec

D.BOUZIDI 27

Architecture OFA (Optimal Flexible Architecture)

� L’objectif de l'architecture OFA est de : � définir une organisation des répertoires (application,

base de données, …)

� recommender une convention de nomage des fichiers

� OFA permet de faciliter les tâches d'administration répétitives : � basculement entre plusieurs bases de données Oracle

� gestion et administration adéquate de la croissance de la base de données

� Contribution à élimination de la fragmentation de l'espace libre

D.BOUZIDI 28

� Définir les points de montage dansl e cas de system UNIX: � /u01

� /disk01

� Nommer les répertoires :� /u01/app/oracle

� /u01/app/applmgr

� Nommer les fichiers :� Fichiers de contrôle : controln.ctl

� Fichiers de journalisation : redon.log

� Fichiers de données : tn.dbf

Architecture OFA (Optimal Flexible Architecture)

Page 15: 92520231-dbOraclec

D.BOUZIDI 29

Les variables d'environnement

� ORACLE_SID : nom de l'instance (par défaut ORCL)

� ORACLE_HOME : répertoire de base contenant le logiciel Oracle

� ORACLE_BASE : base de la structure de répertoires Oracle pour l'architecture OFA

� NLS_LANG : paramètres de langue, de territoire et de jeu de caractères client

D.BOUZIDI 30

Démarrage de Oracle Universal Installer

Page 16: 92520231-dbOraclec

D.BOUZIDI 31

Emplacement et type d’installation

D.BOUZIDI 32

Liste des produits de l’installation

Page 17: 92520231-dbOraclec

D.BOUZIDI 33

Lancement de l’installation

� Deux Messages Box affichant des erreurs

� A 43% de l’installation, cliquer sur OK

� Un autre à 63%, cliquer sur reéssayer

D.BOUZIDI 34

Assistant de Configuration des service NET, iSQL et BD

Page 18: 92520231-dbOraclec

D.BOUZIDI 35

Configuration de la Base de données

D.BOUZIDI 36

Fin de l’installation

Page 19: 92520231-dbOraclec

Contrôle la base de données Database 10g

D.BOUZIDI 38

Objectifs

� démarrer et arrêter des outils : iSQL*Plus et Enterprise Manager Database Control

� démarrer et arrêter le processus d'écoute Oracle

� démarrer et arrêter Oracle Database 10g

Page 20: 92520231-dbOraclec

D.BOUZIDI 39

Démarrer et arrêter iSQL*Plus

$ isqlplusctl start

iSQL*Plus 10.1.0.2.0

Copyright (c) 2004 Oracle. All rights reserved.

Starting iSQL*Plus ...

iSQL*Plus started.

$ isqlplusctl stop

iSQL*Plus 10.1.0.2.0

Copyright (c) 2004 Oracle. All rights reserved.

Stopping iSQL*Plus ...

iSQL*Plus stopped.

D.BOUZIDI 40

Structure de gestion

� Les trois composants de la structure de gestion d'Oracle Database 10g sont les suivants :� Instance de base de données

� Processus d'écoute

� Interface de gestion (Database Control)

Listener

DatabaseControl

Page 21: 92520231-dbOraclec

D.BOUZIDI 41

Démarrer et arrêter DatabaseControl

$ emctl start dbconsole

TZ set to US/Pacific

Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0

Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.

http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication

Starting Oracle Enterprise Manager 10g Database Control

...................... started.

------------------------------------------------------------------

Logs are generated in directory

/u01/app/oracle/product/10.1.0/db_1/edrsr9p1.us.oracle.com_orcl/sy

sman/log

$ emctl stop dbconsole

TZ set to US/Pacific

Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0

Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.

http://edrsr9p1.us.oracle.com:5500/em/console/aboutApplication

Stopping Oracle Enterprise Manager 10g Database Control ...

... Stopped.

D.BOUZIDI 42

Accéder à Database Control

Page 22: 92520231-dbOraclec

D.BOUZIDI 43

Page d'accueil Database

D.BOUZIDI 44

Modifier le statut du processus d'écoute

Page 23: 92520231-dbOraclec

D.BOUZIDI 45

OUVERTURE

MOUNT

NOMOUNT

ARRET

Ouverture de tous les fichiers conformément au fichier de contrôle de cette instance.

Ouverture du fichier de contrôle de cette instance.

Démarrage de l'instance.

Etapes des procéduresde démarrage et d'arrêt

Etapes des procéduresde démarrage et d'arrêt

DEMARRAGE

ARRET

D.BOUZIDI 46

Mode d'arrêt : Mode d'arrêt :

A A AbortAbort I I ImmediateImmediate

T T TransactionalTransactional N NormalN Normal

Options d'arrêtOptions d'arrêt

A

x

x

x

x

T

x

x

o

o

I

x

x

x

o

Mode d'arrêt

Permettre de nouvelles connexions

Attendre la fin des sessions en cours

Attendre la fin des transactions en cours

Imposer un point de reprise et fermer les fichiers

N

x

o

o

o

OUIOUI

NONNONx

o

Page 24: 92520231-dbOraclec

D.BOUZIDI 47

Différents types d'arrêtDifférents types d'arrêt

Transfertde fonds

Retrait de fonds de l'ancien compte

Validation

Déconnexion

Vérification desoldes

Ajout de nouveaux fonds

Arrêt enArrêt enmodemodeNormalNormal

Arrêt enArrêt enmodemodeImmediateImmediate

Arrêt enArrêt enmodemodeTransactionalTransactional

Arrêt de la base Arrêt de la base de donnde donnééeses

Arrêt de Arrêt de la base de la base de donndonnééeses

Arrêt de la baseArrêt de la basede donnde donnééeses

1

2

3

4

5

D.BOUZIDI 48

Options SHUTDOWN

� Vers le bas :� Le cache de tampons de la base de données est écrit dans les fichiers de données

� Les modifications non validées sont annulées

� Les ressources sont libérées

� Vers le haut :� Pas de récupération d'instance

Base de données cohérente

(base de données propre)

Pendant les opérations

SHUTDOWN

NORMAL

ouSHUTDOWN

TRANSACTIONAL

ouSHUTDOWN

IMMEDIATE

Page 25: 92520231-dbOraclec

D.BOUZIDI 49

Options SHUTDOWN

� Vers le bas :� Les mémoires tampon modifiées ne sont pas écrites dans les fichiers de données

� Les modifications non validées ne sont pas annulées

Base de donnéesincohérente

(base de données "dirty")

Pendant les opérations

SHUTDOWN ABORT

ouéchec d'une

instanceou

STARTUP FORCE

Vers le haut :

� Les fichiers de journalisation en ligne sont utilisés pour réappliquerles modifications

� Les segments d'annulation sont utilisés pour annuler les modifications non validées

� Les ressources sont libérées

D.BOUZIDI 50

� NOMOUNT : Créé la SGA et démarre les processus en arrière plan mais ne permet pas l'accès à la base (reste un OPEN à faire).

� MOUNT : Monte la base pour certaines activités DBA mais ne permet aucun accès à la base.

� OPEN : Permet aux utilisateurs d'accéder à la base.

� EXCLUSIVE : Autorise l'instance courant seulement à accéder àla base.

� PFILE : Spécifie le fichier d'initialisation à prendre en compte.

� FORCE : Annule l'instance courante avant d'effectuer un démarrage normal.

� RESTRICT : Autorise seulement l'accès aux utilisateurs avec le privilège RESTRICTED SESSION.

� RECOVER Démarre la restauration media quand la base

démarre.

� NOMOUNT : Créé la SGA et démarre les processus en arrière plan mais ne permet pas l'accès à la base (reste un OPEN à faire).

� MOUNT : Monte la base pour certaines activités DBA mais ne permet aucun accès à la base.

� OPEN : Permet aux utilisateurs d'accéder à la base.

� EXCLUSIVE : Autorise l'instance courant seulement à accéder àla base.

� PFILE : Spécifie le fichier d'initialisation à prendre en compte.

� FORCE : Annule l'instance courante avant d'effectuer un démarrage normal.

� RESTRICT : Autorise seulement l'accès aux utilisateurs avec le privilège RESTRICTED SESSION.

� RECOVER Démarre la restauration media quand la base

démarre.

Options SHUTDOWN

STARTUP [Option]STARTUP [Option]

Page 26: 92520231-dbOraclec

D.BOUZIDI 51

Exemple de commande démarrage et d’arrêt de la base de données

Exemple de commande démarrage et d’arrêt de la base de données

STARTUP PFILE=init015.oraSTARTUP PFILE=init015.ora

� Démarre l'instance et ouvre la base de données :� Démarre l'instance et ouvre la base de données :

� Fait passer la base de données de l'état NOMOUNT àMOUNT :

� Fait passer la base de données de l'état NOMOUNT àMOUNT :

ALTER DATABASE ORCL MOUNT;ALTER DATABASE ORCL MOUNT;

• Ouvert la base de données en mode lecture seule (READ ONLY) :

• Ouvert la base de données en mode lecture seule (READ ONLY) :

ALTER DATABASE ORCL OPEN READ ONLY;ALTER DATABASE ORCL OPEN READ ONLY;

� Arrête de l ’instance et la base de données : � Arrête de l ’instance et la base de données :

SHUTDOWN Immediate;SHUTDOWN Immediate;

D.BOUZIDI 52

Ouvrir une base de données en mode lecture seule (READ ONLY)

Ouvrir une base de données en mode lecture seule (READ ONLY)

� Toute base de données peut être ouverte en mode lecture seule.

� Dans ce mode, vous pouvez :

� lancer des interrogations,

� effectuer des opérations de tri sur disque avec des tablespaces gérés en local,

� utiliser des fichiers de données hors ligne et en ligne, et non des tablespaces,

� récupérer des fichiers de données hors ligne et des tablespaces.

� Toute base de données peut être ouverte en mode lecture seule.

� Dans ce mode, vous pouvez :

� lancer des interrogations,

� effectuer des opérations de tri sur disque avec des tablespaces gérés en local,

� utiliser des fichiers de données hors ligne et en ligne, et non des tablespaces,

� récupérer des fichiers de données hors ligne et des tablespaces.

Page 27: 92520231-dbOraclec

D.BOUZIDI 53

init001.orainit001.ora

Fichier de paramètres d'initialisation

Fichier de paramètres d'initialisation

SQL> CONNECT sys/PwdSys AS SYSDBA

SQL> STARTUP

PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora

SQL> CONNECT sys/PwdSys AS SYSDBA

SQL> STARTUP

PFILE=C:\oracle\product\10.1.0\admin\orcl\pfile\init001.ora

Cache des tampons des DATA Cache dictio D

Cache library

SMON

Mémoire SGAZone de mémoire

partagée

Instance

tampons Journalis

ation

PMON DBW LGWR ARCH CKPT

Fic

hie

r

Para

mètre

s

D.BOUZIDI 54

Utiliser les paramètresUtiliser les paramètres

� Dimensionnez la mémoire SGA.

� Définissez les valeurs par défaut de la BD et de l'instance.

� Définissez les limites relatives aux utilisateurs ou aux processus.

� Définissez les limites relatives aux ressources de la BD.

� Définissez les divers attributs physiques de la BD, tels que la taille des blocs.

� Indiquez l'emplacement des fichiers de contrôle, des fichiers journaux archivés, du fichier ALERT et des fichiers trace.

� Dimensionnez la mémoire SGA.

� Définissez les valeurs par défaut de la BD et de l'instance.

� Définissez les limites relatives aux utilisateurs ou aux processus.

� Définissez les limites relatives aux ressources de la BD.

� Définissez les divers attributs physiques de la BD, tels que la taille des blocs.

� Indiquez l'emplacement des fichiers de contrôle, des fichiers journaux archivés, du fichier ALERT et des fichiers trace.

Page 28: 92520231-dbOraclec

D.BOUZIDI 55

Exemple de fichier de paramètresExemple de fichier de paramètres

# Initialization Parameter File: initU15.ora

db_name = U15

control_files = (/DISK1/control01.con,

/DISK2/control02.con)

db_block_size = 8192

db_block_buffers = 2048

shared_pool_size = 52428800

log_buffer = 64K

processes = 50

db_files = 1024

log_files = 10

max_dump_file_size = 10240

background_dump_dest = (/home/disk3/user15/BDUMP)

user_dump_dest = (/home/disk3/user15/UDUMP)

core_dump_dest = (/home/disk3/user15/CDUMP)

rollback_segments =

(r01,r02,r03,r04,r05,r06,r07,r08)

...

# Initialization Parameter File: initU15.ora

db_name = U15

control_files = (/DISK1/control01.con,

/DISK2/control02.con)

db_block_size = 8192

db_block_buffers = 2048

shared_pool_size = 52428800

log_buffer = 64K

processes = 50

db_files = 1024

log_files = 10

max_dump_file_size = 10240

background_dump_dest = (/home/disk3/user15/BDUMP)

user_dump_dest = (/home/disk3/user15/UDUMP)

core_dump_dest = (/home/disk3/user15/CDUMP)

rollback_segments =

(r01,r02,r03,r04,r05,r06,r07,r08)

...

D.BOUZIDI 56

Quelques paramètres Quelques paramètres � BACK_GROUND_DUMP_DEST :Emplacement où les fichiers traces des

processus en arrière plan sont enregistrés.

� USER_DUMP_DEST Emplacement où les fichiers traces sont créés.

� CONTROL_FILES : Noms des fichiers de contrôle.

� DB_CACHE_SIZED : taille du tampon de données, (remplace le paramètre DB_BLOCK_BUFFERS définissant le nombre de blocs mis en cache dans la SGA, paramètre obsolète à partir de la version 9i)

� DB_NAME : Identifiant de la base de données de 5 caractères ou moins. (seul paramètre nécessaire à la création d'une base).

� SHARED_POOL_SIZE : Taille en octets de la zone de partage.

� IFILE : Permet de référencer un autre fichier de paramètre à imbriquer dans la définition.

� LOG_BUFFER : Nombre d'octets alloués au buffer redolog dans la SGA.

� MAX_DUMP_FILE_SIZE : Taille maximum des fichiers trace, spécifiée en nombre de blocs de l'OS.

� PROCESSES : Nombre de processus de l'OS pouvant se connecter simultanément à l’instance.

� SQL_TRACE : Active l’outil de suivi SQL pour chaque session utilisateur.

� TIMED_STATISTICS : Active ou non le minutage dans les fichiers trace et sur les écrans.

Page 29: 92520231-dbOraclec

D.BOUZIDI 57

Vues dynamiques des performancesVues dynamiques des performances

� Sont gérées par le serveur Oracle et mises à jour en permanence.

� Contiennent des données sur les structures de disque et de mémoire.

� Contiennent des données utiles pour le réglage des performances.

� Sont associées à des synonymes publics portant le préfixe V$.

� v$fixed_table contient le nom de toutes les vues disponibles

� Sont gérées par le serveur Oracle et mises à jour en permanence.

� Contiennent des données sur les structures de disque et de mémoire.

� Contiennent des données utiles pour le réglage des performances.

� Sont associées à des synonymes publics portant le préfixe V$.

� v$fixed_table contient le nom de toutes les vues disponibles

MémoireSGA

�� V$PARAMETER : des infos sur les paramV$PARAMETER : des infos sur les paramèètres d'initialisationtres d'initialisation

�� V$SYSTEM_PARAMETER : des infos sur les paramV$SYSTEM_PARAMETER : des infos sur les paramèètres tres dd’’initialisation et leurs modification initialisation et leurs modification ééventuellesventuelles

�� V$SGA : des infos sur la SGAV$SGA : des infos sur la SGA

�� V$OPTION : la liste des options installV$OPTION : la liste des options installéées sur le serveur Oracle es sur le serveur Oracle

�� V$PROCESS : des infos sur les processus actifs courantV$PROCESS : des infos sur les processus actifs courant

�� V$SESSION : des infos sur la session courante V$SESSION : des infos sur la session courante

�� V$VERSION : Liste le numV$VERSION : Liste le numééro de version et les composants ro de version et les composants

�� V$INSTANCE : Affiche l'V$INSTANCE : Affiche l'éétat de l'instance courante tat de l'instance courante

D.BOUZIDI 58

OUVERTUREOUVERTURE

MOUNTMOUNT

NOMOUNTNOMOUNT

Dictionnaire Dictionnaire

de donnde donnééeses

Afficher les vues dynamiquesdes performances

Afficher les vues dynamiquesdes performances

Lecture des donnLecture des donnéées es

sur disquesur disque

Lecture des donnLecture des donnééeses

en men méémoiremoireARRETARRET

Page 30: 92520231-dbOraclec

D.BOUZIDI 59

� Afficher les valeurs des paramètres en cours� Afficher les valeurs des paramètres en cours

� Exécutez la commande :

� Interrogez la vue dynamique des performances V$PARAMETER :

� Exécutez la commande :

� Interrogez la vue dynamique des performances V$PARAMETER :

SHOW PARAMETER controlSHOW PARAMETER control

SELECT name FROM v$parameter WHERE name LIKE '%control%';SELECT name FROM v$parameter WHERE name LIKE '%control%';

Affichage des paramètresAffichage des paramètres

� Certains paramètres d'initialisation peuvent être modifiés pendant l'exécution d'une instance (grâce aux commandes Alter session et Alter system).

� Certains paramètres d'initialisation peuvent être modifiés pendant l'exécution d'une instance (grâce aux commandes Alter session et Alter system).

ALTER SESSION SET SQL_TRACE=true; //session couranteALTER SESSION SET SQL_TRACE=true; //session courante

ALTER SYSTEM SET TIMED_STATISTICS=true;ALTER SYSTEM SET TIMED_STATISTICS=true;

ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;// DEFERRED Indique que le paramètre ne sera modifié qu'à

partir de la prochaine session.

ALTER SYSTEM SET SORT_AREA_SIZE=131072 DEFERRED;// DEFERRED Indique que le paramètre ne sera modifié qu'à

partir de la prochaine session.

D.BOUZIDI 60

� Activer et désactiver une session en mode restreint� Activer et désactiver une session en mode restreint

� Exécutez la commande STARTUP pour restreindre l'accès à une base de données :

� Exécutez la commande ALTER SYSTEM pour mettre une instance en mode restreint :

� Exécutez la commande STARTUP pour restreindre l'accès à une base de données :

� Exécutez la commande ALTER SYSTEM pour mettre une instance en mode restreint :

STARTUP RESTRICTSTARTUP RESTRICT

ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM ENABLE RESTRICTED SESSION;

� Dans la vue dynamique des performances V$SESSION, identifiez la session à interrompre :

� Exécutez la commande ALTER SYSTEM :

� Dans la vue dynamique des performances V$SESSION, identifiez la session à interrompre :

� Exécutez la commande ALTER SYSTEM :

SELECT sid, serial# FROM v$session WHERE

username='SCOTT';

SELECT sid, serial# FROM v$session WHERE

username='SCOTT';

ALTER SYSTEM KILL SESSION '7,15';ALTER SYSTEM KILL SESSION '7,15';

� Interrompre une session� Interrompre une session

Gestion des sessionsGestion des sessions

Page 31: 92520231-dbOraclec

D.BOUZIDI 61

Fichiers ALERT et TRACEFichiers ALERT et TRACE

� Les fichiers trace peuvent être écrits par les processus serveur et les processus d'arrière-plan.

� Le serveur Oracle vide les informations relatives aux erreurs dans des fichiers trace.

� Le fichier ALERT est le journal chronologique des messages et des erreurs.

� La fonction trace par processus serveur peut être activée ou désactivée par :

� une commande ALTER SESSION,

� le paramètre SQL_TRACE.

� Les fichiers trace peuvent être écrits par les processus serveur et les processus d'arrière-plan.

� Le serveur Oracle vide les informations relatives aux erreurs dans des fichiers trace.

� Le fichier ALERT est le journal chronologique des messages et des erreurs.

� La fonction trace par processus serveur peut être activée ou désactivée par :

� une commande ALTER SESSION,

� le paramètre SQL_TRACE.

Gestion du fichier de contrôleGestion du fichier de contrôle

Page 32: 92520231-dbOraclec

D.BOUZIDI 63

Utiliser le fichier de contrôleUtiliser le fichier de contrôle

� Petit fichier binaire : Indique au serveur où sont situés les fichiers constituant la base de données

� Nécessaire :

� au montage

� au fonctionnement de la base de données

� Lié à une seule base de données

� Modifié fréquemment par le serveur oracle.

� Indispensable pour la restauration de la base.

� Doit être multiplexé

� En cas de perte du fichier de contrôle, la base de données doit être restaurée

� Petit fichier binaire : Indique au serveur où sont situés les fichiers constituant la base de données

� Nécessaire :

� au montage

� au fonctionnement de la base de données

� Lié à une seule base de données

� Modifié fréquemment par le serveur oracle.

� Indispensable pour la restauration de la base.

� Doit être multiplexé

� En cas de perte du fichier de contrôle, la base de données doit être restaurée

� Pour afficher les noms des fichiers de CTL� Pour afficher les noms des fichiers de CTL

show parameter control_filesshow parameter control_files

select value from v$parameter where name='control_files'; select value from v$parameter where name='control_files';

D.BOUZIDI 64

Contenu du fichier de contrôleContenu du fichier de contrôle

� Nom et identificateur de la base de données

� Date de création de la base de données

� Emplacement des fichiers de données et de journalisation

� Noms des tablespaces et les fichiers de données (nom de fichier,statut lecture/écriture, en ligne ou non)

� Les fichiers log en ligne

� Historique de journalisation archivés

� Informations de sauvegarde

� Informations sur les blocs corrompus

� ……

� Nom et identificateur de la base de données

� Date de création de la base de données

� Emplacement des fichiers de données et de journalisation

� Noms des tablespaces et les fichiers de données (nom de fichier,statut lecture/écriture, en ligne ou non)

� Les fichiers log en ligne

� Historique de journalisation archivés

� Informations de sauvegarde

� Informations sur les blocs corrompus

� ……

Page 33: 92520231-dbOraclec

D.BOUZIDI 65

Multiplexer le fichier de contrôleMultiplexer le fichier de contrôle

control_filescontrol_files=("C:=("C:\\oracleoracle\\productproduct\\10.1.010.1.0\\oradataoradata\\orclorcl\\control01.ctl", control01.ctl",

"C:"C:\\oracleoracle\\productproduct\\10.1.010.1.0\\oradataoradata\\orclorcl\\control02.ctl", control02.ctl",

"C:"C:\\oracleoracle\\productproduct\\10.1.010.1.0\\oradataoradata\\orclorcl\\control03.ctl")control03.ctl")

UnitéUnité

control01.ctl

Unité 2Unité 2

control02.ctl

Unité 3Unité 3

control03.ctl

D.BOUZIDI 66

� Deux méthodes pour multiplexer le fichier de contrôle :

� Méthode 1

� Visualiser les fichiers de contrôle existants

� Arrêter la base

� Modifier le paramètre CONTROL_FILES dans le fichier init.ora

� Copier le fichier de contrôle en utilisant les commandes OS

� Démarrer la base de données

� Méthode 2

� Ajouter le nouveau fichier de contrôle /disk3/oradata/orcl/control04.ctl dans le paramètre CONTROL_FILES en utilisant la commande :

� Arrêter la base

� Copier le fichier de contrôle en utilisant les commandes OS

� Démarrer la base de données

� Deux méthodes pour multiplexer le fichier de contrôle :

� Méthode 1

� Visualiser les fichiers de contrôle existants

� Arrêter la base

� Modifier le paramètre CONTROL_FILES dans le fichier init.ora

� Copier le fichier de contrôle en utilisant les commandes OS

� Démarrer la base de données

� Méthode 2

� Ajouter le nouveau fichier de contrôle /disk3/oradata/orcl/control04.ctl dans le paramètre CONTROL_FILES en utilisant la commande :

� Arrêter la base

� Copier le fichier de contrôle en utilisant les commandes OS

� Démarrer la base de données

Multiplexer le fichier de contrôleMultiplexer le fichier de contrôle

� Oracle met à jours les fichiers de contrôle en même temps, mais seul le premier fichier cité dans le paramètre CONTROL_FILES est consulté.

//SCOPE=SPFILE:le changement de paramètre est enregistré dans le SPFILE, et ne sera pris en compte

qu’au prochain démarrage de l'instance. Utilisé pour les paramètres non dynamique

� Oracle met à jours les fichiers de contrôle en même temps, mais seul le premier fichier cité dans le paramètre CONTROL_FILES est consulté.

//SCOPE=SPFILE:le changement de paramètre est enregistré dans le SPFILE, et ne sera pris en compte

qu’au prochain démarrage de l'instance. Utilisé pour les paramètres non dynamique

alter system set control_files=

'/disk1/oradata/orcl/control01.ctl',

'/disk1/oradata/orcl/control02.ctl ',

'/disk1/oradata/orcl/control03.ctl ',

'/disk1/oradata/orcl/control04.ctl' scope=spfile;

alter system set control_files=

'/disk1/oradata/orcl/control01.ctl',

'/disk1/oradata/orcl/control02.ctl ',

'/disk1/oradata/orcl/control03.ctl ',

'/disk1/oradata/orcl/'/disk1/oradata/orcl/control04.ctlcontrol04.ctl'' scope=spfile;

Page 34: 92520231-dbOraclec

D.BOUZIDI 67

sauvegarder le fichier de contrôle

sauvegarder le fichier de contrôle

� Deux méthodes :

� Commande sauvegardant le fichier de contrôle en un fichier binaire :

� Commande créant un fichier en format texte dans le répertoire USER_DUMP_DEST

� Deux méthodes :

� Commande sauvegardant le fichier de contrôle en un fichier binaire :

� Commande créant un fichier en format texte dans le répertoire USER_DUMP_DEST

alter database backup controlfile to trace;alter database backup controlfile to trace;

alter database backup controlfile to nom_du_fichieralter database backup controlfile to nom_du_fichier

� C’est recommandé de sauvegarder le fichier de contrôle à chaque modification de la structure de la base (Ajout, renomme ou suppression de fichiers de données ou de journalisation).

� C’est recommandé de sauvegarder le fichier de contrôle à chaque modification de la structure de la base (Ajout, renomme ou suppression de fichiers de données ou de journalisation).

D.BOUZIDI 68

��V$CONTROLFILE : affiche tous les noms des fichiers de contrôle eV$CONTROLFILE : affiche tous les noms des fichiers de contrôle et t leur statut qui peut être NULL ou INVALIDleur statut qui peut être NULL ou INVALID

��V$CONTROLFILE_RECORD_SECTION : plusieurs infos sur le fichier V$CONTROLFILE_RECORD_SECTION : plusieurs infos sur le fichier de contrôle (TYPE : Type de la section, RECORD_SIZE : Taille d'ude contrôle (TYPE : Type de la section, RECORD_SIZE : Taille d'une ne entrentréée en bits, RECORDS_TOTAL : Nombre d'entre en bits, RECORDS_TOTAL : Nombre d'entréées alloues allouéées pour la es pour la section, RECORDS_USED : Nombres d'entrsection, RECORDS_USED : Nombres d'entréées utilises utiliséées dans la es dans la section, FIRST_INDEX : Index de la premisection, FIRST_INDEX : Index de la premièère entrre entréée, LAST_INDEX : e, LAST_INDEX : Index de la derniIndex de la dernièère entrre entréée)e)

��V$KCCDI : affiche la valeur de MAXLOGMEMBERS (DIMLM)V$KCCDI : affiche la valeur de MAXLOGMEMBERS (DIMLM)

�� Liste des vues qui lisent directement du fichier de contrôle : Liste des vues qui lisent directement du fichier de contrôle : V$THREAD, V$DATABASE, V$DATAFILE, V$DATAFILE_HEADER V$THREAD, V$DATABASE, V$DATAFILE, V$DATAFILE_HEADER V$LOGFILE, V$ARCHIVED_LOG, V$BACKUP, V$BACKUP_DATAFILE, V$LOGFILE, V$ARCHIVED_LOG, V$BACKUP, V$BACKUP_DATAFILE, V$BACKUP_PIECE, V$BACKUP_REDOLOG, V$BACKUP_SET, V$BACKUP_PIECE, V$BACKUP_REDOLOG, V$BACKUP_SET, ……

Obtenir des informationsObtenir des informations

Fichier de contrôle

Page 35: 92520231-dbOraclec

Gestion des fichiers de journalisation

(les fichiers log)

D.BOUZIDI 70

Utiliser des fichiers de journalisationUtiliser des fichiers de journalisation

� Permettent à la base de garder une trace de toutes les altérations de

données,

� En cas de crash de la base, ils permettent de rejouer les modifications

apportées à la base.

� Doivent être multiplixés au moins au nombre de deux

� Permettent à la base de garder une trace de toutes les altérations de

données,

� En cas de crash de la base, ils permettent de rejouer les modifications

apportées à la base.

� Doivent être multiplixés au moins au nombre de deux

ARC

Mémoire SGAZone de mémoire

partagée

Fichiers de données Fichiers

de journalisation

Fichiers de contrôle

Base de données

Instance

Fichiers archivages des logs

LGW

Page 36: 92520231-dbOraclec

D.BOUZIDI 71

Mode de fonctionnement des fichiers de journalisation

Mode de fonctionnement des fichiers de journalisation

Groupe 2Groupe 2 Groupe 3Groupe 3Groupe 1Groupe 1

Membre1UnitUnitéé 11

UnitUnitéé 22

Membre2

Membre1 Membre1

Membre2Membre2

� En mode NOARCHIVELOG, un fichier log plein est disponible après que les changements enregistrés dedans sont écrits dans les fichiers de données.

� En ARCHIVELOG, un fichier log plein est disponible après que les changements effectués dedans sont écrits dans les fichiers de données et était archivé

� Un fichier log en ligne ou archivé est identifié par son numéro de séquence

� En mode NOARCHIVELOG, un fichier log plein est disponible après que les changements enregistrés dedans sont écrits dans les fichiers de données.

� En ARCHIVELOG, un fichier log plein est disponible après que les changements effectués dedans sont écrits dans les fichiers de données et était archivé

� Un fichier log en ligne ou archivé est identifié par son numéro de séquence

D.BOUZIDI 72

� Sur l'archivage à partir : � Sur l'archivage à partir :

Obtenir des informations Obtenir des informations

ARCHIVE LOG LIST;ARCHIVE LOG LIST;

SELECT archiver FROM v$instance;SELECT archiver FROM v$instance;

� Sur les groupes à partir : � Sur les groupes à partir :

� V$DATABASE (NAME,LOG_MODE)� V$DATABASE (NAME,LOG_MODE)

� V$INSTANCE (ARCHIVER) � V$INSTANCE (ARCHIVER)

� Ligne de commande :� Ligne de commande :

� V$THREAD (groups, current_group#, sequence# ) //fichier log en cours� V$THREAD (groups, current_group#, sequence# ) //fichier log en cours

SELECT groups, current_group#, sequence# FROM v$thread;SELECT groups, current_group#, sequence# FROM v$thread;

� Sur les groupes et les membres à partir :� Sur les groupes et les membres à partir :

� V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL� V$LOG (group#, members, status, sequence, bytes) //les infos du fichier CTL

status : unused (jamais écrit), current (en ligne et en cours d'écriture), active (en ligne et nécessaires à la restauration de la base ), inactive (en ligne non nécessaires à la restauration de la base)

� V$LOGFILE (group#, type, status, member)� V$LOGFILE (group#, type, status, member)

SELECT * FROM v$logfile; SELECT * FROM v$logfile;

SELECT group#, sequence#, bytes, members, status FROM v$log ;SELECT group#, sequence#, bytes, members, status FROM v$log ;

status : invalid (le fichier est inaccessible), stale (le fichier est incomplet), deleted (le fichier n’est pas utilisé), vide (le fichier est en cours d’utilisation)

SELECT name, log_mode FROM v$database;SELECT name, log_mode FROM v$database;

Page 37: 92520231-dbOraclec

D.BOUZIDI 73

� Un log switch est le point où la base arrête d'écrire dans l'un des fichiers redo en ligne et commence à écrire dans un autre.

� Se déclanche : � Le fichier log courant est plein et on doit continuer à écrire dans le fichier redo

� Configuré pour qu'il se reproduit à intervalles réguliers

� Manuellement

� Imposer des changements de fichier de journalisation à l'aide de la commande :

La commande suivante permet d'archiver le redo log courant et d'activer le redo log suivant.

� Gérer les points de reprise à l'aide des paramètres d'initialisation :� LOG_CHECKPOINT_INTERVAL

� LOG_CHECKPOINT_TIMEOUT

� FAST_START_IO_TARGET

� Un log switch est le point où la base arrête d'écrire dans l'un des fichiers redo en ligne et commence à écrire dans un autre.

� Se déclanche : � Le fichier log courant est plein et on doit continuer à écrire dans le fichier redo

� Configuré pour qu'il se reproduit à intervalles réguliers

� Manuellement

� Imposer des changements de fichier de journalisation à l'aide de la commande :

La commande suivante permet d'archiver le redo log courant et d'activer le redo log suivant.

� Gérer les points de reprise à l'aide des paramètres d'initialisation :� LOG_CHECKPOINT_INTERVAL

� LOG_CHECKPOINT_TIMEOUT

� FAST_START_IO_TARGET

Changements de fichier de journalisation et points de reprise

Changements de fichier de journalisation et points de reprise

ALTER SYSTEM SWITCH LOGFILE;ALTER SYSTEM SWITCH LOGFILE;

ALTER SYSTEM CHECKPOINT; //archiver le redo log courant. ALTER SYSTEM CHECKPOINT; //archiver le redo log courant.

D.BOUZIDI 74

� Le CHECKPOINT est un évènement qui se déclencher lors :

� D'un changement de groupe de REDO LOG FILE.

� D'un arrêt normal de la base de données (c'est à dire sans l'option ABORT)

� D'une demande explicite de l'administrateur

� D'une limite définie par les paramètres d'initialisation

� LOG_CHECKPOINT_INTERVAL : spécifie le nombre maximum de blocs du REDO LOG Buffer qui seront alors lus lors d'une restauration de l'instance.

� LOG_CHECKPOINT_TIMEOUT : Défini en secondes. Il permet de définir le temps maximum entre 2 CHECKPOINTS (ver > 8i : permet de définir le temps maximal de lecture du processus LGWR ).

� FAST_START_IO_TARGET : en secondes, il définit le temps maximum pour restaurer une instance.

� L'évènement CHECKPOINT déclenche

� Le LGWR : vide le REDO LOG Buffer.

� l'écriture d'un certain nombre de blocs du Database Buffer Cache dans les fichiers de données par DBWn. Le nombre de blocs écris par DBWnest défini avec le paramètre FAST_START_IO_TARGET

� Le CHECKPOINT est un évènement qui se déclencher lors :

� D'un changement de groupe de REDO LOG FILE.

� D'un arrêt normal de la base de données (c'est à dire sans l'option ABORT)

� D'une demande explicite de l'administrateur

� D'une limite définie par les paramètres d'initialisation

� LOG_CHECKPOINT_INTERVAL : spécifie le nombre maximum de blocs du REDO LOG Buffer qui seront alors lus lors d'une restauration de l'instance.

� LOG_CHECKPOINT_TIMEOUT : Défini en secondes. Il permet de définir le temps maximum entre 2 CHECKPOINTS (ver > 8i : permet de définir le temps maximal de lecture du processus LGWR ).

� FAST_START_IO_TARGET : en secondes, il définit le temps maximum pour restaurer une instance.

� L'évènement CHECKPOINT déclenche

� Le LGWR : vide le REDO LOG Buffer.

� l'écriture d'un certain nombre de blocs du Database Buffer Cache dans les fichiers de données par DBWn. Le nombre de blocs écris par DBWnest défini avec le paramètre FAST_START_IO_TARGET

Processus CKPTProcessus CKPT

Page 38: 92520231-dbOraclec

D.BOUZIDI 75

Manipulation des fichiers de log Manipulation des fichiers de log

ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M;ALTER DATABASE ADD LOGFILE('/DISK1/Redo30.log','/DISK2/Redo31.log') size 1M;

� Ajout des groupes � Ajout des groupes

� Ajout des membres à un groupe � Ajout des membres à un groupe

ALTER DATABASE ADD LOGFILE MEMBER

'/DISK2/Redo11.log' TO GROUP 1,

'/DISK2/Redo21.log' TO GROUP 2;

ALTER DATABASE ADD LOGFILE MEMBER

'/DISK2/Redo11.log' TO GROUP 1,

'/DISK2/Redo21.log' TO GROUP 2;

� Modification d’emplacement � Modification d’emplacement 1. Arrêtez la base de données2. Copiez les fichiers de log en ligne vers un nouvel emplacement.3. Exécutez la commande ALTER DATABASE RENAME FILE en mode MOUNT.

1. Arrêtez la base de données2. Copiez les fichiers de log en ligne vers un nouvel emplacement.3. Exécutez la commande ALTER DATABASE RENAME FILE en mode MOUNT.

� Suppression des groupes : � Suppression des groupes :

� Suppression des membres des groupes : � Suppression des membres des groupes :

� Effacement des fichiers de journalisation : � Effacement des fichiers de journalisation :

ALTER DATABASE DROP LOGFILE GROUP 3;ALTER DATABASE DROP LOGFILE GROUP 3;

ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log';ALTER DATABASE DROP LOGFILE MEMBER '/DISK2/Redo21.log';

ALTER DATABASE CLEAR LOGFILE '/DISK1/Redo20.log';ALTER DATABASE CLEAR LOGFILE '/DISK1/Redo20.log';

Groupe 1Groupe 1

Redo10.log

Redo11.log

Groupe 2Groupe 2

Redo20.log

Redo21.log

Groupe 3Groupe 3

Redo30.log

Redo31.log

ALTER DATABASE RENAME FILE '/DISK2/Redo11.log' TO '/DISK3/Redo11.log';ALTER DATABASE RENAME FILE '/DISK2/Redo11.log' TO '/DISK3/Redo11.log';

D.BOUZIDI 76

Erreurs possibles du processus LGWR

Erreurs possibles du processus LGWR

� Un membre d'un groupe contenant au moins deux fichiers de journalisation n'est pas disponible.

� Tous les membres du groupe suivant ne sont pas disponibles.

� Tous les membres du groupe en cours ne sont pas disponibles.

� Un membre d'un groupe contenant au moins deux fichiers de journalisation n'est pas disponible.

� Tous les membres du groupe suivant ne sont pas disponibles.

� Tous les membres du groupe en cours ne sont pas disponibles.

Page 39: 92520231-dbOraclec

D.BOUZIDI 77

��V$THREAD : affiche les infos sur le fichier log courantV$THREAD : affiche les infos sur le fichier log courant

��V$LOG : donne les informations en lisant dans le fichier de contV$LOG : donne les informations en lisant dans le fichier de contrôle au rôle au

lieu de lire dans le dictionnaire de donnlieu de lire dans le dictionnaire de donnééeses

V$LOGFILE : Pour voir les noms des membres d'un groupe (V$LOGFILE : Pour voir les noms des membres d'un groupe (GROUP# est le numGROUP# est le numééro du groupe ro du groupe RedoRedo Log. Log. STATUS prend la valeur :STATUS prend la valeur :

INVALID si le fichier est inaccessible, INVALID si le fichier est inaccessible, STALE si le fichier est incomplet , STALE si le fichier est incomplet , DELETED si le fichier n'est plus utilisDELETED si le fichier n'est plus utiliséé et et VIDE si le fichier est en cours d'utilisation.VIDE si le fichier est en cours d'utilisation.

MEMBER est le nom du membre MEMBER est le nom du membre RedoRedo LogLog

V$LOG_HISTORY : contient des V$LOG_HISTORY : contient des inforsinfors concernant l'historique des concernant l'historique des fichiers fichiers redoredo àà partir du fichier de contrôle. Le maximum que peut retenir partir du fichier de contrôle. Le maximum que peut retenir la vue dla vue déépends du parampends du paramèètre tre MAXLOGHISTORYMAXLOGHISTORY. .

Obtenir des informationsObtenir des informations

Fichier de contrôle

D.BOUZIDI 78

Analyser les fichiers de journalisation en ligne

Analyser les fichiers de journalisation en ligne

� Suivi des modifications :

� dans la base de données,

� dans une table spécifique,

� relatives à un utilisateur particulier

� Application de modèles d'accès aux données.

� Annulation des modifications de la base de données.

� Utilisation des données archivées pour effectuer des opérations de réglage et planifier les capacités.

� Suivi des modifications :

� dans la base de données,

� dans une table spécifique,

� relatives à un utilisateur particulier

� Application de modèles d'accès aux données.

� Annulation des modifications de la base de données.

� Utilisation des données archivées pour effectuer des opérations de réglage et planifier les capacités.

Page 40: 92520231-dbOraclec

D.BOUZIDI 79

LogMinerLogMiner

� Le problème de ces fichiers c'est que l'on ne peut pas éditer le contenu aussi facilement

� Oracle a fournit un outil très pratique permettant d'analyser et d’auditer les actions effectuées sur la base : LogMiner

� Deux scripts sont utilisés pour l’installer : � <oracle home>/rdbms/admin/dbmslm.sql qui

installe le package DBMS_LOGMNR qui vous servira à analyser les REDO LOG, ainsi que des procédures, vues et tables publiques.

� <oracle home>/rdbms/admin/dbmslmd.sql qui installe le package DBMS_LOGMNR_D qui servira àconstruire le dictionnaire de données.

� Le problème de ces fichiers c'est que l'on ne peut pas éditer le contenu aussi facilement

� Oracle a fournit un outil très pratique permettant d'analyser et d’auditer les actions effectuées sur la base : LogMiner

� Deux scripts sont utilisés pour l’installer : � <oracle home>/rdbms/admin/dbmslm.sql qui

installe le package DBMS_LOGMNR qui vous servira à analyser les REDO LOG, ainsi que des procédures, vues et tables publiques.

� <oracle home>/rdbms/admin/dbmslmd.sql qui installe le package DBMS_LOGMNR_D qui servira àconstruire le dictionnaire de données.

D.BOUZIDI 80

Utiliser LogMinerUtiliser LogMiner� Création d’un Snapshot du DD (pour avoir les définitions

des objets présents dans la base de données)

� Création d’un Snapshot du DD (pour avoir les définitions des objets présents dans la base de données)

EXECUTE DBMS_LOGMNR_D.BUILD(‘monDictionnaire.ora', ‘/oracle/tmp/');EXECUTE DBMS_LOGMNR_D.BUILD(‘monDictionnaire.ora', ‘/oracle/tmp/');

Alter system SET utl_file_dir=‘/oracle/tmp/' SCOPE=spfile;Alter system SET utl_file_dir=‘/oracle/tmp/' SCOPE=spfile;

� Création d’un fichier de dictionnaire :� Création d’un fichier de dictionnaire :

� Initialiser le paramètre UTL_FILE_DIR : � Initialiser le paramètre UTL_FILE_DIR :

� Définition des fichiers de log à analyser en configurant la vue V$LOGMNR_CONTENTS (spécifie les fichiers log à analyser)

� Définition des fichiers de log à analyser en configurant la vue V$LOGMNR_CONTENTS (spécifie les fichiers log à analyser)

� Ajout d’autres fichiers à analyser à la liste :� Ajout d’autres fichiers à analyser à la liste :

� Initialisation d’une nouvelle liste et définition du premier fichier de log à analyser

� Initialisation d’une nouvelle liste et définition du premier fichier de log à analyser

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE);EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/Disk1/Redo20.log', DBMS_LOGMNR.ADDFILE);

� Suppression de fichiers log de la liste :� Suppression de fichiers log de la liste :

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/disk1/Redo20.log',DBMS_LOGMNR.REMOVEFILE);EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/disk1/Redo20.log',DBMS_LOGMNR.REMOVEFILE);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/Disk1/Redo10.log', DBMS_LOGMNR.NEW);EXECUTE DBMS_LOGMNR.ADD_LOGFILE(‘/Disk1/Redo10.log', DBMS_LOGMNR.NEW);

Page 41: 92520231-dbOraclec

D.BOUZIDI 81

Utiliser LogMinerUtiliser LogMiner� Lancement de l’analyse� Lancement de l’analyse

� Initialisation d’une session logMiner pour une période données: � Initialisation d’une session logMiner pour une période données:

� Initialisation d’une session logMiner : � Initialisation d’une session logMiner :

� Identification des modification apportées à une table� Identification des modification apportées à une table

EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>‘/tmp/monDictionnaire.ora');EXECUTE DBMS_LOGMNR.START_LOGMNR(DICTFILENAME=>‘/tmp/monDictionnaire.ora');

EXECUTE Dbms_Logmnr.Start_Logmnr(‘/oracle/temp/monDictionnaire.ora',

starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime

=> to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS'));

EXECUTE Dbms_Logmnr.Start_Logmnr(‘/oracle/temp/monDictionnaire.ora',

starttime =>to_date('01-Jan-2006 00:00:00','DD-MON-YYYY HH:MI:SS'),endtime

=> to_date('01-Jan-2006 10:00:00', 'DD-MON-YYYY HH:MI:SS'));

SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE

seg_name = 'EMP';

SELECT timestamp, username, sql_redo FROM v$logmnr_contents WHERE

seg_name = 'EMP';

� Arrêt de la session logMiner� Arrêt de la session logMiner

EXECUTE DBMS_LOGMNR.END_LOGMNR;EXECUTE DBMS_LOGMNR.END_LOGMNR;

D.BOUZIDI 82

Obtenir des informations sur les fichiers de journalisation à analyser

Obtenir des informations sur les fichiers de journalisation à analyser

� V$LOGMNR_DICTIONARY : contient les infos sur le dictionnaire de données de LogMiner.

� V$LOGMNR_PARAMETERS : contient les infos concernant la session LogMiner en cours.

� V$LOGMNR_CONTENTS : contient les infos issues des fichiers REDO LOG.

� V$LOGMNR_LOGS : contient les infos sur tous les fichiers REDO LOG qui ont été ajoutés pour cette session

� V$LOGMNR_DICTIONARY : contient les infos sur le dictionnaire de données de LogMiner.

� V$LOGMNR_PARAMETERS : contient les infos concernant la session LogMiner en cours.

� V$LOGMNR_CONTENTS : contient les infos issues des fichiers REDO LOG.

� V$LOGMNR_LOGS : contient les infos sur tous les fichiers REDO LOG qui ont été ajoutés pour cette session

Il existe 4 vues dynamiques liées à notre session LogMiner(celles-ci n'existent que pendant notre session LogMiner)

Il existe 4 vues dynamiques liées à notre session LogMiner(celles-ci n'existent que pendant notre session LogMiner)

Page 42: 92520231-dbOraclec

Gestion des structures de stockages

Hiérarchie de stockage de la base de données

Base dedonnées

Logique Physique

TablespaceFichier

de données

Segment

Extent

Bloc Oracle Bloc OS

Page 43: 92520231-dbOraclec

Hiérarchie de stockage de la base de données

� Une base données est composée d’un ensemble d’unités logiques appelées TABLESPACE.

� Un TABLESPACE est composé d'au moins un DATAFILE, c'est à dire un fichier de données qui est physiquement présent sur le serveur à l'endroit stipulélors de sa création.

� Chaque DATAFILE est constitué de SEGMENTS

� Un segment est d'au moins un EXTENT (ou page)

� L'extent est un groupe de BLOCS contigus pouvant accueillir des données, il est constitué d'au moins 3 blocs

� Le bloc est le plus petit élément de stockage d'une base de données

� Une base données est composée d’un ensemble d’unités logiques appelées TABLESPACE.

� Un TABLESPACE est composé d'au moins un DATAFILE, c'est à dire un fichier de données qui est physiquement présent sur le serveur à l'endroit stipulélors de sa création.

� Chaque DATAFILE est constitué de SEGMENTS

� Un segment est d'au moins un EXTENT (ou page)

� L'extent est un groupe de BLOCS contigus pouvant accueillir des données, il est constitué d'au moins 3 blocs

� Le bloc est le plus petit élément de stockage d'une base de données

Les tablespaces

� Une base données mémorisée dans une ou plusieurs unités

logiques appelées TABLESPACE.

� Cette organisation permet à l’administrateur de :

� Contrôler l’allocation d’espace disque

� Assigner des quotas de ressource disque aux utilisateurs

� Contrôler la disponibilité des données en rendant les tablespaces online ou offline

� Constituer des unités de sauvegarde ou de restauration partielle de la base

� Répartir les zones de stockage entre plusieurs disques pour accroître les performances

� Une base données mémorisée dans une ou plusieurs unités

logiques appelées TABLESPACE.

� Cette organisation permet à l’administrateur de :

� Contrôler l’allocation d’espace disque

� Assigner des quotas de ressource disque aux utilisateurs

� Contrôler la disponibilité des données en rendant les tablespaces online ou offline

� Constituer des unités de sauvegarde ou de restauration partielle de la base

� Répartir les zones de stockage entre plusieurs disques pour accroître les performances

Page 44: 92520231-dbOraclec

Quelques types de tablespaces� Tablespace SYSTEM:

� Créé lors de la création de la base de données (avec l’ordre CREATE DATABASE)

� Contient : les tables du dictionnaire de données, les procédures, les fonctions, les packages, les triggers

� Tablespace TEMP :

� Contient : les segments temporaires utilisés par Oracle lors d’opérations de tri (SORT_AREA_SIZE insuffisante), de création d’index et de tables temporaires,…

� Chaque BD doit comporter un tablespace temporaire affecté aux utilisateurs comme tablespace temporaire (si aucun tablespace temporaire n'est désigné lors de la création du compte, Oracle affecte ce tablespace à l'utilisateur

� On peut désigner un tablespace temporaire pour un utilisateur donné

� Tablespace USERS :

� Contient : les segments de données utilisateurs (tables,clusters, index,…)

� On peut définir #ts tablespaces USERS pour séparer les différentes applications

� Tablespace UNDO :

� Réservé à l'annulation des commandes DDL (UPDATE, INSERT, etc...). Lors d’une suppression par exemple, ORACLE copie les lignes à supprimer dans le tablespaceUNDO et ensuite indique que les blocs contenant les données dans le tablespaced'origine sont libres (le paramètre undo_tablespace, undo_management)

� Tablespace SYSTEM:

� Créé lors de la création de la base de données (avec l’ordre CREATE DATABASE)

� Contient : les tables du dictionnaire de données, les procédures, les fonctions, les packages, les triggers

� Tablespace TEMP :

� Contient : les segments temporaires utilisés par Oracle lors d’opérations de tri (SORT_AREA_SIZE insuffisante), de création d’index et de tables temporaires,…

� Chaque BD doit comporter un tablespace temporaire affecté aux utilisateurs comme tablespace temporaire (si aucun tablespace temporaire n'est désigné lors de la création du compte, Oracle affecte ce tablespace à l'utilisateur

� On peut désigner un tablespace temporaire pour un utilisateur donné

� Tablespace USERS :

� Contient : les segments de données utilisateurs (tables,clusters, index,…)

� On peut définir #ts tablespaces USERS pour séparer les différentes applications

� Tablespace UNDO :

� Réservé à l'annulation des commandes DDL (UPDATE, INSERT, etc...). Lors d’une suppression par exemple, ORACLE copie les lignes à supprimer dans le tablespaceUNDO et ensuite indique que les blocs contenant les données dans le tablespaced'origine sont libres (le paramètre undo_tablespace, undo_management)

ALTER USER scott TEMPORARY TABLESPACE temp01; ALTER USER scott TEMPORARY TABLESPACE temp01;

CREATE DATABASE <NomBase>... DEFAULT TEMPORARY TABLESPACE temp01;CREATE DATABASE <NomBase>... DEFAULT TEMPORARY TABLESPACE temp01;

CREATE UNDO TABLESPACE undotbs

DATAFILE '<oracle_Home>\oradata\orcl\undotbs.dbf' size 100M;

CREATE UNDO TABLESPACE undotbs

DATAFILE '<oracle_Home>\oradata\orcl\undotbs.dbf' size 100M;

Création de tablespaces

CREATE TABLESPACE app_data

DATAFILE '/DISK1/app_data_01.dbf‘ SIZE 100M,

'/DISK2/app data_ 02.dbf‘ SIZE 100M

DEFAULT STORAGE ( INITIAL 500K

NEXT 500K

MAXEXTENTS 500

PCTINCREASE 0 );

CREATE TABLESPACE app_data

DATAFILE '/DISK1/app_data_01.dbf‘ SIZE 100M,

'/DISK2/app data_ 02.dbf‘ SIZE 100M

DEFAULT STORAGE ( INITIAL 500K

NEXT 500K

MAXEXTENTS 500

PCTINCREASE 0 );

o INITIAL : Définit la taille du premier extent (Par défaut

5*DB_BLOCK_SIZE)

o NEXT se rapporte à la taille de l'extent suivant.

o MINEXTENTS exprime le nombre d'extents alloués lors de la création

du segment (Par défault 1).

o MAXEXTEBTS est le nombre maximal d’extents pouvant être allouées à

un segment

o PCTINCREASE définie le pourcentage de croissance de la taille du

segment suivant

o INITIAL : Définit la taille du premier extent (Par défaut

5*DB_BLOCK_SIZE)

o NEXT se rapporte à la taille de l'extent suivant.

o MINEXTENTS exprime le nombre d'extents alloués lors de la création

du segment (Par défault 1).

o MAXEXTEBTS est le nombre maximal d’extents pouvant être allouées à

un segment

o PCTINCREASE définie le pourcentage de croissance de la taille du

segment suivant

Page 45: 92520231-dbOraclec

Gestion de l’espace dans les tablespaces� A la création d'un objet (par exemple une table), ORACLE crée un extent .

Lors de remplissage (ajout/modification), Oracle rempli les blocs de données qui constituent l'extent jusqu'à remplir l'extent entièrement et crée un nouvel extent si le précédent est plein

� Deux modes de gestion de l’espace :

� Tablespaces gérés par le dictionnaire de données:

� ORACLE stocke les informations relatives à l'allocation d'espace dans le dictionnaire de données

� Ceci induit une charge supplémentaire pour toutes les opérations sur les objets d'un tablespace. L’administrateur doit bien dimensionner la taille des extents pour éviter une fragmentation excessive

� Tablespaces gérés localement (locally managed ) :

� Les informations sont stockées au niveaux des entêtes des tablespaces, ceci évite des accès intempestifs au dictionnaire de données (option définit par défaut à partir de la version 9i)

� Deux modes de gestion des extents :

� Le mode UNIFORM impose à Oracle de créer des extents de taille

identique. Ce mode n’est pas utilisé pour un tablespace d’annulation

� Le mode AUTOALLOCATE demande de créer des extents de plus en plus grands avec le nombre d'extents créés. Ce mode ne peut être utilisé pour un tablespace temporaire

� A la création d'un objet (par exemple une table), ORACLE crée un extent . Lors de remplissage (ajout/modification), Oracle rempli les blocs de données qui constituent l'extent jusqu'à remplir l'extent entièrement et crée un nouvel extent si le précédent est plein

� Deux modes de gestion de l’espace :

� Tablespaces gérés par le dictionnaire de données:

� ORACLE stocke les informations relatives à l'allocation d'espace dans le dictionnaire de données

� Ceci induit une charge supplémentaire pour toutes les opérations sur les objets d'un tablespace. L’administrateur doit bien dimensionner la taille des extents pour éviter une fragmentation excessive

� Tablespaces gérés localement (locally managed ) :

� Les informations sont stockées au niveaux des entêtes des tablespaces, ceci évite des accès intempestifs au dictionnaire de données (option définit par défaut à partir de la version 9i)

� Deux modes de gestion des extents :

� Le mode UNIFORM impose à Oracle de créer des extents de taille

identique. Ce mode n’est pas utilisé pour un tablespace d’annulation

� Le mode AUTOALLOCATE demande de créer des extents de plus en plus grands avec le nombre d'extents créés. Ce mode ne peut être utilisé pour un tablespace temporaire

Gestion de l’espace dans les tablespaces

CREATE TABLESPACE user_data

DATAFILE '/DISK2/user_data_01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 10M;

CREATE TABLESPACE user_data

DATAFILE '/DISK2/user_data_01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 10M;

CREATE TEMPORARY TABLESPACE temp

TEMPFILE '/DISK2/temp_01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 10M;

CREATE TEMPORARY TABLESPACE temp

TEMPFILE '/DISK2/temp_01.dbf' SIZE 500M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 10M;

� Création de tablespace temporaire géré localement � Création de tablespace temporaire géré localement

� Modification des paramètres de stockage� Modification des paramètres de stockage

ALTER TABLESPACE app_data

MINIMUM EXTENT 2M;

ALTER TABLESPACE app_data

MINIMUM EXTENT 2M;

ALTER TABLESPACE app_data

DEFAULT STORAGE (

INITIAL 2M

NEXT 2M

MAXEXTENTS 999 );

ALTER TABLESPACE app_data

DEFAULT STORAGE (

INITIAL 2M

NEXT 2M

MAXEXTENTS 999 );

� On peut modifier un ensemble de paramètres � On peut modifier un ensemble de paramètres

Page 46: 92520231-dbOraclec

Statut d’un tablespace

ALTER TABLESPACE app_data ONLINE;ALTER TABLESPACE app_data ONLINE;

� Tablespace "offline" non disponible pour accéder aux données

� Certains tablespaces doivent être "online" :

� SYSTEM,

� tablespaces contenant des segments d'annulation actifs.

� Pour mettre un tablespace "offline" :

� Pour mettre un tablespace "online" :

� Tablespace "offline" non disponible pour accéder aux données

� Certains tablespaces doivent être "online" :

� SYSTEM,

� tablespaces contenant des segments d'annulation actifs.

� Pour mettre un tablespace "offline" :

� Pour mettre un tablespace "online" :

ALTER TABLESPACE app_data OFFLINE;ALTER TABLESPACE app_data OFFLINE;

� Tablespace disponible pour des opérations de lecture (Impossible de supprimer les objets du tablespace)

� Pour créer un tablespace en lecture seule sur un lecteur non réinscriptible :

� ALTER TABLESPACE…READ ONLY;

� Placez le fichier de données sur le lecteur non réinscriptible

� ALTER TABLESPACE…RENAME DATAFILE…;

� Tablespace disponible pour des opérations de lecture (Impossible de supprimer les objets du tablespace)

� Pour créer un tablespace en lecture seule sur un lecteur non réinscriptible :

� ALTER TABLESPACE…READ ONLY;

� Placez le fichier de données sur le lecteur non réinscriptible

� ALTER TABLESPACE…RENAME DATAFILE…;

Manipulation des tablespaces� Suppression :

� Tablespace supprimé du dictionnaire de données.

� Eventuellement, contenu supprimé du dictionnaire de données.

� Fichiers de système d'exploitation non supprimés.

� Suppression :

� Tablespace supprimé du dictionnaire de données.

� Eventuellement, contenu supprimé du dictionnaire de données.

� Fichiers de système d'exploitation non supprimés.

DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;DROP TABLESPACE app_data INCLUDING CONTENTS AND DATAFILES;

� Redimensionner un tablespace :

� Modification de la taille d'un fichier de données automatique

� Modification Manuellement

� Ajout d’un datafile

� Déplacement des datafiles

� Redimensionner un tablespace :

� Modification de la taille d'un fichier de données automatique

� Modification Manuellement

� Ajout d’un datafile

� Déplacement des datafiles

ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf'

SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

ALTER TABLESPACE app_data ADD DATAFILE '/DISK3/app_data_04.dbf'

SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

ALTER DATABASE

DATAFILE '/DISK5/app_data_02.dbf'

RESIZE 200M;

ALTER DATABASE

DATAFILE '/DISK5/app_data_02.dbf'

RESIZE 200M;

ALTER TABLESPACE app_data

ADD DATAFILE '/DISK5/app_data_03.dbf' SIZE 200M;

ALTER TABLESPACE app_data

ADD DATAFILE '/DISK5/app_data_03.dbf' SIZE 200M;

ALTER TABLESPACE app_data RENAME DATAFILE '/DISK3/app_data_01.dbf'

TO '/DISK5/app_data_01.dbf';

ALTER TABLESPACE app_data RENAME DATAFILE '/DISK3/app_data_01.dbf'

TO '/DISK5/app_data_01.dbf';

Page 47: 92520231-dbOraclec

D.BOUZIDI 93

Types de segmentTypes de segment

� On distingue cinq types de segments :

1. Les segments de données

� Ils servent à stocker les données des tables utilisateurs et système

� Chaque table a un et un seul segment qui est crée automatiquement lors de la création de la table.

� On distingue cinq types de segments :

1. Les segments de données

� Ils servent à stocker les données des tables utilisateurs et système

� Chaque table a un et un seul segment qui est crée automatiquement lors de la création de la table.

2. Les segments d’index

� Servent à stocker les données d’index. Ces données peuvent donc être stockées dans un tablespace distinct des données des tables.

� Un segment d’index est créé automatiquement lors de la création de l’index. On peut préciser lors de la création d’un index, le tablespace dans lequel sera créé le segment.

2. Les segments d’index

� Servent à stocker les données d’index. Ces données peuvent donc être stockées dans un tablespace distinct des données des tables.

� Un segment d’index est créé automatiquement lors de la création de l’index. On peut préciser lors de la création d’un index, le tablespace dans lequel sera créé le segment.

D.BOUZIDI 94

Types de segmentTypes de segment� On distingue cinq types de segments :

3. Les segments temporaires

� Utilisés par Oracle pour le traitement des requêtes SQL nécessitant un espace disque temporaire.

� Les segments temporaires sont créés en cas de besoin et supprimés après l’exécution de la commande.

� Le tablespace dans lequel sont crées ces segments est défini lors de la création et modification d’un utilisateur. Si ce tablespace n’est pas défini, alors c’est le tablespace SYSTEM qui est utilisé par défaut.

� On distingue cinq types de segments :

3. Les segments temporaires

� Utilisés par Oracle pour le traitement des requêtes SQL nécessitant un espace disque temporaire.

� Les segments temporaires sont créés en cas de besoin et supprimés après l’exécution de la commande.

� Le tablespace dans lequel sont crées ces segments est défini lors de la création et modification d’un utilisateur. Si ce tablespace n’est pas défini, alors c’est le tablespace SYSTEM qui est utilisé par défaut.

4. Le segment d’amorçage (BOOTSTRAP)

� Ce segment est créé dans le tablespace SYSTEM. Il contient les définitions des objets du dictionnaire de données qui sont chargées lors de l’ouverture de la base

5. Les segments d’annulation (ROLLBACK)

� Ces segments (rollback segments) contiennent les données avant modification due à une transaction. Ils permettent d’annuler leur effet en cas de besoin.

4. Le segment d’amorçage (BOOTSTRAP)

� Ce segment est créé dans le tablespace SYSTEM. Il contient les définitions des objets du dictionnaire de données qui sont chargées lors de l’ouverture de la base

5. Les segments d’annulation (ROLLBACK)

� Ces segments (rollback segments) contiennent les données avant modification due à une transaction. Ils permettent d’annuler leur effet en cas de besoin.

Page 48: 92520231-dbOraclec

D.BOUZIDI 95

Notion d’extent et de blocNotion d’extent et de bloc

� Une extent est un ensemble contigu de blocs logiques alloués à un segment.

� Tout segment est initialement créé avec un extent initiale (initial extent).

� Une extent est un ensemble contigu de blocs logiques alloués à un segment.

� Tout segment est initialement créé avec un extent initiale (initial extent).

� Allocation lorsque le segment est créé, étendu ou modifié.

� Libération lorsque le segment est supprimé, modifié, tronqué,

� Allocation lorsque le segment est créé, étendu ou modifié.

� Libération lorsque le segment est supprimé, modifié, tronqué,

� Notion d’extents :

� Notion de bloc :

� Unité minimum d'entrée/sortie

� Constitué d'un ou de plusieurs blocs de système d'exploitation

� Défini par DB_BLOCK_SIZE

� Défini lors de la création de la base de données

� Unité minimum d'entrée/sortie

� Constitué d'un ou de plusieurs blocs de système d'exploitation

� Défini par DB_BLOCK_SIZE

� Défini lors de la création de la base de données

D.BOUZIDI 96

Contenu d'un bloc de base de données

Contenu d'un bloc de base de données

EnEn--tête (@ du bloc, tête (@ du bloc,

type de segment,type de segment,……))

Espace libre : utilisEspace libre : utiliséé pour pour

ll’’insertion de nouvelles lignesinsertion de nouvelles lignes

ou mise ou mise àà jours njours néécessitant cessitant

dd’’espace sup.espace sup.

DonnDonnéées : lorsques : lorsqu’’une ligne ne une ligne ne

peut tenir sur un seul bloc elle peut tenir sur un seul bloc elle

est stockest stockéée dans deux ou +e dans deux ou +iersiers

Blocs (Blocs (blocsblocs chachaîînnéés)s)

Page 49: 92520231-dbOraclec

D.BOUZIDI 97

Paramètres d'utilisation de l'espace de bloc

Paramètres d'utilisation de l'espace de bloc

INITRANSINITRANS

MAXTRANSMAXTRANS

PCTFREEPCTFREE

PCTUSEDPCTUSED

La gestion de l’espace libre d’un bloc logique se fait en fonction des valeurs des paramètres PCTFREE et PCTUSED.

� PCTFREE fixe le % d’espace du bloc qui doit être maintenu constamment libre. Sa valeur par défaut est 10%.

� Quand un bloc ne peut être utilisé car la valeur PCTFREE de lui interdit, on ne pourra recommencer à le remplir que si l’espace occupé est en % descend en dessous de la valeur PCTUSED. Sa valeur par défaut est 40%.

La gestion de l’espace libre d’un bloc logique se fait en fonction des valeurs des paramètres PCTFREE et PCTUSED.

� PCTFREE fixe le % d’espace du bloc qui doit être maintenu constamment libre. Sa valeur par défaut est 10%.

� Quand un bloc ne peut être utilisé car la valeur PCTFREE de lui interdit, on ne pourra recommencer à le remplir que si l’espace occupé est en % descend en dessous de la valeur PCTUSED. Sa valeur par défaut est 40%.

D.BOUZIDI 98

Utilisation de l'espace de blocUtilisation de l'espace de bloc

InsertionsInsertions

InsertionsInsertions

PCTFREE=20PCTFREE=20

PCTUSED=40PCTUSED=40

80 %80 %

80 %80 %

40 %40 %

InsertionsInsertions

3

21

3

InsertionsInsertions

Page 50: 92520231-dbOraclec

D.BOUZIDI 99

Vues du dictionnaire de donnéesVues du dictionnaire de données

� Informations de tablespace :

� DBA_TABLESPACES

� V$TABLESPACE

� DBA_TABLESPACE_USAGE_METRICS

� Informations de fichier de données :

� DBA_DATA_FILES

� DBA_TABLES

� V$DATAFILE

� Informations de fichier temporaire :

� DBA_TEMP_FILES

� V$TEMPFILE

� Informations sur les segments :

� DBA_SEGMENTS

� Informations sur les extents :

� DBA_EXTENTS (Extents utilisés)

� DBA_FREE_SPACE (Extents libres)

� Informations de tablespace :

� DBA_TABLESPACES

� V$TABLESPACE

� DBA_TABLESPACE_USAGE_METRICS

� Informations de fichier de données :

� DBA_DATA_FILES

� DBA_TABLES

� V$DATAFILE

� Informations de fichier temporaire :

� DBA_TEMP_FILES

� V$TEMPFILE

� Informations sur les segments :

� DBA_SEGMENTS

� Informations sur les extents :

� DBA_EXTENTS (Extents utilisés)

� DBA_FREE_SPACE (Extents libres)

Administration des utilisateurs

Page 51: 92520231-dbOraclec

D.BOUZIDI 101

Compte utilisateur Compte utilisateur

� Pour créer un utilisateur, l'administrateur doit affecter un profil, choisir une technique d'authentification et affecter des tablespaces

� Un nom utilisateur unique ou login (< 30 caractères, pas de caractères spéciaux et doit commencer par une lettre)

� Une méthode d’authentification : Autre l’authentification par mot de passe ORACLE fait l’authentification par certificats, par biométrie et par système tier

� Un tablespace par défaut : emplacement par défaut où l'utilisateur mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui accorder les privilèges et les quotas nécessaires pour qu’il puisse créer des objets)

� Un tablespace temporaire : emplacement dans lequel l'utilisateur peut créer des objets temporaires, tels que des tris et des tables temporaires

� Un profil utilisateur : c’est l’ensemble de restrictions de ressources concernant

� l’utilisation de la base de données

� et le mot de passe affecté à l'utilisateur (longueur, période d’expiration, …)

� Pour créer un utilisateur, l'administrateur doit affecter un profil, choisir une technique d'authentification et affecter des tablespaces

� Un nom utilisateur unique ou login (< 30 caractères, pas de caractères spéciaux et doit commencer par une lettre)

� Une méthode d’authentification : Autre l’authentification par mot de passe ORACLE fait l’authentification par certificats, par biométrie et par système tier

� Un tablespace par défaut : emplacement par défaut où l'utilisateur mettra ses objets s'il n'indique pas d'autre tablespace (il faut lui accorder les privilèges et les quotas nécessaires pour qu’il puisse créer des objets)

� Un tablespace temporaire : emplacement dans lequel l'utilisateur peut créer des objets temporaires, tels que des tris et des tables temporaires

� Un profil utilisateur : c’est l’ensemble de restrictions de ressources concernant

� l’utilisation de la base de données

� et le mot de passe affecté à l'utilisateur (longueur, période d’expiration, …)

D.BOUZIDI 102

Profil utilisateur Profil utilisateur � Le contrôle de l’utilisation de la BD :

� CPU : exprimé par session ou par appel

� CPU/Session (exprimé en centièmes de secondes) : pour une valeur égale à 1000, un utilisateur, qui consomme plus de 10 secondes de temps de CPU, sera déconnecté.

� CPU/Call : au lieu de limiter la session globale d’un utilisateur, on empêche que la commande qui consomme plus des ressources CPU de l’utilisateur

� Network/Memory : une session utilisateur consomme des ressources réseau et mémoire, on peut donc gérer :

� Nombre de minutes pendant lesquelles un utilisateur peut être connecté avant d'être automatiquement déconnecté (Connect Time).

� Nombre de minutes pendant lesquelles une session utilisateur peut rester inactive avant d'être automatiquement déconnectée (Idle Time).

� Nombre de sessions simultanées pouvant être créées à l'aide d'un

compte utilisateur de base de données.

� Private SGA : limite la quantité d'espace consommé dans la mémoire pour le tri, création d’index, etc.

� Disk I/O : limite la quantité de données qu'un utilisateur peut lire, par session ou par appel.

� Le contrôle de l’utilisation de la BD :

� CPU : exprimé par session ou par appel

� CPU/Session (exprimé en centièmes de secondes) : pour une valeur égale à 1000, un utilisateur, qui consomme plus de 10 secondes de temps de CPU, sera déconnecté.

� CPU/Call : au lieu de limiter la session globale d’un utilisateur, on empêche que la commande qui consomme plus des ressources CPU de l’utilisateur

� Network/Memory : une session utilisateur consomme des ressources réseau et mémoire, on peut donc gérer :

� Nombre de minutes pendant lesquelles un utilisateur peut être connecté avant d'être automatiquement déconnecté (Connect Time).

� Nombre de minutes pendant lesquelles une session utilisateur peut rester inactive avant d'être automatiquement déconnectée (Idle Time).

� Nombre de sessions simultanées pouvant être créées à l'aide d'un

compte utilisateur de base de données.

� Private SGA : limite la quantité d'espace consommé dans la mémoire pour le tri, création d’index, etc.

� Disk I/O : limite la quantité de données qu'un utilisateur peut lire, par session ou par appel.

Page 52: 92520231-dbOraclec

D.BOUZIDI 103

Profil utilisateur Profil utilisateur � Contrôle de l’authentification :

� L’authentification permet de vérifier l’identité d’une entité qui souhaite utiliser les ressources de la base de données :

� Ce mécanisme permet d’établir une relation de confiance pour les interactions ultérieures.

� La responsabilité : permettant de lier l’accès et des actions à des entités spécifiques.

� Trois technique d’authentification:

� Password (Authentification par la base de données) : crée chaque utilisateur avec un mot de passe associé qui doit être fourni lorsde la connexion (ex: CREATE USER scott IDENTIFIED by tiger;)

� External (Authentification par le système d’exploitation) : ce mode l’authentification repose sur celle définie par l’OS. Aucun mot de passe de base de données n'est utilisé pour ce type de connexion. (ex:

CREATE USER OPS$NomUser IDENTIFIED EXTERNALLY; )� Global (Authentification globale) : permet de renforcer

l’authentification via d’autre systèmes comme l'identification des utilisateurs via la biométrie, les certificats x509, les systèmes tiers et Oracle Internet Directory. Avantage fait une seul authentification

� Lorsqu'un utilisateur est créé, son statut peut être verrouillé ou déverrouillé. Si un compte utilisateur verrouillé, ne peut être utilisé pour se connecter à la base de données.

� Les comptes des nouveaux utilisateurs sont verrouillés par défaut

� Contrôle de l’authentification :

� L’authentification permet de vérifier l’identité d’une entité qui souhaite utiliser les ressources de la base de données :

� Ce mécanisme permet d’établir une relation de confiance pour les interactions ultérieures.

� La responsabilité : permettant de lier l’accès et des actions à des entités spécifiques.

� Trois technique d’authentification:

� Password (Authentification par la base de données) : crée chaque utilisateur avec un mot de passe associé qui doit être fourni lorsde la connexion (ex: CREATE USER scott IDENTIFIED by tiger;)

� External (Authentification par le système d’exploitation) : ce mode l’authentification repose sur celle définie par l’OS. Aucun mot de passe de base de données n'est utilisé pour ce type de connexion. (ex:

CREATE USER OPS$NomUser IDENTIFIED EXTERNALLY; )� Global (Authentification globale) : permet de renforcer

l’authentification via d’autre systèmes comme l'identification des utilisateurs via la biométrie, les certificats x509, les systèmes tiers et Oracle Internet Directory. Avantage fait une seul authentification

� Lorsqu'un utilisateur est créé, son statut peut être verrouillé ou déverrouillé. Si un compte utilisateur verrouillé, ne peut être utilisé pour se connecter à la base de données.

� Les comptes des nouveaux utilisateurs sont verrouillés par défaut

D.BOUZIDI 104

Tablespaces et de schémas Tablespaces et de schémas � Tablespace :

� Un tablespace par défaut est le tablespace dans lequel les objets sont créés si aucun tablespace n'est désigné lors de la création de l'objet

� Si on a pas choisi de tablespace par défaut, le tablespace permanent par défaut défini par le système est utilisé

� Si on n’a pas indiqué de tablespace temporaire, celui défini par le système est utilisé

� Schéma :� L'ensemble des objets appartenant à un utilisateur est appelé schéma (Tables,

Déclencheurs, Index, Vues, Séquences, Types de données définis par l'utilisateur, …)

� Lors de la création d'un utilisateur de base de données, un schéma correspondant portant le même nom est créé pour cet utilisateur

� Les objets du même schéma peuvent résider dans différents tablespaces et un tablespace peut contenir des objets de différents schémas

� Un utilisateur ne peut être associé qu'à un seul schéma, le nom utilisateur et le

schéma sont souvent utilisés de manière interchangeable.

� Pour accèder aux objets de l’utilisateur user01 (si on a le droit) on précede le nom de l’objet par le nom de l’utilisateur (equi au nom du schéma)

� Tablespace :

� Un tablespace par défaut est le tablespace dans lequel les objets sont créés si aucun tablespace n'est désigné lors de la création de l'objet

� Si on a pas choisi de tablespace par défaut, le tablespace permanent par défaut défini par le système est utilisé

� Si on n’a pas indiqué de tablespace temporaire, celui défini par le système est utilisé

� Schéma :� L'ensemble des objets appartenant à un utilisateur est appelé schéma (Tables,

Déclencheurs, Index, Vues, Séquences, Types de données définis par l'utilisateur, …)

� Lors de la création d'un utilisateur de base de données, un schéma correspondant portant le même nom est créé pour cet utilisateur

� Les objets du même schéma peuvent résider dans différents tablespaces et un tablespace peut contenir des objets de différents schémas

� Un utilisateur ne peut être associé qu'à un seul schéma, le nom utilisateur et le

schéma sont souvent utilisés de manière interchangeable.

� Pour accèder aux objets de l’utilisateur user01 (si on a le droit) on précede le nom de l’objet par le nom de l’utilisateur (equi au nom du schéma)

CREATE USER user01 identified by PWDuser01

DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users;

CREATE USER user01 identified by PWDuser01

DEFAULT TABLESPACE tbs_users TEMPORARY TABLESPACE tmp_users;

Select * from user01.nomTable;Select * from user01.nomTable;

Page 53: 92520231-dbOraclec

D.BOUZIDI 105

Privilèges Privilèges � Par défaut, lorsqu'un utilisateur est créé, aucun privilège ne

lui est accordé, il ne peut effectuer aucune opération dans la base de données.

� Si l'utilisateur ne dispose d'aucun quota dans aucun tablespace, il ne pourra pas créer d'objets.

� Deux types de privilège :

� Système :

� Accordé par l'administrateur ou par quelqu'un à qui la permission d'administrer le privilège a été accordé,

� Permet aux utilisateurs d'effectuer des actions particulières dans la base de données (par exemple créer des Tablespaces).

� Objet :

� permet aux utilisateurs d'accéder à un objet spécifique et de le manipuler (table, sequence, …)

� Sans permission spécifique, les utilisateurs ne peuvent accéder qu'àleurs propres objets.

� Les privilèges objet peuvent être accordés par

� le propriétaire d'un objet,

� l'administrateur

� à qui la permission d'accorder des privilèges sur l'objet a étéaccordée explicitement.

� Par défaut, lorsqu'un utilisateur est créé, aucun privilège ne lui est accordé, il ne peut effectuer aucune opération dans la base de données.

� Si l'utilisateur ne dispose d'aucun quota dans aucun tablespace, il ne pourra pas créer d'objets.

� Deux types de privilège :

� Système :

� Accordé par l'administrateur ou par quelqu'un à qui la permission d'administrer le privilège a été accordé,

� Permet aux utilisateurs d'effectuer des actions particulières dans la base de données (par exemple créer des Tablespaces).

� Objet :

� permet aux utilisateurs d'accéder à un objet spécifique et de le manipuler (table, sequence, …)

� Sans permission spécifique, les utilisateurs ne peuvent accéder qu'àleurs propres objets.

� Les privilèges objet peuvent être accordés par

� le propriétaire d'un objet,

� l'administrateur

� à qui la permission d'accorder des privilèges sur l'objet a étéaccordée explicitement.

D.BOUZIDI 106

Privilèges Privilèges

� DROP ANY object : le privilège DROP ANY autorise l'utilisateur à supprimer des objets qui ne lui appartiennent pas

� CREATE, MANAGE, DROP, ALTER TABLESPACE : les utilisateurs qui ne sont pas administrateurs ne doivent généralement pas pouvoir contrôler les tablespaces.

� GRANT ANY OBJECT PRIVILEGE : ce privilège autorise les utilisateurs à accorder des permissions sur des objets qui ne

leur appartiennent pas.

� ALTER DATABASE et ALTER SYSTEM : les utilisateurs qui ne sont pas administrateurs ne doivent généralement pas être autorisés à modifier la base de données ou l'instance.

� DROP ANY object : le privilège DROP ANY autorise l'utilisateur à supprimer des objets qui ne lui appartiennent pas

� CREATE, MANAGE, DROP, ALTER TABLESPACE : les utilisateurs qui ne sont pas administrateurs ne doivent généralement pas pouvoir contrôler les tablespaces.

� GRANT ANY OBJECT PRIVILEGE : ce privilège autorise les utilisateurs à accorder des permissions sur des objets qui ne

leur appartiennent pas.

� ALTER DATABASE et ALTER SYSTEM : les utilisateurs qui ne sont pas administrateurs ne doivent généralement pas être autorisés à modifier la base de données ou l'instance.

Page 54: 92520231-dbOraclec

D.BOUZIDI 107

Exemples de privilèges Exemples de privilèges

CREATE TABLESPACEALTER TABLESPACEDROP TABLESPACEUNLIMITED TABLESPACE

TABLESPACE

CREATE SESSIONALTER SESSIONRESTRICTED SESSION

SESSION

CREATE TABLECREATE ANY TABLEALTER ANY TABLEDROP ANY TABLESELECT ANY TABLEUPDATE ANY TABLEDELETE ANY TABLE

TABLE

CREATE ANY INDEXALTER ANY INDEXDROP ANY INDEX

INDEX

ExemplesCatégorie

EXECUTEProcédure

DELETE, INSERT, SELECT, UPDATE

vue

ALTER, SELECTSéquence

ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE

Table

PrivilègesOBJET

� Privilèges Objet � Privilèges Objet

� Privilèges système � Privilèges système

D.BOUZIDI 108

Affectation de quotas Affectation de quotas � Un quota est une allocation d'espace dans un tablespace

donné.

� Par défaut, un utilisateur ne dispose d'aucun quota sur aucun des tablespaces.

� Trois options pour affecter un quota utilisateur

� Unlimited : permet à l'utilisateur d'employer tout l'espace disponible dans le tablespace.

� Valeur : indique l'espace pouvant être employé par l'utilisateur. Cette valeur ne garantit cependant pas que l'espace est réservépour l'utilisateur. Elle peut être supérieure ou inférieure à l'espace actuellement disponible dans le tablespace.

� Privilège système UNLIMITED TABLESPACE : remplace tous les quotas individuels sur les tablespaces et accorde à l'utilisateur un quota illimité sur tous les tablespaces

� Un quota est une allocation d'espace dans un tablespacedonné.

� Par défaut, un utilisateur ne dispose d'aucun quota sur aucun des tablespaces.

� Trois options pour affecter un quota utilisateur

� Unlimited : permet à l'utilisateur d'employer tout l'espace disponible dans le tablespace.

� Valeur : indique l'espace pouvant être employé par l'utilisateur. Cette valeur ne garantit cependant pas que l'espace est réservépour l'utilisateur. Elle peut être supérieure ou inférieure à l'espace actuellement disponible dans le tablespace.

� Privilège système UNLIMITED TABLESPACE : remplace tous les quotas individuels sur les tablespaces et accorde à l'utilisateur un quota illimité sur tous les tablespaces

ALTER USER user01

QUOTA 10M ON AppData;

ALTER USER user01

QUOTA 10M ON AppData;

Page 55: 92520231-dbOraclec

D.BOUZIDI 109

Manipulation des comptes user Manipulation des comptes user � Création d’un utilisateur:

� Modification des paramètres utilisateur :

� Suppression d’un utilisateur :

Option cascade : Si le schéma contient des tables, Oracle effacera alors toute les contraintes d'intégrités des tables et toutes les contraintes d'intégrités dans les schémas d'autres utilisateurs qui faisaient références aux contraintes UNIQUE et PRIMARY

KEY du schéma qui est en cours de suppression

� Les vues principales permettant de surveiller des utilisateurs

� dba_users et dba_TS_Quotas

� Création d’un utilisateur:

� Modification des paramètres utilisateur :

� Suppression d’un utilisateur :

Option cascade : Si le schéma contient des tables, Oracle effacera alors toute les contraintes d'intégrités des tables et toutes les contraintes d'intégrités dans les schémas d'autres utilisateurs qui faisaient références aux contraintes UNIQUE et PRIMARY

KEY du schéma qui est en cours de suppression

� Les vues principales permettant de surveiller des utilisateurs

� dba_users et dba_TS_Quotas

ALTER USER user01 QUOTA 50M ON AppData;ALTER USER user01 QUOTA 50M ON AppData;

CREATE USER user01 IDENTIFIED BY PwdUser01

DEFAULT TABLESPACE AppData

TEMPORARY TABLESPACE temp

QUOTA 15M ON dAppDta

PASSWORD EXPIRE;

CREATE USER user01 IDENTIFIED BY PwdUser01

DEFAULT TABLESPACE AppData

TEMPORARY TABLESPACE temp

QUOTA 15M ON dAppDta

PASSWORD EXPIRE;

DROP USER peter;DROP USER peter;

DROP USER peter CASCADE;DROP USER peter CASCADE;

D.BOUZIDI 110

Les Rôles Les Rôles � Problèmes :

� Il est trop fastidieux d'accorder de manière individuelle les privilèges nécessaires à chaque utilisateur

� le risque d'erreur est trop important.

� Solution : utilisation des rôles

� Un rôle est un ensemble de privilèges pouvant être accordés à des utilisateurs ou à d'autres rôles.

� Un Rôle est utilisé pour administrer les privilèges de base de données

� On peut ajouter des privilèges à un rôle, puis accorder le rôle à un utilisateur,

� L'utilisateur peut alors activer le rôle et exercer les privilèges octroyés par ce rôle

� Problèmes :

� Il est trop fastidieux d'accorder de manière individuelle les privilèges nécessaires à chaque utilisateur

� le risque d'erreur est trop important.

� Solution : utilisation des rôles

� Un rôle est un ensemble de privilèges pouvant être accordés à des utilisateurs ou à d'autres rôles.

� Un Rôle est utilisé pour administrer les privilèges de base de données

� On peut ajouter des privilèges à un rôle, puis accorder le rôle à un utilisateur,

� L'utilisateur peut alors activer le rôle et exercer les privilèges octroyés par ce rôle

Page 56: 92520231-dbOraclec

D.BOUZIDI 111

Les caractéristiques des rôlesLes caractéristiques des rôles� Les privilèges sont accordés aux rôles (et révoqués) comme si le rôle

était un utilisateur.

� Les rôles peuvent être accordés aux utilisateurs ou à d'autres rôles (et révoqués) comme s'il s'agissait de privilèges

� Un rôle peut être constitué de privilèges système et objet.

� Un rôle peut être activé ou désactivé pour chaque utilisateur auquel le rôle est accordé.

� L'activation d'un rôle peut nécessiter un mot de passe.

� Les rôles n'appartiennent à personne et ne résident dans aucun schéma.

� Exemple :

� les privilèges SELECT et UPDATE sont accordés au rôle HR_CLERK sur la table EMP

� Les privilèges DELETE et INSERT sur la table EMP, ainsi que le rôle HR_CLERK, sont accordés au rôle HR_MGR

� Le rôle HR_MGR est accordé au manager, lequel peut à présent effectuer des SELECT, des UPDATE , des DELETE et des INSERT sur la table EMP.

� Les privilèges sont accordés aux rôles (et révoqués) comme si le rôle était un utilisateur.

� Les rôles peuvent être accordés aux utilisateurs ou à d'autres rôles (et révoqués) comme s'il s'agissait de privilèges

� Un rôle peut être constitué de privilèges système et objet.

� Un rôle peut être activé ou désactivé pour chaque utilisateur auquel le rôle est accordé.

� L'activation d'un rôle peut nécessiter un mot de passe.

� Les rôles n'appartiennent à personne et ne résident dans aucun schéma.

� Exemple :

� les privilèges SELECT et UPDATE sont accordés au rôle HR_CLERK sur la table EMP

� Les privilèges DELETE et INSERT sur la table EMP, ainsi que le rôle HR_CLERK, sont accordés au rôle HR_MGR

� Le rôle HR_MGR est accordé au manager, lequel peut à présent effectuer des SELECT, des UPDATE , des DELETE et des INSERT sur la table EMP.

D.BOUZIDI 112

Exemple de rôles PrédéfinisExemple de rôles Prédéfinis

La plupart des privilèges système et plusieurs autres rôles. Ce rôle ne doit pas être accordé aux utilisateurs qui ne sont pas administrateurs.

DBA

CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR

RESOURCE

CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER, ALTER SESSION

CONNECT

Privilèges associésROLE

� Les vues permettant de surveiller des utilisateurs

� DBA_SYS_PRIVS //privilèges systèmes

� DBA_TAB_PRIVS //privilèges objets

� Dba_TS_Quotas //quotas sur un tablespace

� Les vues permettant de surveiller des utilisateurs

� DBA_SYS_PRIVS //privilèges systèmes

� DBA_TAB_PRIVS //privilèges objets

� Dba_TS_Quotas //quotas sur un tablespace

Page 57: 92520231-dbOraclec

Gestion des rôlesGestion des rôles

D.BOUZIDI

RôlesRôles

UtilisateursUtilisateurs

PrivilPrivilèègesges

RôlesRôles

UPDATEON EMP

INSERT ON EMP

SELECTON EMP

CREATE TABLE

CREATE SESSION

HR_CLERKHR_MGR

A B C

Page 58: 92520231-dbOraclec

D.BOUZIDI

Avantages des rôlesAvantages des rôles

� Limitation de l'octroi de privilèges

� Gestion dynamique des privilèges

� Disponibilité sélective des privilèges

� Pas de révocation en cascade

� Amélioration des performances

� Limitation de l'octroi de privilèges

� Gestion dynamique des privilèges

� Disponibilité sélective des privilèges

� Pas de révocation en cascade

� Amélioration des performances

D.BOUZIDI

Créer des rôlesCréer des rôles

CREATE ROLE sales_clerk;CREATE ROLE sales_clerk;

CREATE ROLE hr_clerk

IDENTIFIED BY bonus;

CREATE ROLE hr_clerk

IDENTIFIED BY bonus;

CREATE ROLE hr_manager

IDENTIFIED EXTERNALLY;

CREATE ROLE hr_manager

IDENTIFIED EXTERNALLY;

� Créer un rôle � Créer un rôle

� Créer un rôle dont l’authentification est gérée par une application externe

� Créer un rôle dont l’authentification est gérée par une application externe

� Créer un rôle protégé par un mot de passe� Créer un rôle protégé par un mot de passe

Page 59: 92520231-dbOraclec

D.BOUZIDI

Utiliser des rôles prédéfinisUtiliser des rôles prédéfinis

Privilèges d'import de base de donnéesIMP_FULL_DATABASE

Privilèges d'export de base de données.EXP_FULL_DATABASE

Tous les privilèges systèmeavec l'option WITH ADMIN OPTION

DBA

Permet de créer des types, tables clusters, opérateurs, séquences, index et procédures

RESOURCE

Permet l'ouverture et la modification d'une session, la création de tables, vues, clusters, séquences, synonymes et liens de DB SESSION

CONNECT

DescriptionNom du rôle

D.BOUZIDI

Manipulation des rôlesManipulation des rôles

ALTER ROLE hr_clerk

IDENTIFIED EXTERNALLY;

ALTER ROLE hr_clerk

IDENTIFIED EXTERNALLY;

ALTER ROLE hr_manager

NOT IDENTIFIED;

ALTER ROLE hr_manager

NOT IDENTIFIED;

ALTER ROLE sales_clerk

IDENTIFIED BY commission;

ALTER ROLE sales_clerk

IDENTIFIED BY commission;

� Modifier un rôle � Modifier un rôle

� Attribuer un rôle � Attribuer un rôle

GRANT hr_clerk,

TO hr_manager;

GRANT hr_clerk,

TO hr_manager;

GRANT sales_clerk TO scott;GRANT sales_clerk TO scott;

GRANT hr_manager TO scott

WITH ADMIN OPTION;

GRANT hr_manager TO scott

WITH ADMIN OPTION;

Page 60: 92520231-dbOraclec

D.BOUZIDI

Définir des rôles par défautDéfinir des rôles par défaut

ALTER USER scott

DEFAULT ROLE hr_clerk, sales_clerk;

ALTER USER scott

DEFAULT ROLE hr_clerk, sales_clerk;

ALTER USER scott DEFAULT ROLE ALL;ALTER USER scott DEFAULT ROLE ALL;

ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk;ALTER USER scott DEFAULT ROLE ALL EXCEPT hr_clerk;

ALTER USER scott DEFAULT ROLE NONE;ALTER USER scott DEFAULT ROLE NONE;

� Définir des rôles par défaut � Définir des rôles par défaut

� Supprimer des rôles � Supprimer des rôles

REVOKE hr_manager FROM PUBLIC;REVOKE hr_manager FROM PUBLIC;

REVOKE sales_clerk FROM scott;REVOKE sales_clerk FROM scott;

DROP ROLE hr_manager;DROP ROLE hr_manager;

D.BOUZIDI

Activer et désactiver les rôlesActiver et désactiver les rôles

� Désactivez un rôle pour le révoquer temporairement à un utilisateur.

� Activez un rôle pour l'accorder temporairement.

� La commande SET ROLE permet d'activer et de désactiver les rôles.

� Les rôles par défaut sont accordés aux utilisateurs lors de la connexion.

� Un mot de passe peut être nécessaire pour activer un rôle.

� Désactivez un rôle pour le révoquer temporairement à un utilisateur.

� Activez un rôle pour l'accorder temporairement.

� La commande SET ROLE permet d'activer et de désactiver les rôles.

� Les rôles par défaut sont accordés aux utilisateurs lors de la connexion.

� Un mot de passe peut être nécessaire pour activer un rôle.

Page 61: 92520231-dbOraclec

D.BOUZIDI

BENEFITS PAYROLL

HR_MANAGERHR_CLERK PAY_CLERK

Rôles Rôles

utilisateurutilisateur

Rôles Rôles

applicationapplication

PrivilPrivilèèges ges

d'applicationd'application

Instructions relativesà la création de rôles

Instructions relativesà la création de rôles

UtilisateursUtilisateurs

Privilèges PayrollPrivilèges Benefits

D.BOUZIDI

Utilisation des rôles protégés par mot de passe et des rôles par défaut

Utilisation des rôles protégés par mot de passe et des rôles par défaut

PAY_CLERK PAY_CLERK_RO

Rôle par Rôle par ddééfautfaut

ProtProtééggéé par mot de par mot de passe (ne correspond passe (ne correspond pas pas àà un rôle par dun rôle par dééfaut)faut)

PrivilPrivilèèges SELECTges SELECTPrivilPrivilèèges INSERT, UPDATE, ges INSERT, UPDATE,

DELETE et SELECTDELETE et SELECT

Page 62: 92520231-dbOraclec

D.BOUZIDI

Afficher les informations sur les rôlesAfficher les informations sur les rôles

Rôles d'un utilisateur actuellement activésSESSION_ROLES

Privilèges de table accordés aux rôlesROLE_TAB_PRIVS

Privilèges système accordés aux rôlesROLE_SYS_PRIVS

Privilèges système accordés aux utilisateurs et aux rôles

DBA_SYS_PRIVS

Rôles accordés aux rôlesROLE_ROLE_PRIVS

Rôles accordés aux utilisateurs et aux rôles

DBA_ROLE_PRIVS

Tous les rôles existants dans la base de données

DBA_ROLES

DescriptionVue du rôle

Sauvegarde et restauration

Page 63: 92520231-dbOraclec

D.BOUZIDI

IMPORT et EXPORTIMPORT et EXPORT

� Permet de sauvegarder/restaurer le contenu logique d'une base de données dans un fichier de transfert Oracle au format binaire

� Le fichier exporté permet de recréer des objets qu'il contient (portabilité OS et logiciel)

� A ne pas utiliser à distance : augmente le trafic du réseau

� La version de l'utilitaire Import ne peut être antérieure à celle de l'utilitaire Export

� Permet de sauvegarder/restaurer le contenu logique d'une base de données dans un fichier de transfert Oracle au format binaire

� Le fichier exporté permet de recréer des objets qu'il contient (portabilité OS et logiciel)

� A ne pas utiliser à distance : augmente le trafic du réseau

� La version de l'utilitaire Import ne peut être antérieure à celle de l'utilitaire Export

D.BOUZIDI

Mode d’Import et d’ExportMode d’Import et d’Export

� Base de données complète (option FULL):

� Tous les objets de la base sont exportés à l'exception de certains utilisateurs : SYS, ORDSYS, CTXSYS, MDSYS et ORDPLUGINS

� Lors de L'importation tous les objets exportés sont créés dans la base de destination

� Utilisateur

� Que les objets appartenant à un utilisateur qui sont exportés (OWNER)

� On peut impoter, du fichier exporté, les objets d’un utilisateur donné dans le schéma d’un utilisateur (FROMUSER / TOUSER)

� Le fichier exporté permet de recréer des objets qu'il contient (portabilité OS et logiciel)

� Base de données complète (option FULL):

� Tous les objets de la base sont exportés à l'exception de certains utilisateurs : SYS, ORDSYS, CTXSYS, MDSYS et ORDPLUGINS

� Lors de L'importation tous les objets exportés sont créés dans la base de destination

� Utilisateur

� Que les objets appartenant à un utilisateur qui sont exportés (OWNER)

� On peut impoter, du fichier exporté, les objets d’un utilisateur donné dans le schéma d’un utilisateur (FROMUSER / TOUSER)

� Le fichier exporté permet de recréer des objets qu'il contient (portabilité OS et logiciel)

Page 64: 92520231-dbOraclec

D.BOUZIDI

Mode d’Import et d’ExportMode d’Import et d’Export

� Table (option TABLES)

� Lors de l'exportation d’une table tous ses objets (index, contraintes, déclencheurs, privilèges …) sont sauvegardés dans le fichier d’export

� Lors de L'importation les tables doivent être nommées grâce au paramètre TABLES (comme dans l’exportation)

� Tablespace (TABLESPACE)

� les métas donnés concernant les tablespacesspécifiés et les objets qu'ils contiennent sont écrites dans un fichier d’export

� Table (option TABLES)

� Lors de l'exportation d’une table tous ses objets (index, contraintes, déclencheurs, privilèges …) sont sauvegardés dans le fichier d’export

� Lors de L'importation les tables doivent être nommées grâce au paramètre TABLES (comme dans l’exportation)

� Tablespace (TABLESPACE)

� les métas donnés concernant les tablespacesspécifiés et les objets qu'ils contiennent sont écrites dans un fichier d’export

D.BOUZIDI

Mode d’Import et d’ExportMode d’Import et d’Export

� Privilèges � Privilèges

IMP_FULL_DATABASE Importer un objet du fichier

EXP_FULL_DATABASE Exporter la base entière ou tablespaces

SYSDBA, DBA et EXP_FULL_DATABASE

Exporter d'autres schémas

CREATE SESSION Exporter son propre schéma

Privilège ou rôleActions

Page 65: 92520231-dbOraclec

D.BOUZIDI

Paramètres de l’ExportParamètres de l’Export

Analyse des objets exportés Statistics

Table(s) à exporter Tables

Définit une condition de filtre pour exporter un sous-ensemble

Query

Export des lignes Rows

Fichier contenant les paramètres d'export Parfile

Utilisateur(s) à exporter Owner

Export des index Indexes

Export des privilèges Grants

Export de toute la base Full

Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier

Log

Nom du fichier de sauvegardeFile

chaîne de connexion à la base de données Userid

DescriptionParamètres

D.BOUZIDI

Paramètres d’importParamètres d’import

Utilisateur destinataire Touser

Liste le contenu du fichier d'export, aucune opération n'est effectuée dans la base

Show

Utilisateur à exporter vers TOUSER Fromuser

Exécute la commande ANALYZE dans le fichier de sauvegarde

Analyze

Table(s) à exporter Tables

Détruit les objets s'ils existent avant de les importer Destroy

Import des lignes Rows

Fichier contenant les paramètres d‘import Parfile

Import des index Indexes

Import des privilèges Grants

Export de tout le contenu du fichier de sauvegardeFull

Nom du fichier de sortie du compte-rendu, pour voir les erreurs en particulier

Log

Nom du fichier de sauvegardeFile

chaîne de connexion à la base de données Userid

DescriptionParamêtres

Page 66: 92520231-dbOraclec

D.BOUZIDI

Exemple d’exportExemple d’export

exp userid=system/manager

file=c:\save\exp_ORCL_struct_full.dump

log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n

exp userid=system/manager

file=c:\save\exp_ORCL_struct_full.dump

log=c:\saveLog\exp_ORCL_struct_full.log full=y rows=n

� Exporter les structures de la base données � Exporter les structures de la base données

exp userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\logsave\exp_scott_full.log owner=scott

exp userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\logsave\exp_scott_full.log owner=scott

� Exporter d’un schéma� Exporter d’un schéma

exp userid=system/manager

file=c:\save\exp_emp_scott.dump

log=c:\logsave\exp_emp_scott.log tables=scott.emp

exp userid=system/manager

file=c:\save\exp_emp_scott.dump

log=c:\logsave\exp_emp_scott.log tables=scott.emp

� Exporter d’une table � Exporter d’une table

exp userid=system/manager

file=c:\save\exp_nomTablespace.dump

log=c:\logsave\exp_nomTablespace.log tablespace=nomTablespace

exp userid=system/manager

file=c:\save\exp_nomTablespace.dump

log=c:\logsave\exp_nomTablespace.log tablespace=nomTablespace

� Exporter d’une tablespace� Exporter d’une tablespace

exp system/manager file=\save\exp_ORCL_query1.dmp

tables=scott.emp query="'where salaire > 500'"

exp system/manager file=\save\exp_ORCL_query1.dmp

tables=scott.emp query="'where salaire > 500'"

� Exporter selon une condition � Exporter selon une condition

D.BOUZIDI

Exemple d’importExemple d’import

� Importer un schéma d’un fichier export contenant tt la BD � Importer un schéma d’un fichier export contenant tt la BD

imp userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp

touser=user02

imp userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log fromuser=scott Tables=emp

touser=user02

� Importer un schéma vers un autre� Importer un schéma vers un autre

� Importer une table d’un schéma vers un autre � Importer une table d’un schéma vers un autre

imp userid=scott/tiger

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log owner=scott

imp userid=scott/tiger

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log owner=scott

imp userid=scott/tiger

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log fromuser=scott touser=user01

imp userid=scott/tiger

file=c:\save\exp_scott_full.dump

log=c:\logsave\imp_scott_full.log fromuser=scott touser=user01

� Importer tous les schéma sauvegardés � Importer tous les schéma sauvegardés

imp userid=stystem/manager

file=c:\save\exp_ORCL_struct_full.dump

log=c:\logsave\imp_ORCL_struct_full.log

imp userid=stystem/manager

file=c:\save\exp_ORCL_struct_full.dump

log=c:\logsave\imp_ORCL_struct_full.log

Page 67: 92520231-dbOraclec

D.BOUZIDI

Exemple d’export /import utilisant un fichier de paramètres

Exemple d’export /import utilisant un fichier de paramètres

� Export un schéma � Export un schéma

exp parfile=c:\fichierParametre\expScott.prmexp parfile=c:\fichierParametre\expScott.prm

� Création du fichier de paramètres d’export� Création du fichier de paramètres d’export

userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\exp_scott_full.log

owner=scott

rows=y

userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\exp_scott_full.log

owner=scott

rows=y

� Export un schéma � Export un schéma

imp parfile=c:\fichierParametre\impScott.prmimp parfile=c:\fichierParametre\impScott.prm

� Création du fichier de paramètres d’import � Création du fichier de paramètres d’import

userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\imp_scott_full.log

owner=scott

rows=y

userid=system/manager

file=c:\save\exp_scott_full.dump

log=c:\imp_scott_full.log

owner=scott

rows=y

expScott.prmexpScott.prm

impScott.prmimpScott.prm

D.BOUZIDI

Sauvegarde à FroidSauvegarde à Froid

� Permet de faire une sauvegarde d’une Base de données en arrêt

� Les fichiers (datafiles, logfiles, controlfile, etc) peuvent être sauvegardés sans corruption

� Fortement utilisée en mode noArchivelog

� Inconvénients : n’est valable pour des environnements à haute disponibilité où l’activiténe peut être interrompue

� Permet de faire une sauvegarde d’une Base de données en arrêt

� Les fichiers (datafiles, logfiles, controlfile, etc) peuvent être sauvegardés sans corruption

� Fortement utilisée en mode noArchivelog

� Inconvénients : n’est valable pour des environnements à haute disponibilité où l’activiténe peut être interrompue

Page 68: 92520231-dbOraclec

D.BOUZIDI

Sauvegarde à FroidSauvegarde à Froid

� Les étapes de sauvegarde

� Lister les noms à sauvegarder

� Fichiers de données

� Fichiers de contrôles

� Les fichiers log

� Arrêter de la base de données en mode immediate

� Effectuer une copie des fichiers à sauvegarder par une commande OS

� Redémarrer la base de données

� Les étapes de sauvegarde

� Lister les noms à sauvegarder

� Fichiers de données

� Fichiers de contrôles

� Les fichiers log

� Arrêter de la base de données en mode immediate

� Effectuer une copie des fichiers à sauvegarder par une commande OS

� Redémarrer la base de données

Select * from dba_datafiles;Select * from dba_datafiles;

Select * from v$logfile;Select * from v$logfile;

Select * from v$parameter where name like ‘control_files’;Select * from v$parameter where name like ‘control_files’;

Shutdown immediateShutdown immediate

D.BOUZIDI

Sauvegarde à ChaudSauvegarde à Chaud

� Permet de faire une sauvegarde d’une Base de données sans la faire arrêter

� Utile dans un contexte à haute disponibilité oùl’état des fichiers change constamment

� Fonctionnement : Placer un tablespace dans le mode de sauvegarde et de sauvegarder les fichiers de données, puis de rétablir le tablespace dans le mode normal

� La base de données doit être en mode Archivelog

� Permet de faire une sauvegarde d’une Base de données sans la faire arrêter

� Utile dans un contexte à haute disponibilité oùl’état des fichiers change constamment

� Fonctionnement : Placer un tablespace dans le mode de sauvegarde et de sauvegarder les fichiers de données, puis de rétablir le tablespace dans le mode normal

� La base de données doit être en mode Archivelog

Page 69: 92520231-dbOraclec

D.BOUZIDI

Sauvegarde à ChaudSauvegarde à Chaud

� Stratégie de sauvegarde:

� Sauvegarde complète de la base de données àdes intervalles réguliers

� Sauvegarde partielle de la base de données

� Archivage des fichiers de journalisation (log)

� Sauvegarde du fichier de contrôle en cas de modification dans la base de données

� Stratégie de sauvegarde:

� Sauvegarde complète de la base de données àdes intervalles réguliers

� Sauvegarde partielle de la base de données

� Archivage des fichiers de journalisation (log)

� Sauvegarde du fichier de contrôle en cas de modification dans la base de données

D.BOUZIDI

Sauvegarde à ChaudSauvegarde à Chaud

� Sauvegarde d’un tablespace mis en offline

� Identifier les fichiers du tablesapce àsauvegarder

� Mettre le tablespace en mode offline

� Effectuer une copie des fichiers à sauvegarder par une commande OS

� Remettre le tablespace en mode on online

� Sauvegarde d’un tablespace mis en offline

� Identifier les fichiers du tablesapce àsauvegarder

� Mettre le tablespace en mode offline

� Effectuer une copie des fichiers à sauvegarder par une commande OS

� Remettre le tablespace en mode on online

Select file_name from dba_datafiles where

tablespace_name= ‘NOMTABLESPACE’

Select file_name from dba_datafiles where

tablespace_name= ‘NOMTABLESPACE’

Alter tablespace NomTablespace offline normalAlter tablespace NomTablespace offline normal

Alter tablespace NomTablespace onlineAlter tablespace NomTablespace online

Page 70: 92520231-dbOraclec

D.BOUZIDI

Procédure de récupérationProcédure de récupération

Fichiers de données restaurés

Fichiers de données contenant des transactions

validées et non validées

Fichiers de données récupérés

Modifications appliquéesInformations

d'annulation appliquées

5

4

3

2

1

Fichier de journalisationarchivé

Fichier de journalisationarchivéFichier de

journalisationen ligne

D.BOUZIDI

Procédures de récupération gérées par l'utilisateur : commande RECOVER

Procédures de récupération gérées par l'utilisateur : commande RECOVER

� Restaurer tous les fichiers de base de données à partir d'une sauvegarde et récupérer la base de données :

� Restaurer les fichiers de données endommagés à partir d'une sauvegarde et récupérer les fichiers de données :

Ou

SQL> RECOVER DATABASE

SQL> RECOVER TABLESPACE index_tbs

SQL> RECOVER DATAFILE '/oradata/indx01.dbf'

Page 71: 92520231-dbOraclec

D.BOUZIDI 141

Créer un nouveau fichier de contrôleCréer un nouveau fichier de contrôle

SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

Fichier de mots de passe

Fichier de paramètres

SYSTEM

SYSAUX

UNDO TEMP

USERS

INDEX

Fichier de journalisation

1B

Fichier de journalisation

1A

Fichier de journalisation

2B

Fichier de journalisation

2A

Fichiers de contrôle

D.BOUZIDI

Situations nécessitant une récupération incomplète

Situations nécessitant une récupération incomplète

� La récupération complète échoue parce qu'un fichier de journalisation archivé est manquant.

� Un ou plusieurs fichiers de journalisationnon archivés et un fichier de données sont manquants.

� Une sauvegarde du fichier de contrôle est utilisée pour ouvrir ou récupérer la base de données.

Page 72: 92520231-dbOraclec

D.BOUZIDI

Méthodes recommandées pour la récupération incomplète

Méthodes recommandées pour la récupération incomplète

� Suivez soigneusement toutes les étapes.

� Effectuez des sauvegardes totales de la base de données avant et après la récupération.

� Vérifiez toujours que la récupération a réussi.

� Sauvegardez et supprimez les fichiers de journalisation archivés.

D.BOUZIDI 144

Procédure de récupération UNTIL TIMEProcédure de récupération UNTIL TIME

1. Arrêtez la base de données.

2. Restaurez les fichiers de données.

3. Montez la base de données.

4. Récupérez la base de données.

5. Ouvrez la base de données avec l'option RESETLOGS.

6. Sauvegardez la base de données.

SQL> shutdown immediate

$ cp /BACKUP/* /u01/db01/ORADATA

SQL> startup mount

SQL> recover database until time '2004-05-28:11:44:00';

SQL> alter database open resetlogs;

SQL> shutdown;

$ cp /u01/db01/ORADATA/* /BACKUP