You are on page 1of 68

Administration de SGBD

Gnralits
Un SGBD est un logiciel plus ou moins complexe dont les
fonctionnalits principales sont :
! - cration de bases de donnes
! - gestion des donnes (persistance, interrogation,
modification)
! - gestion de la concurrence (multi-utilisateurs)
! - gestion de la scurit (droits, reprise sur panne)
Gnralits
Gestionnaire de
Fichiers
Requtes Schma
Appels
Systme
Programmes
d'application
Exploitants
Programmeurs
d'application
Utilisateurs
Administrateur
de la base (DBA)
Prcompilateur
du LDD
Processeur de
Requtes
Compilateur
du LDD
Gestionnaire de
la Base de Donnes
Codes Objets des
Programmes d'applications
SYSTEME DE GESTION
BASE DE DONNEES
B Donnes
Utilisateur_i
Dictionnaire
de donnes
Utilisateurs
! Administrateurs
DBA gnral
Manager de BD utilisateur
! Utilisateurs interrogateurs
! Utilisateurs spcifiques
Utilisateurs concepteurs d applications
Administrateur de donnes (Data Manager)
Utilisateurs
! Administrateurs
DBA gnral cration BD
cration Utilisateurs
Manager de BD utilisateur
cration schma

! Utilisateurs interrogateurs
cration / utilisation requtes
! Utilisateurs spcifiques
Utilisateurs concepteurs d applications
cration de programmes
Administrateur de donnes (Data Manager)

Rle DBA
! Le rle de l'administrateur est variable
suivant la structure dans laquelle il opre
! De manire gnrale, il ralise l'interface entre
" La direction oprationnelle
" Les administrateurs systme
" Les dveloppeurs d'application
! Responsabilit importante
(lie la valeurs des donnes ..)
Rle DBA
! L'administration
# Installations diverses (client/serveurs, backup, architectures
diverses)
# Cration/dmarrage/arrt des bases de donnes
# Gestion des structures de stockage
# Scurit et comptes utilisateurs
# Optimisation, diagnostic, performances (grer espace disques,
mmoire, montes en charge)
# Maintenance, restauration
! Possibilit d'interfrence avec les concepteurs
# Dfinition donnes,
# Intgrit, Accs
Architectures
BD Server
Client
Connexion
Locale
Ou
Application Rseau
Serveur Web
Client
Client
Serveur Applications
Rle DBA
! Ladministration dune base de donnes
est effectue aux trois niveaux
(externe, conceptuel, interne)
! Conceptuel (schma)
! Externe (vues, utilisateurs et droits daccs)
! Interne (correspondance schma et structures du
SGBD, performances)
Rle DBA
! L'administration
Ncessite une bonne connaissance de
l'architecture
Rle DBA
Un administrateur de base de donnes (DBA) doit
comprendre larchitecture du serveur Oracle pour
pouvoir grer une base de donnes Oracle,
pour cela il doit :
! Reconnatre les composants de larchitecture
dOracle.
! Identifier le but de chacun des types de composants.
Cas spcifique d ORACLE
Linstance Oracle
Un serveur Oracle comporte deux lments distincts :
l'instance
Structure de mmoire partage et ensemble de processus
la base de donnes
Ensemble de fichiers physiques
Une instance ne peut ouvrir qu'une BD,
En gnral une BD n'est ouverte que par une instance
Rque : l'option Real Application Cluster permet ouverture d'une BD
Par plusieurs instances situes sur des nuds distincts.
Instance et base Oracle
Processus
Fichiers
Oracle_SID
Instance
L'instance comporte
# la SGA (System Global Area) zone mmoire partage
- Database Buffer Cache : cache des donnes
- Redo Log Buffer : cache pour modifications
- Shared Pool : requtes et dictionnaire
- Java Pool mmoire pour machine virtuelle Java intgre
# les processus d'arrire-plan (background process)
- lancs au dmarrage de l'instance et
- arrts lors de l'arrt de l'instance
# les processus serveurs (server process)
- chargs des requtes utilisateurs
# la PGA (Program Global Area) mmoire prive des processus
Les Structures
Mmoire
La System Global Area (SGA)
SGA zone partage par les divers processus de l'instance
La Shared Pool
Cache du Dictionnaire de Donnes Zones de requtes
SQL partages
System Global Area (SGA)
System Global Area (SGA)
Le Database
Buffer Cache
Le Redo Log
Buffer
System Global Area (SGA)
Les Processus

Background
! 4 processus sont obligatoires
PMON, SMON, DBWn, LGWR pour excuter une instance
Oracle. Les autres processus sont optionnels
! Si lun de ces quatre processus choue, linstance
sera dtruite et devra tre redmarre.
Processus
DBWn LGWR
SMON
PMON
CKPT
ARCn
DBWn (DBWR)
DBWn : Processus Database Writer
n numro pour processus multiples
! Le DBWn (en gnral DBW0) gre les tampons (database
buffers) de la base de donnes pour que les processus serveurs
puissent toujours trouver des buffers libres en SGA.
! Le processus DBWn crit les buffers modifis vers les fichiers de
donnes.
# Toutes les 3s
# Quand un processus ne peut trouver un emplacement libre
# Lors d'un CheckPoint
# Lors d'un arrt anormal
! Utilise un algorithme qui garde les blocs les plus rcemment
utiliss en mmoire,
! Diffre les critures en vue doptimiser les E/S
LGWR
LGWR : Processus Log Writer
! Le LGWR crit les entres du tampon des
journaux de reprise (buffer redo log) dans
les fichiers journaux (redo log) lorsque :
- Un commit se produit,
- le redo log buffer est rempli au tiers,
- le DBWn s'apprte crire des blocs de
buffers de donnes non valides dans les
fichiers de donnes,
- Un time-out (3s) se produit.
PMON
PMON : Processus Monitor charg du nettoyage lors
du "plantage" d'un processus utilisateur
! Nettoie les connexions termines de faon
anormale
! Dfait les transactions non valides (ROLLBACK)
! Libre les verrous qui avaient t poss par un
processus qui sest termin en erreur
! Libre les ressources SGA alloues par le processus
en erreur
SMON
SMON : Processus System Monitor charg de la rcupration
de l'instance aprs arrt anormal
Processus de surveillance automatique
! Ralise la restauration automatique dinstance
! Rcupre lespace occup par des segments temporaires qui
ne sont plus utiliss
! Fusionne les zones contigus despace libre dans les fichiers
de donnes
CKPT, ARCH
CKPT : Processus CheckPoint
Enregistrer le point de reprise dans l'en-tte des
fichiers de donnes et ds le fichier de contrle
ARCn : Processus Archive.
N'est activ que si la base fonctionne en mode
archilog
Archivage des fichiers de journalisation pleins
Les Processus
Serveurs
! Le processus serveur
Analyse et excute les commandes SQL
Lit les blocs de donnes partir du disque dans les tampons partags
de la base de donnes de la SGA
Restitue les rsultats des commandes SQL au processus utilisateur
DBWR LGWR
SMON
PMON
CKPT
ARCH
PGA
PGA
La PGA est la mmoire prive des diffrents
processus serveurs.
Pour un processus serveur, la PGA contient
une zone de travail SQL work area
des informations diverses (session, traitements
des requtes)
Les Processus
Utilisateurs
! Le processus utilisateur
Excute loutil ou lapplication et est considr comme tant le
client. Exemple : Sqlplus, Server Manager, Developer/2000
! Il transmet les commandes SQL au processus serveur
et en reoit les rsultats.
DBWn LGWR
SMON
PMON
CKPT
ARCn
Processus Serveurs
Ddis
Processus
serveur
Client
Serveur
Processus
utilisateur
La structure d une
Base Oracle
Database
fichiers de
contrle
Fichiers de
donnes
Redolog
fichier des
mots de passe
fichier de log
fichier des paramtres
fichier de trace
La structure d une
Base Oracle
Une base Oracle comporte :
Un ou plusieurs fichiers de donnes
logiquement regroups en tablespaces
Au minimum un fichier de contrle
Au minimum deux groupes de fichiers de journalisation (Redo log)
La notion de schma est purement logique
et dsigne l'ensemble des objets d'un utilisateur
Physiquement les objets de divers schmas sont mlangs ..
Lorganisation du
stockage d'Oracle
est constitu de
est constitu de
est constitue de
est constitu de
est constitu de
1
1..*
1
1
1 1..*
1..*
1
est constitu de
Point de vue logique
Point de vue physique
1..*
1..*
1..*
Structure logique de
la base de donnes
Rollback
Segment
system
Tablespace SYSTEM
Index Index
Index Index
Index Index
Index Index
Index
Table Table
Table Table
Table Table
Table Table
Table
Tablespaces DATA
Table Table
Table Table
Table Table
Table Table
Tables
Table Table
Table Table
Table Table
Table Table
Tables
Tablespaces INDEX
index
index
index
index
index
index
! La base de donnes Oracle peut tre divise logiquement en
un certain nombre de tablespaces distincts.
! Les tablespaces contiennent des segments de base de donnes
! Le tablespace SYSTEM est indispensable. (Dictionnaire de
donnes, dfinition des procdures et triggers..)
Tablespace RBS
Table Table
Table Table
Table Table
Table Table Rollback
segments
Tablespace TEMP
Table Table
Table Table
Table Table
Table Table Segments
temporaires
Les Tablespaces
! Le Tablespace SYSTEM
$ Indispensable pour que la Base de Donnes puisse
fonctionner.
$ Contient les informations du dictionnaire de donnes,
les dfinitions des procdures stockes, des packages, et
des triggers de la Base de Donnes
! Les Tablespaces autres (pour stockage des bd
utilisateurs)
$ Permettent plus de flexibilit dans ladministration de la
Base de Donnes
$ Consistent en segments de rollbacks, temporaires,
tables, index, etc ...
Visualiser quelques
paramtres
! SQL*Plus permet des interrogations
Show parameter Db_name
Show paramete Db_block_size
Show parameter Instance_name
Show parameter SGA_Max_size
Show parameter Shared_Pool_size
Show parameter DB_Block_size
Show parameter DB_Cache_size
Cration d une
Base Oracle
Ladministrateur DBA
En fonction de la future utilisation,dtermine
un certain nombre de paramtres
fixant les tailles minimales des zones mmoire ,
ainsi que le nombre des fichiers ncessaires
pour le bon fonctionnement
Cration d une
Base Oracle
! Fichiers de paramtres (gr par le DBA)
! Fichiers de donnes (au moins 1) et les fichiers log de la base
de donnes
! Fichiers de contrle (qui comportent le nom de la base de
donnes, les informations ncessaires la restauration de la
base, etc.) (au moins 1)
! Fichiers de Redo Log (qui contiennent toutes les
modifications effectues sur la base de donnes, et sont
utiliss pour la restauration des donnes) (au moins 2).
! Fichier alerte (qui est un journal chronologique de messages
et derreurs)
! Fichier trace (qui contiennent l'information sur les erreurs
internes dtectes par un processus serveur notamment)
Cration d une
Base Oracle
Fichier paramtre initMabase.ora
db-name = Mabase
Control-files = (/DISK1/control1.con,
DISK1/control2.con)
db-block-size = 8192
db-block-buffers = 2000
Shared-pool-size = 30000000
Log-buffer = 640
Process = 50

Cration dune
Base Oracle
(par dfaut aprs cration, une base de donnes Oracle contient
2 comptes utilisateurs ayant les privilges d'administrateur
SYS (change_on_install), SYSTEM(manager))
La notion de DBA correspond un rle
(ensemble de privilges regroups sous un nom) et attribuable
un compte utilisateur.
Processus SQL*DBA
- cration de la base
- dmarrage de l instance de la base
(l environnement des processus et de la mmoire)
- montage de la base
(elle est alors accessible aux utilisateurs ayant le
privilge d administration)
- ouverture de la base
(elle est alors accessibles aux autres utilisateurs)
Cration d une
Base Oracle
CREATE DATABASE MaBase
MAXLOGFILES 5
MAXDATAFILES 100
..
LOGFILE
GROUP1 ( /DISK2/log1a.rdo, DISK3/log2a.rdo) size 1M
.
DATAFILE
/DISK1/system.dbf size 50M autoextend on
Cration dune
instance Oracle
STARTUP PFILE=/DISK1/initMabase.ora
[EXCLUSIVE / PARALLELE ou SHARED]
[MOUNT/NOMOUNT]
[OPEN [recover] Mabase]
Exclusive (seule linstance cre aura accs la base)
Parallele ou Shared (plusieurs instances pourront accder la base)
Mount monte la base pour DBA
Open (autorise les connexions)
Cration
dutilisateurs
Ladministrateur DBA
Doit allouer aux futurs utilisateurs un certain nombre
de droits ou privilges en fonction de leurs besoins.
Problmes de scurit
si les donnes sont sensibles
elles doivent tre protges des accs frauduleux
Cration
dutilisateurs
Utilisateurs et scurit
Scurit
Default
Tablespace
Account
Locking
Authentification
Role
privilege
Temporary
Tablespace
Tablespace
quotas
Resource
limits
Direct
privilege
Cration
dutilisateurs
Identification
par Oracle
CONNECT oheu/rx239$
par le SE
CONNECT /
Lien entre nom SE et nom dans la base de donnes,
par un prfixe dfini par OS_AUTHENT_PREFIX (dfaut ops$)
Cration
dutilisateurs
Utilisateurs et scurit
CREATE USER peter
IDENTIFIED BY My1stSon [EXTERNALLY]
DEFAULT TABLESPACE data01
TEMPORARY TABLESPACE temp
QUOTA 15m on data01 [UNLIMITED]
PROFILE Profil1
PASSWORD EXPIRE
ACCOUNT UNLOK [LOCK];
CREATE USER "OPS$user1\vdep" // "" si caractres spciaux
IDENTIFIED EXTERNALLY;
Modification
dutilisateurs
ALTER USER peter
IDENTIFIED BY My1stSon
PASSWORD EXPIRE ; // force changement de mot de passe
ALTER USER peter
ACCOUNT LOCK ; // interdiction temporaire de connexion
DROP USER peter [CASCADE];
Information
sur les utilisateurs
Vues du dictionnaire de donnes
DBA_USERS
DBA_TS_QUOTAS
Cration
dutilisateurs
Ladministrateur DBA
Privilge
Rle
Utilisateur 1
Utilisateur 2
Prol
Gre l accs aux ressources
(sessions, temps CPU,
taille mmoire etc.)
Droit dexcution d ordre SQL
Regroupement de privilges
Cration
de profils
PROFIL
CREATE PROFILE developer_prod LIMIT
SESSIONS_PER_USER 2 [UNLIMITED / DEFAULT]
// nb sessions simultanes
CPU_PER_SESSION 10000 [UNLIMITED / DEFAULT]
// CPU totale par session (1/100s)
IDLE TIME 60 [UNLIMITED / DEFAULT]
// dure d'inactivit
CONNECT TIME 480 [UNLIMITED / DEFAULT]
// dure totale de connexion
PASSWORD_LIFE_TIME 30 [UNLIMITED / DEFAULT]
// dure de vie du mot de passe (jours);
Modification
de profils et affectation
ALTER PROFILE nom_profil LIMIT
;
DROP PROFILE nom_profil [CASCADE] ;
Affectation d'un profil un utilisateur
la cration
Affectation aprs cration
ALTER USER peter
PROFILE developer_prod ;
// l'affectation ne prend effet qu' la nouvelle connexion
DBA_PROFILES
Gestion des droits
dutilisateurs
Privilges systme
CREATE SESSION ; // pour autoriser les connexions
SELECT ANY DICTIONARY; // autoriser interrogation DD
SYSDBA et SYSOPER
Consulter SYSTEM_PRIVILEGE_MAP V$PWFILE_USERS
Attribution d'un privilge systme
GRANT nom_privilge
TO peter [PUBLIC] [WITH ADMIN OPTION];
GRANT ALL PRIVILEGES TO // tous les privilges
systme
Suppression REVOKE
Gestion des droits
dutilisateurs
Privilges objet
Droit d'accder un objet d'un autre utilisateur
SELECT, INSERT, UPDATE, DELETE, EXECUTE
Attribution d'un privilge objet
GRANT nom_privilge [(liste_colonnes) ] [ALL]
ON [nomschema.]nomobjet
TO peter [PUBLIC] [WITH GRANT OPTION];
Rvocation REVOKE
Gestion des droits
dutilisateurs
Privilges sur les vues et les
programmes stocks
la cration du programme souhait AUTHID
NOMMER un objet d'un autre schma
CREATE PUBLIC SYNONYM fournisseur FOR
libourel.fournisseur;
Rque : cela ne donne pas les privilges
ROLE
regroupement nomm de privilges
Gestion des droits
dutilisateurs
Un rle peut tre attribu un autre rle
Un utilisateur peut avoir plusieurs rles
Un rle n'appartient personne
Cration
CREATE ROLE monrole
[IDENTIFIED BY bonus [EXTERNALLY ]
/ [NOT IDENTIFIED];
// pour crer un rle, il faut le privilge CREATE ROLE
Gestion des droits
dutilisateurs
Attribution de privilges un rle
GRANT nom_privilege TO nom_role
[WITH ADMIN OPTION ] ; // privilges systme
GRANT nom_privilege ON [nom_schma.]nom_objet
TO nom_role ; // privilge objet
Modification de rle
ALTER ROLE monrole ;
REVOKE nom_privilge
FROM nom_rle ;
REVOKE nom_privilge
ON [nomschma.]nom_objet
FROM nom_rle ;
Gestion des droits
dutilisateurs
Attribution d'un rle
GRANT monrole
TO nom_utilisateur [PUBLIC/nom_rle]
[WITH ADMIN OPTION] ;
SET ROLE
REVOKE ..
Gestion des droits
dutilisateurs
Rvocation d'un rle
Activation d'un rle
Gestion des droits
dutilisateurs
Rles prdfinis DBA_ROLES
CONNECT DBA_ROLE_PRIVS .. RESOURCE
DBA
.
Consulter
DBA_SYS_PRIVS // privilges systme
SESSION_PRIVS
SYSTEM_PRIVILEGE_MAP
DBA_TAB_PRIVS // privilge objet
DBA_COL_PRIVS
TABLE_PRIVILEGE_MAP
Superviser
les utilisateurs
V$SESSION
SELECT sid,serial#,username,osuser,status FROM v$session;
// informations
ALTER SYSTEM KILL session 'sid,serial#' ;
ALTER SYSTEM DISCONNECT session 'sid,serial#'
IMMEDIATE [ POST_TRANSACTION];
Gestion
de schmas et de donnes
Data Manager ?
! Crer le schma de la base utilisateur
Tables / Vues
Contraintes / Index
Triggers, procdures, packages
! Allouer des droits sur ces objets d autres
utilisateurs
! Vrifier la cohrence des donnes
Oracle Net
Permet des produits Oracle situs sur des machines diffrentes
de communiquer de manire transparente
Principe de fonctionnement
Client
Serveur
1 recherche de connexion un service
2 rsolution (par description)
3 envoi l'adresse mentionne
Listener
4 listener prsent ?
5 connexion tablie
Oracle Net
Principe de fonctionnement
CONNECT System/manager@orcl
DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=SRWINORA)
(PORT=1521) (CONNECT_DATA = (SERVICE_NAME=ORCL))
// protocole TCP ncessite un PORT
// nom du service (instance par ex)
Processus d'coute configur par le fichier
Listener.ora
Oracle Net
Rsolution du nom de service
Local naming (dfaut)
Fichier tnsnames.ora
Easy connect naming
Connexion sans nom de service en utilisant une adresse TCP/IP
De type [//] hte [:port] [/service]
Plus de configuration ncessaire mais perte de transparence
Host naming
Nom de service rsolu par traduction adresse IP
(DNS Domain Name Server ou NIS Network Information Services)
Ou fichier hosts
Directory naming Externe
Ncessit d'un annuaire LDAP Produit tiers ncessaire
Oracle Net
Nom de service et nom d'instance
Une instance a un identifiant SID (vision physique)
Elle peut aussi etre identifie par un ou plusieurs noms de service
Dfinis dans le fichier d'initialisation par le paramtre
SERVICE_NAMES
SERVICE_NAMES=db1,db2
Dfaut
SERVICE_NAMES = nom global de la base
DB_NAME.DB_DOMAIN
Si DB.DOMAIN vide (dfaut)
SERVICE_NAMES=DB_NAME
(qui en gnral correspond au nom de l'instance)
Et donc nom du service = nom instance
Vrification DBA_SERVICES
Oracle Net
Configuration serveur
Configuration du processus d'coute
Dans un fichier
Listener.ora (ou avec application Oracle Net Manager)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)
(HOST = SRWINORA)
(PORT = 1521))
)
)
Dfinition
D'un processus
Oracle Net
Configuration serveur
Le processus d'coute peut accepter des demandes de connexion
pour plusieurs bases de donnes
SID_LIST_LISTENER =
( SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = D:\oracle\product\10.1.0\Db_1)
(SID_NAME = ORCL)
)
)
Dfinition
D'un service
De BD
Oracle Net
Configuration serveur
Le processus d'coute se matrialise par un service
Oracle<nom_oracle_home>TNSListener Windows
Processus lnslsnr Linux
Lnslsnr [commande]
HELP
START
STOP
STATUS
SERVICES
RELOAD
Rque : le processus d'coute peut etre dmarr automatiquement
(script de dmarrage)
Oracle Net
Configuration client
Choix mthode de rsolution de noms
Configuration de cette mthode
Les mthodes utilisables sont stockes dans
sqlnet.ora
Si mthode locale ..
Dfinition des services rseau dans tsnames.ora
Edition directe (ou utilisation Oracle Net Manager ou
netasst)
Fichiers dans
$ORACLE_HOME/network/admin
Oracle Net
Configuration client
Sqlnet.ora
NAMES.DIRECTORY_PATH = (EZCONNECT,
TNSNAMES)
Tsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)
(HOST=SRVWINORA) (PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)