SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Chapitre 3 :
Création de la structure d’une base de données
 Phase de réflexion
 Création de la base de données: Graphiquement DBCA et
manuellement
 Création et Gestion des tablespaces et des tables et
tablespace Undo
 Rappels sur les indexes Principes choix et création : index
btree , BitMap
 Alimentation d'une base de données: le sqlloader
Avant création, et pour faire les bons choix:
Réfléchir aux tables et indexes à venir, estimer leur taille
Planifier la distribution de ses fichiers, l’espace libre dans les blocks
Décider entre une gestion classique ou automatique des fichiers
Déterminer la taille des blocs de données
Choisir le mode de gestion de l’annulation, Tablespace dédié
Segments d’annulation
Déterminer la stratégie de sauvegarder et reprise après panne
-reprendre l’etat de sauvgarde
- Dérouler le fichier de journalisation
-réplication
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Phase de réflexion
Deux possibilités:
Utiliser l’assistant Oracle : graphique : DBCA
Créer manuellement à l’aide de scripts
En cas de mise à jour d’Oracle ou de migration ,
une procédure particulière existe Compatibilité
ascendante, on ne recrée pas les bases de données.
Pré requis :
Oracle doit-être installé
Vous devez être administrateur du SE et de l’instance
La mémoire principale et mémoire disque doit être
suffisante
Administration des bases de données sous Oracle
Chapitre 3 : Créer une base de données
Création de la base : Généralités
■ Une Base de données comporte les états suivants
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : États de la l’instance ( base)
Les Privilèges utiles
Les Privilèges nécessaires pour créer, démarrer ou arrêter une base
 SYSDBA (arrêt, démarrage, modification, création d’ une base, …)
 SYSOPER(arrêt démarrage d’une base, modification)
Administration des bases de données sous Oracle
Chapitre 3 : Créer une base de données
Création de la base : États de la base
1. Démarrer l’assistant
 Soit par start->programme->OracleHome->Configuration and
Migration Tools-> Database Configuration Assistant
 Ou bien on tape DBCA dans l’invite DOS ( ou dans un terninal en
cas Linux et Unix)
2. Choisir créer une base
3. Choisir un template (modèle) de base
4. Donner le nom global de la base (exemple DBTEST) ainsi que le SID
(DBTEST)
5. Sélectionner le mode de déploiement de la base (mode dédié) ou
(mode serveurs multithreads)
6. Fixer la taille de la SGA(buffer cache, shared pool, large pool, java
pool)
7. sélectionner le mode d’archivage de la base (Archivelog ou
noarchivelog).Localiser les fichiers d’archive
8. Fixer la taille maximale de la zone de tri ainsi que les caractères sets
9. Localiser les fichiers de contrôles, de données et redo log
10. Modifier à tout moment les paramètres d’itialisation supplémentaires
et démarrer la création de la base
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes à suivre pour créer une
base avec le Database Configuration Assistant: DBCA
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes pour créer une base Manuellement
Spécifier le nom de l'instance SID : ( ici DB1 )
positionner les variable : oracle_home=D:apphpproduct11.2.0dbhome_1
oracle_base=D:apphp et oracle_sid= DB1
Créer le fichier de paramètres PFILE (partir de l'exemple Oracle init%.ora)
(D:apphpadminorclpfileinit.ora)
Nom de la base, emplacement des fichiers de contrôle ….
Créer le fichier de mot de passe - orapwd file=orapwDB1 password=Test01;
Pour windows executer : oradim -new -sid DB1
Se connecter a l'instance inactive
SQLPLUS nolog puis CONNECT  AS SYSDBA
STARTUP PFILE='D:apphpadminDB1pfileinit.ora' nomount
Créer un fichier de paramètre serveur SPFILE (D:apphpproduct11.2.0dbhome_1database)
(a partir du fichier manuel)  Create SPFILE from PFILE
SQL> create SPFILE='D:APPHPPRODUCT11.2.0DBHOME_1DATABASESPFILEDB1.ora' from
PFILE='D:apphpadminDB1pfileinit.ora'; ;
Mon noyau oracle (ORACLE_BASE )est installé sous D:apphp
À l’aide la commade MKDIR on crée les répertoires suivant :
D:apphpadmin , D:apphporadata , D:apphpadminDB1,
D:apphporadataDB1 , D:apphpadminDB1bdump , D:apphpadminDB1cdump
D:apphpadminDB1pfile et D:apphpadminDB1udump,
D:apphpflash_recovery_areaDB1
CREATE DATABASE DB1
USER SYS IDENTIFIED BY pz6r58
USER SYSTEM IDENTIFIED BY y1tz5p
LOGFILE GROUP 1 ('D:apphporadataDB1redo01.log') SIZE 100M,
GROUP 2 ('D:apphporadataDB1redo02.log') SIZE 10M,
GROUP 3 ('D:apphporadataDB1redo03.log') SIZE 10M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'D:apphporadataDB1system01.dbf' SIZE 320M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'D:apphporadataDB1sysaux01.dbf' SIZE 320M REUSE
DEFAULT TABLESPACE tbs_1
DATAFILE 'D:apphporadataDB1users01.dbf' SIZE 50M REUSE AUTOEXTEND ON
MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE 'D:apphporadataDB1temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE 'D:apphporadataDB1undotbs01.dbf'
SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
création des vues et synonymes publics (CATALOG.SQL)
• Installation de l'option procédurale(CATPROC.SQL)
• création des synonymes publics pour les tables virtuelles (UTLMONTR.SQL)
• Création des Synonymes sur les vues dba_* du dictionnaire (CATDBSYN.SQL) pour
le DBA
 Le chemin de ces scriptes .sql est :
{ORACLE_HOME}RDBMSADMIN
Sur Mon PC : D:apphpproduct11.2.0dbhome_1RDBMSADMIN
Créer de nouveaux tablespace, par exemple :
- Un USERS pour les utilisateurs
- un INDX pour les index
Lancer les scripts de création du dictionnaire (catalog.sql,catproc.sql) et
éventuellement d'autres scripts optionnels
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes pour créer une base Manuellement
(suite)
Précisions sur les paramètres de l'instance (pfile)
le nom de la base ne comporte que 8 caractères
créer au moins deux fichiers de controles
Sur des disques diferents si possible
Laisser Oracle choisir la taille des blocs
On peut contrôler la SGA
En lui fixant une taille maximale
en fixant la taille de différents composants
On peut changer la taille plus tard, de façon dynamique
On peut fixer le nombre de processus autorisés
On doit choisir un mode de gestion des annulations
Comment on gère les données d'annulation ? (Avant Commit)
Automatique : gérées dans un tablespace
Manuel : gérées dans les segments d'annulation (Undo)
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes pour créer une base Manuellement
(suite)
Remarques complémentaires:
Si la création échoue, visualiser le chier d'alertes (show parameter user_dump)
Arrêter l'instance
Supprimer les fichiers crées pendant la tentative
Pour supprimer une base : ( commande drop database)
La base doit être montée et fermée
sql> shutdown immediate;
sql> startup mount exclusive restrict
sql> Drop database ;
Conserve les fichiers d'archivage et les copies
Pour modifier des paramètres
Les commandes ALTER SYSTEM pour les paramètres d'instance (modifie le SPFILE,
pas le PFILE !)
La commandesALTER DATABASE pour revenir sur les choix du CREATE DATABASE
Pour voir les informations sur la base
Show parameters, vues 'database_properties' et V$DATABASE
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes pour créer une base Manuellement
(suite)
Cote serveur
Un processus d‘écoute utilisant un protocole réseau :
listenerSID
Un serveur BD Oracle = instance + base
Les configurations (services d‘écoute) sont enregistrées dans
listener.ora
Éditable a la main, ou via outils graphiques
Côte client
Configurations (services d'acces) enregistrées dans tnsname.ora
Permet au client de se connecter de façon transparente
Éditable a la main, ou via outils graphiques
Configuration du reseau
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Étapes pour créer une base Manuellement
(suite)
 Positionner les variables d'environnement ORACLE_SID et ORACLE_HOME
Démarrage de la base possible par paliers (startup nomount, startup mount,
et startup open)
Posséder les privilèges appropriés (SYSDBA, SYSOPER, OSDBA ou OSOPER, ...)
 Indiquer si nécessaire le fichier des paramètres
■ Syntaxe de la commande
 STARTUP [FORCE] [RESTRICT] [PFILE=fich_param] [OPEN | MOUNT |
NOMOUNT]
ALTER DATABASE [nom_base] MOUNT | OPEN
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Démarrage d'une base :Procédure
Générale
■ Description des mots et paramètres
FORCE Si instance ouverte, Fermeture puis démarrage
RESTRICT sert à des tâches de maintenance. Il faut avoir
le privilège Restricted Session
PFILE Indique le fichier des paramètres
OPEN démarrer et ouvrir les fichiers de la base
MOUNT Instance démarrée fichier(s) de contrôle ouvert(s)
NOMOUNT Seule l'instance est démarrée
ALTER DATABASE : permet le démarre par paliers après un
startup NOMOUNT ou MOUNT
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Démarrage d'une base
■ Exemple
• Variables d’environnement
Unix $export ORACLE_SID = COURS
 $ export ORACLE_HOME=useroracle
Windows  Set ORACLE_SID = COURS
 set ORACLE_HOME=D:apphpproduct11.2.0dbhome_1
Lancer SQLPLUS $sqlplus username : sys as sysdba
démarrer et ouvrir les fichiers de la base
SQL >startup ; oubien $ SQL>startup OPEN
pfile=D:apphpproduct11.2.0dbhome_1dbsinitCOURS.ora;
 démarrer la base par paliers
-Instance démarrée, fichiers de contrôles ouverts SQL >startup mount ;
- En plus les fichiers de données sont ouverts SQL > alter database open ;
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Démarrage d'une base
Posséder les privilèges OS (osdba, osoper)
positionner les variables d'environnement (ORACLE_SID et ORACLE_HOME)
Lancer l'outil SQLPLUS
■ Syntaxe de la commande:
SHUTDOWN [NORMAL | IMMEDIATE | ABORT | TRANSACTIONAL]
– NORMAL attend la déconnexion de l'ensemble des utilisateurs
– IMMEDIATE Invalide les transactions en cours et déconnecte les users
– ABORT Arrêt violent de l'instance (recouvrement utile : SMON)
- TRANSACTIONAL Contrairement à IMMEDIATE, laisse finir les transactions en cours
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Arrêt d'une base:■ Procédure Générale
• Positionner les variables d'environnement (UNIX)
$export ( set dans Windouws) ORACLE_SID=COURS
$export ( set dans Windouws) ORACLE_HOME=usersoraclev9
• Lancer SQL $SQL sys as sysdba
1- arrêt normal avec attente de déconnexion : SQL>shutdown
2- Ou Arrêt immédiat : Annulation des transactions en cours et déconnexion
: SQL>shutdown immediate ;
Les utilisateurs ont le message suivant :
ORA-03113 : end-of-file on communication channel
3- ou Arrêt brutal (pas d’attente de déconnexion, pas d'invalidation de
transactions en cours) : SQL >shutdown abort;
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création de la base : Arrêt d'une base
■ Exemple
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables: tablespaces
Rappel
Espace de stockage logique des objets
Un tablespace = plusieurs fichiers de donnees
Un seul dans le cas des tablespace a gros chier (bigfile)
Il est necessaire d'utiliser plusieurs tablespace :
Separer les donnees des utilisteurs du dictionnaire
Separer les donnees d'applications différentes, pour alléger les accès et
réduire les risques de panne des applications
Tablespaces optimisés pour certaines tâches : lecture seule ou mises a jour
fréquentes, espace temporaire
Sauvegarde individuelle des tablespace
Stocker un tablespace par disque, pour réduire les
concurrences ES
Pour chaque utilisateur il faut assigner un quota
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Rappel : grande lignes
Tablespaces Ordinnaire Stockets les données
Liés aux tables.
Tablespace d'annulation, pour les opérations non valides
Tablespaces temporaires : pour la gestion des tris
Une instance + un tablespace = un segment de tri
Affectés à chaque utilisateurs
Forcement à gestion locale depuis 10g
ne génère pas d‘écriture dans les fichiers de reprise
* Pour vérifier le statut de nos tablespace voilà une requête :
 SELECT tablespace_name, status, contents, extent_management FROM dba_tablespaces;
Différents types de tablespaces
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Bigfilele tablespaces (jusqu'a 128 tera)
Lorsqu'on a besoin de plus de capacite (64 000 fichiers de données au maximum)
Simplifie la gestion du tablespace (un seul fichier)
Uniquement pour les tablespace a gestion locale et automatique de l'espace
Différents types de tablespaces (suite)
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Tablespace créé par défaut lors de la création de la base
contient le dictionnaire de données
contient un Rollback segment créé par défaut SYSTEM
il est déconseillé d'y stocker des données autres que celles du dictionnaire
Le tablespace SYSTEM
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
23
Ajout possible d’autre fichier, separé par la virgule
Clause obligatoire pour la gestion des fichier par manuellement
Clause optionnelle pour la gestion des fichier par oracle(OMF)
On peut specifier la taille dans les deux cas
Note: il y a d’autre clauses optionnels
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
24
TEMPORARY: est utilisé dans le cas des tablespaces
temporaire gérer par le dictionnaire oracle
PERMANENT: Option par Default; stocker les objects
(tables et indexes) d’une façon permanente
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
25
LOCAL: option par défault; gere les extents libres free
par un index bitmap dans la tablespace
DICTIONARY: le tablespace gere les extents libre par le
dictionnaire
Note: D’autres option peuvent etre ajouté ( voir la suite)
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
26
LOGGING: Par Default; tout les DML, DDL, et les insertion
INSERT en masse sont enregistrés dans le redo log
NOLOGGING: Sauf les commandes DML sont enregistrés
dans le redo log
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
27
ONLINE: Par Default; le tablespace est prét à utilisé
OFFLINE: le tablespace n’est encore prét à utilisé
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE <tablespacename>
DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF
TEMPORARY|PERMANENT
EXTENT MANAGEMENT LOCAL|DICTIONARY
LOGGING|NOLOGGING
ONLINE|OFFLINE
SEGMENT SPACE MANAGEMENT MANUAL|AUTO
28
AUTO: gere les espace libre des segment dans un bitmap
dans la tablespace
MANUAL: gere les espace libre des segment dans le
dictionnaire de données oracle
Syntaxe Création de tablespace
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
CREATE TABLESPACE APPLI_PERSONNEL
DATAFILE 'homeFichier1_app_pers.dbf‘ SIZE 100M,
'homeFichier2_app_pers.dbf‘ SIZE 10M
DEFAULT STORAGE ( INITIAL 100K NEXT 50K MINEXTENTS 4
MAXEXTENTS 100 PCTINCREASE 25 )
EXTENT MANAGEMENT DICTIONARY;
Exemple
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
PCTINCREASE 25 veut dire :
Taille de L’extent suivant = taille de l’extent précédent +25%
storage (initial 100K next 50K minextents 1 maxextents 30 pctincrease 5);
-max 30 extents, le premier à une taille de 100K, le suivant de 50K, puis 5% de plus :
(si un bloc = 4K, ) Le 3eme extent est de : 50K+5%=52.5K=13 blocs
Création des tablespaces gérés dans le dictionnaire ( gestion manuelle)
 Généralités
– Les informations sur les extensions des segments sont gérées dans le
dictionnaire
– C’ est l’ approche historique de création de tablespaces sous Oracle jusqu’ à la
version 8i
 Les extensions des segments peuvent avoir des tailles différentes
 Les extensions sont définies par le DBA en s’ appuyant sur les clauses
DEFAULT STORAGE du tablespace ou STORAGE d’ un segment
 Ce type de tablespace à partir de la version 9i ne peut être crée que si le
tablespace System est lui même géré dans le dictionnaire
Tablespaces gérés par le Dictionnaire
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
 Exemple1
SQL> CREATE TABLESPACE APPLI_COMPTA
DATAFILE 'homeFichier1_app_cpt.dbf‘ SIZE 10M AUTOEXTEND ON NEXT 10M
MAXSIZE UNLIMITED EXTENT MANAGEMENT DICTIONARY;
 Exemple2
SQL> CREATE TABLESPACE APPLI_PERSONNEL
DATAFILE 'homeFichier1_app_pers.dbf'SIZE 100M, 'homeFichier2_app_pers.dbf‘
SIZE 10M DEFAULT STORAGE ( INITIAL 100K NEXT 50K MINEXTENTS 4
MAXEXTENTS 100 PCTINCREASE 25 )
EXTENT MANAGEMENT DICTIONARY;
Création des Tablespaces gérés par le Dictionnaire
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
– Un tablespace géré localement prend en charge la gestion de ses extent
– une Bitmap est créé dans l'entête de chaque fichier pour identifier les Blocs ou les
Extents
– c’est l’Option par défaut d’ Oracle
La taille d’une extension ici peut être calculée automatiquement (AUTOALLOCATE) on
peut la fixe (UNIFORM SIZE…)
Si l'on utilise la clause AUTOALLOCATE Oracle détermine la taille optimale des
extensions de chaque segment avec un minimum de 64K. Vous pouvez préciser la taille
de l’extension INITIALE lors de la création du segment. Oracle s’ en sert pour calculer
la taille des extensions du segment
Si l'on utilise la clause UNIFORM SIZE toutes les extensions de tous les segments
auront la même taille : celle spécifiée lors de la création du tablespace ou celle part
défaut qui est de 1Mo
Tablespaces gérés localemnt
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Avantages par rapport a ceux gérés via le Dictionnaire :
– défragmentation automatique du Tablespace
NOTES :
– Les paramètres de stockage NEXT, PCTINCREASE, MINEXTENTS,
MAXEXTENTS, DEFAULT STORAGE sont ignorés pour les Tablespaces
gérés localement
– Avec la clause UNIFORM SIZE INITIAL n’est pas en plus pris en
compte
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Création de Tablespaces gérés localemnt
BLOCKSIZE. Taille du bloc utilisée par le Tablespace. (2k, 4K, 8K, 16K, 32K,64k)
Sql> SHOW PARAMETER DB_BLOCK_SIZE
Exemple 3 :
Création d'un tablespace Local avec la clause AUTOALLOCATE (option par défaut)
Sql> CREATE TABLESPACE TSLOCAL DATAFILE ‘D:ts_local1m.dbf' SIZE 10M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
Sql>
CREATE TABLE TestLocal(c1 char(4))
storage(initial 1m next 500K minextents 2 maxextents 6) tablespace tslocal
Sql>
select SEGMENT_NAME , EXTENT_ID, BYTES, BLOCKS
from dba_extents where SEGMENT_NAME like ‘TESTLOCAL’;
SEGMENT_NAME EXTENT_ID BYTES BLOCKS
TESTLOCAL 0 10485760 128 ---
TESTLOCAL 1 10485760 128
On voit bien que dans autoallocate le paramètre initial de stockage détermine le nombre
de blocs le reste des paramètres est ignoré (RQ: le bloc oracle =8ko)
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Création de Tablespaces gérés localemnt
taille de segment
en bloc oracle
128x8ko=1M
Exemple 4 : Création d'un tablespace Local avec la clause UNIFORM SIZE
Sql> CREATE TABLESPACE tslocaluniform DATAFILE
'F:oracleoradatadbtestsTSLOCALts_local_unif1.dbf' SIZE 10M EXTENT
MANAGEMENT LOCAL UNIFORM SIZE 200K;
Sql> CREATE TABLE Testuniform1(c1 char(4)) tablespace tslocaluniform storage(initial
100k next 50K minextents 1 maxextents 2);
Sql> select SEGMENT_NAME , EXTENT_ID, BYTES, BLOCKS
from dba_extents where SEGMENT_NAME ='TESTUNIFORM1';
SEGMENT_NAME EXTENT_ID BYTES BLOCKS
TESTUNIFORM1 0 204800 25
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
Création de Tablespaces gérés localement
SEGMENT_NAME nom de segment associé à l'extent
TABLESPACE_NAME nom de tablespace qui contient l'extent
EXTENT_ID numero de lExtent dans le segment
BYTES Taille de l'extent en bytes
BLOCKS Taille de segment en bloc oracle
25x8ko=200K
1) Tablespaces à gestion locale des extents (par défaut !)
 Gère la mémoire locallement avec des bitmaps
 Améliore les performances
 Allège les accès au dictionnaire
 Permet le choix automatique de l’unité d’extention
 Autorise la gestion automatique de l’espace dans les segments peut s’appliquer à tous les tablespaces
2) Tablespaces gérer par le dictionnaires
 Gestion plus précise (car il est faite manuellement)
 Nécessite une fusion périodique des extents libres ( défragmentation manuelle)
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Gestion des tablespaces : Locale VS Dictionnaire
Les tablespaces temporaires
Lorsqu'une requête nécessite un tri qui ne peut pas s'exécuter en mémoire (dans la PGA),
Oracle peut utiliser soit:
•un segment temporaire créé dans n'importe quel tablespace permanent. À éviter, puisqu’à
chaque tri, le segment temporaire sera alloué et libéré. Mauvais pour la performance et pour
la fragmentation.
•Ou un segment temporaire créé dans un tablespace temporaire. Dans ce cas, un segment
de tri est créé par le 1er tri ( 1ere requête) et réutilisable par les tris suivants.
Ce segment est libéré uniquement lors de l’arrêt de l’instance.
- Ces tries peuvent provenir des ordres SQL contenant :
ORDER BY, GROUP BY, DISTINCT, UNION, INTERSECTION, MINUS, CREATE INDEX, SORT,
MERGE …
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces temporaire
Exemple de création :
CREATE TEMPORARY TABLESPACE lmtemp
TEMPFILE '/u02/oracle/data/lmtemp01.dbf' SIZE 20M REUSE
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;
Un tablespace temporaire à un fonctionnement particulier :
- Les modifications ne sont pas enregistrées dans les fichiers de journalisation/redo-log.
- ll ne peut pas être renommé ou déplacé (doit le détruire et le recréer)
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces temporaire (suite)
Toutes les données d’annulation sont stockées dans un tablespace spécial appelé « UNDO ».
Lorsque vous créez un tablespace « UNDO », Oracle gère le stockage, la rétention et l’emploi de
l’espace pour les données de rollback par l’intermédiaire de la fonction SMU (System-Managed
Undo). Aucun objet permanent n’est placé dans le tablespace undo. Pour pouvoir créer un
tablespace undo à la création de la base de données, il faut prendre soin d’initialiser le paramètre
UNDO_MANAGEMENT=AUTO
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces UNDO
Rappelez-vous, la syntaxe SQL de création de la base de données comporte
d’abord la création d’un tablespace « SYSTEM » et d’un tablespace « SYSAUX »,
ainsi que la création de tablespaces « TEMP » et « UNDO ».
Attention ! À la création de la base de données, si vous ne précisez pas de
tablespace undo, Oracle crée un tablespace undo appelé « SYS_UNDOTS ».
Le paramètre « UNDO_TABLESPACE » doit avoir la valeur «
SYS_UNDOTS », sinon la base de données ne pourra pas être créée.
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces UNDO (suite)
La syntaxe de création d’un tablespace UNDO est :
CREATE {BIGFILE|SMALLFILE} UNDO TABLESPACE nom_tablespace
[ DATAFILE ['nom_fichier'] [ SIZE integer {K|M|G|T} ]
[ AUTOEXTEND {OFF | ON [ NEXT integer {K|M|G|T}] [ MAXSIZE {UNLIMITED | integer
{K|M|G|T}]} ] [,...] ] [{ONLINE | OFFLINE}] ;
____________________________________________________________
UNDO : Indique que le tablespace est de type undo.
Attention!
Le tablespace « UNDO » par défaut est celui qui est précisé dans le paramètre « UNDO_TABLESPACE
Sql> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- --------
undo_tablespace string UNDOTBS1
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces UNDO (suite)
Sql> create undo tablespace undobis datafile ‘D:fich1.dbf’
size 512m autoextend on next 512m;
Sql> alter system set undo_tablespace =undobis; ( pour activer undobis comme undo)
Système modifié.
Sql> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- -------
undo_tablespace string UNDOBIS
Les information sur l’UNDO sont dans les paramètres suivants : ( show parameter …)
undo_management : Paramètre précisant la méthode de gestion des UNDO (AUTO ou
MANUAL).
undo_tablespace : Tablespace dans lequel seront stockées les informations d'annulation
undo_retention : Durée de rétention des UNDO qu'Oracle va tenter de respecter s'il n'a pas
besoin d'espace supplémentaire
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Tablespaces UNDO (suite)
Consulter les table et vues de dictionnaire
DBA_TABLESPACES
V$TABLESPACE
 DBA_DATA_FILES
 V$DATAFILE
DATABASE_PROPERTIES
Vérification de statut des tablespace:
select status,contents, tablespace_name from dba_tablespaces
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Information sur les tablespaces et les fichiers de données
La vue DBA_DATA_FILES va nous permettre de déterminer la taile d'un tablespace,
La vue DBA_EXTENTS permet de connaitre la taille de tous les segments dans les
différents datafiles,
La vue DBA_FREE_SPACE qui indique les espaces libres dans les database files.
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Information sur les tablespaces et les fichiers de données (suite)
SELECT A.tablespace_Name, A.Alloue, B.Occupe, C.Libre FROM
(SELECT tablespace_name, sum(bytes)/1024/1024 AS ALLOUE FROM dba_data_files GROUP BY
tablespace_name) A,
(SELECT tablespace_name, Sum(bytes)/1024/1024 AS OCCUPE FROM dba_segments
GROUP BY tablespace_name) B,
(SELECT tablespace_name, Sum(bytes)/1024/1024 AS LIBREFROM dba_free_space GROUP BY
tablespace_name) C
WHERE B.tablespace_Name = A.tablespace_Name AND C.Tablespace_Name =
B.Tablespace_Name;
La requête suivante vous permet de récupérer toutes ces informations
Modification des tablespaces
Renommer un tablespace
ALTER TABLESPACE ancien RENAME TO nouveau;
Ajouter ou supprimer un fichier de données
ALTER TABLESPACE nomTablespace ADD DATAFILE emplacementnomFic SIZE 100M;
ALTER TABLESPACE nomTablespace DROP DATAFILE emplacementnomFic ;
Modifier la taille d’un fichier de données
ALTER database datafile emplacementnomFic RESIZE 55M
Placer un tablespace hors ligne
ALTER TABLESPACE nomTablespace OFFLINE [ NORMAL ];
Placer un tablespace en mode lecture seule
ALTER TABLESPACE nomTablespace READ ONLY (au lieu de READ WRITE);
Supprimer un tablespace
DROP TABLESPACE nomTablespace INCLUDING CONTENTS AND DATAFILES;
- Attention : Ce n’est pas une opération où il y un ROLLBACK possible. À utiliser avec précaution ! Il
est également conseillé de mettre le tablespace OFFLINE avant de le supprimer.
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables : tablespaces
• Pour créer une table il faut l’associer à un tablespace si non elle est associer
au tablespace par défaut ( SYSAUX)
• On peut aussi spécifier le type de stockage
Syntaxe :
CREATE TABLE NOM_Table (………) [tablespace nom_tablespace ]
[Storage (initial N1 [k,M,G] next N2 [K,M,G]
minextents N3 maxextents N4 ) ] ;
(N1,N2,N3,N4 sont des nombre entiers )
Exemples :
1- SQL> CREATE TABLE TestLocal(c1 char(4) ) tablespace tslocal
storage(initial 500k next 500K minextents 4 maxextents 10);
2- CREATE TABLE Testuniform1(c1 char(4)) tablespace tslocaluniform
storage(initial 100k next 50K minextents 1 maxextents 2);
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Création Les tables
Rappels sur les indexes : Principes choix et
création : index btree , BitMap
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes
L’index est utile pour accélérer l’exécution d’une requête SQL qui lit des données et ainsi
améliorer les performances d’une application utilisant une base de données
Les 2 types d’index les plus utilisé dans Oracle :
Arbres équilibrés (B-arbre) : toutes les branches de l’arbre ont la même longueur
Il est efficace lorsque les données indexés ne sont pas répétés ( Clé primaire , données uniques)
 Bitmap : Si peu de valeurs sont possibles pour les données répétées, une chaine de bits pour chaque
valeur
Un index est un objet complémentaire (mais non indispensable) à la base de données permettant d'"indexer"
certaines colonnes dans le but d'améliorer l'accès aux données par le SGBDR, au même titre qu'un index dans un livre
ne vous est pas indispensable mais vous permet souvent d'économiser du temps lorsque vous recherchez une partie
spécifique
Qu'est-ce qu'un index?
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes (suite)
De manière générale, un index est créé automatiquement lors de la création de la clé
primaire d'une table ;
de la même manière, il est d'usage d'un créer un pour chaque clé étrangère afin d'améliorer
la vitesse lors des jointures.
Un index peut être :
 Simplement le stockage des données d'une colonne de table qui sera souvent
sollicitée (surtout au niveau des recherches)
 L'ensemble de plusieurs colonnes qui feront l'objet de requête pour les recherches.
Création de l’index
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes (suite)
• Quand créer un index
-----------------------------
 Attributs utilisées dans des jointures,
 Attributs servant souvent pour les sélections,
 Table de gros volume dont la majorité des
interrogations sélectionne moins de 15% des
lignes,
• Quand ne pas créer un index
-------------------------------
 Attributs souvent modifiés (index à
recréer...),
 Table de petit volume,
 si requêtes sur NULL car les NULL, non
stockés dans l’index. (ex : WHERE ... IS
NULL).
Bitmap : attribut à peu de valeurs distinctes,
B-arbre : attribut à beaucoup de valeurs distinctes.
Création de l’index
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes (suite)
La création d'index en SQL se fait grâce à la clause INDEX précédée
de la clause CREATE. Elle permet de définir un index désigné par son nom, portant
sur certains champs d'une table.
La syntaxe est la suivante :
CREATE [UNIQUE] [BITMAP]INDEX Nom_de_l_index ON Nom_de_la_table
(Nom_de_champ [ASCDESC], ...)
Tablespace nom_tablespace_des_index ;
•L'option UNIQUE permet de définir la présence ou non de doublons pour les
valeurs de la colonne
•L'option BITMAP Index de type bitmap
•Les options ASCDESC permettent de définir un ordre de classement des valeurs présentes
dans la colonne
•Supprimer l’INDEX  DROP INDEX Nom_Index
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes (suite)
0-100
-------------
101-200
-------------
-----
………….
-------------
----
301-400-
Branches
( Branch Blocks)
0-33
-----------
34-67
----------
68-100
101-134
-----------
135-167
----------
167-300
0 Rowid
-----------
1 Rowid
----------
…
-------
33 Rowid
34 Rowid
-----------
35 Rowid
----------
…
-------
67 Rowid
68 Rowid
-----------
69 Rowid
----------
…
-------
100Rowid
101 Rowid
-----------
102Rowid
----------
…
-------
134Rowid
135Rowid
-----------
136Rowid
----------
…
-------
167Rowid
168Rowid
-----------
169Rowid
----------
…
-------
300Rowid
Nœud racine
( Root Node)
Feuilles
( Leaf Blocks)
Le segment de la table
Table segment
22
-3
8
5
6
7
2
35
30
20
-5
25
12
10
6
22
-3
8
5
20
7
2
35
30
6
Les valeurs inférieures sont à gauche
Les valeurs Supérieures sont à droit
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
La Recherche
20
10
8
6
5
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
L’Insertion
20
10
11
5 11
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
20
10
5 7
8
6
7
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
2
5
2
Comment ça marche L’index B-Tree ( L’arbre Binnaire)
Suppression
20
20
30
25
22
22
60
L’index Bitmap Select nom, prenom, job_id from employees
ID NOM Prenom Job_id-
---------------------------------------------------------------------------
101 Neena Kochhar AD_VP
102 Lex De Haan AD_VP
103 Alexander Hunold IT_PROG
104 Bruce Ernst IT_PROG
107 Diana Lorentz IT_PROG
108 Nancy Greenberg FI_MGR
109 Daniel Faviet FI_ACCOUNT
110 John Chen FI_ACCOUNT
111 Ismael Sciarra FI_ACCOUNT
112 Jose Manuel Urman FI_ACCOUNT
113 Luis Popp FI_ACCOUNT
115 Alexander Khoo PU_CLERK
116 Shelli Baida PU_CLERK
117 Sigal Tobias PU_CLERK
118 Guy Himuro PU_CLERK
119 Karen Colmenares PU_CLERK
120 Matthew Weiss ST_MAN
121 Adam Fripp ST_MAN
122 Payam Kaufling ST_MAN
123 Shanta Vollman ST_MAN
124 Kevin Mourgos ST_MAN
125 Julia Nayer ST_CLERK
126 Irene Mikkilineni ST_CLERK
127 James Landry ST_CLERK
128 Steven Markle ST_CLERK
105 David Austin IT_PROG
106 VallPataballa IT_PROG
1 2 3 4 5 6 7 8 …
ST_CLERK 0 0 0 0 0 0 0 0 ..
ST_MAN 0 0 0 0 0 0 0 0 ..
FI_ACCOUNT 0 0 0 0 0 0 1 1 ..
PU_CLERK 0 0 0 0 0 0 0 0 ..
IT_PROG 0 0 1 1 1 0 0 0 ..
AD_VP 1 1 0 0 0 0 0 0 ..
Select * from employees where job_id like
‘FI_ACCOUNT’
L’index Bitmap n’est pas utilisé (exploité) quand
la clause est ( not like , not in , different <>, null)
Exemple de création d’index
Créer l’index :
CREATE UNIQUE INDEX idx_clients ON clients(no_client) tablespace index1
CREATE BITMAP INDEX idx_empl ON departments (department_name)
tablespace indextbs
Supprimer l’index  DROP index idx_empl
Administration des bases de données sous Oracle
Chapitre 3: Créer une base de données
Création et Gestion des tablespaces et tables :
Les indexes (suite)

Weitere ähnliche Inhalte

Ähnlich wie LP_chapitre3_Creation et gestion_BD_2019.pptx

Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Nicolas Georgeault
 
Sql Loader
Sql LoaderSql Loader
Sql Loaderreda
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateMor THIAM
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réellesGeoffroy Arnoud
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
nstance.pptx
nstance.pptxnstance.pptx
nstance.pptxBahaty1
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxOussama Bessrour
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfYasushiTsubakik
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linuxThierry Gayet
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheAurelien Navarre
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7Lucian Carabet
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 

Ähnlich wie LP_chapitre3_Creation et gestion_BD_2019.pptx (20)

iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010
 
Sql Loader
Sql LoaderSql Loader
Sql Loader
 
Test
TestTest
Test
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Interfaces controlesbasededonné
Interfaces controlesbasededonnéInterfaces controlesbasededonné
Interfaces controlesbasededonné
 
Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
Drupal Performance
Drupal PerformanceDrupal Performance
Drupal Performance
 
Cours jee 1
Cours jee 1Cours jee 1
Cours jee 1
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
nstance.pptx
nstance.pptxnstance.pptx
nstance.pptx
 
Sql
SqlSql
Sql
 
Gestion des disques et des permission sous Linux
Gestion des disques et des permission sous LinuxGestion des disques et des permission sous Linux
Gestion des disques et des permission sous Linux
 
Développement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdfDéveloppement Web- PHP (partie II).pdf
Développement Web- PHP (partie II).pdf
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
chapitre 1 Android 2.pptx
chapitre 1 Android 2.pptxchapitre 1 Android 2.pptx
chapitre 1 Android 2.pptx
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cacheMeetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 

LP_chapitre3_Creation et gestion_BD_2019.pptx

  • 1. Chapitre 3 : Création de la structure d’une base de données  Phase de réflexion  Création de la base de données: Graphiquement DBCA et manuellement  Création et Gestion des tablespaces et des tables et tablespace Undo  Rappels sur les indexes Principes choix et création : index btree , BitMap  Alimentation d'une base de données: le sqlloader
  • 2. Avant création, et pour faire les bons choix: Réfléchir aux tables et indexes à venir, estimer leur taille Planifier la distribution de ses fichiers, l’espace libre dans les blocks Décider entre une gestion classique ou automatique des fichiers Déterminer la taille des blocs de données Choisir le mode de gestion de l’annulation, Tablespace dédié Segments d’annulation Déterminer la stratégie de sauvegarder et reprise après panne -reprendre l’etat de sauvgarde - Dérouler le fichier de journalisation -réplication Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Phase de réflexion
  • 3. Deux possibilités: Utiliser l’assistant Oracle : graphique : DBCA Créer manuellement à l’aide de scripts En cas de mise à jour d’Oracle ou de migration , une procédure particulière existe Compatibilité ascendante, on ne recrée pas les bases de données. Pré requis : Oracle doit-être installé Vous devez être administrateur du SE et de l’instance La mémoire principale et mémoire disque doit être suffisante Administration des bases de données sous Oracle Chapitre 3 : Créer une base de données Création de la base : Généralités
  • 4. ■ Une Base de données comporte les états suivants Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : États de la l’instance ( base)
  • 5. Les Privilèges utiles Les Privilèges nécessaires pour créer, démarrer ou arrêter une base  SYSDBA (arrêt, démarrage, modification, création d’ une base, …)  SYSOPER(arrêt démarrage d’une base, modification) Administration des bases de données sous Oracle Chapitre 3 : Créer une base de données Création de la base : États de la base
  • 6. 1. Démarrer l’assistant  Soit par start->programme->OracleHome->Configuration and Migration Tools-> Database Configuration Assistant  Ou bien on tape DBCA dans l’invite DOS ( ou dans un terninal en cas Linux et Unix) 2. Choisir créer une base 3. Choisir un template (modèle) de base 4. Donner le nom global de la base (exemple DBTEST) ainsi que le SID (DBTEST) 5. Sélectionner le mode de déploiement de la base (mode dédié) ou (mode serveurs multithreads) 6. Fixer la taille de la SGA(buffer cache, shared pool, large pool, java pool) 7. sélectionner le mode d’archivage de la base (Archivelog ou noarchivelog).Localiser les fichiers d’archive 8. Fixer la taille maximale de la zone de tri ainsi que les caractères sets 9. Localiser les fichiers de contrôles, de données et redo log 10. Modifier à tout moment les paramètres d’itialisation supplémentaires et démarrer la création de la base Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes à suivre pour créer une base avec le Database Configuration Assistant: DBCA
  • 7. Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes pour créer une base Manuellement Spécifier le nom de l'instance SID : ( ici DB1 ) positionner les variable : oracle_home=D:apphpproduct11.2.0dbhome_1 oracle_base=D:apphp et oracle_sid= DB1 Créer le fichier de paramètres PFILE (partir de l'exemple Oracle init%.ora) (D:apphpadminorclpfileinit.ora) Nom de la base, emplacement des fichiers de contrôle …. Créer le fichier de mot de passe - orapwd file=orapwDB1 password=Test01; Pour windows executer : oradim -new -sid DB1 Se connecter a l'instance inactive SQLPLUS nolog puis CONNECT AS SYSDBA STARTUP PFILE='D:apphpadminDB1pfileinit.ora' nomount Créer un fichier de paramètre serveur SPFILE (D:apphpproduct11.2.0dbhome_1database) (a partir du fichier manuel)  Create SPFILE from PFILE SQL> create SPFILE='D:APPHPPRODUCT11.2.0DBHOME_1DATABASESPFILEDB1.ora' from PFILE='D:apphpadminDB1pfileinit.ora'; ; Mon noyau oracle (ORACLE_BASE )est installé sous D:apphp À l’aide la commade MKDIR on crée les répertoires suivant : D:apphpadmin , D:apphporadata , D:apphpadminDB1, D:apphporadataDB1 , D:apphpadminDB1bdump , D:apphpadminDB1cdump D:apphpadminDB1pfile et D:apphpadminDB1udump, D:apphpflash_recovery_areaDB1
  • 8. CREATE DATABASE DB1 USER SYS IDENTIFIED BY pz6r58 USER SYSTEM IDENTIFIED BY y1tz5p LOGFILE GROUP 1 ('D:apphporadataDB1redo01.log') SIZE 100M, GROUP 2 ('D:apphporadataDB1redo02.log') SIZE 10M, GROUP 3 ('D:apphporadataDB1redo03.log') SIZE 10M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16 DATAFILE 'D:apphporadataDB1system01.dbf' SIZE 320M REUSE EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE 'D:apphporadataDB1sysaux01.dbf' SIZE 320M REUSE DEFAULT TABLESPACE tbs_1 DATAFILE 'D:apphporadataDB1users01.dbf' SIZE 50M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE 'D:apphporadataDB1temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs1 DATAFILE 'D:apphporadataDB1undotbs01.dbf' SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
  • 9. création des vues et synonymes publics (CATALOG.SQL) • Installation de l'option procédurale(CATPROC.SQL) • création des synonymes publics pour les tables virtuelles (UTLMONTR.SQL) • Création des Synonymes sur les vues dba_* du dictionnaire (CATDBSYN.SQL) pour le DBA  Le chemin de ces scriptes .sql est : {ORACLE_HOME}RDBMSADMIN Sur Mon PC : D:apphpproduct11.2.0dbhome_1RDBMSADMIN Créer de nouveaux tablespace, par exemple : - Un USERS pour les utilisateurs - un INDX pour les index Lancer les scripts de création du dictionnaire (catalog.sql,catproc.sql) et éventuellement d'autres scripts optionnels Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes pour créer une base Manuellement (suite)
  • 10. Précisions sur les paramètres de l'instance (pfile) le nom de la base ne comporte que 8 caractères créer au moins deux fichiers de controles Sur des disques diferents si possible Laisser Oracle choisir la taille des blocs On peut contrôler la SGA En lui fixant une taille maximale en fixant la taille de différents composants On peut changer la taille plus tard, de façon dynamique On peut fixer le nombre de processus autorisés On doit choisir un mode de gestion des annulations Comment on gère les données d'annulation ? (Avant Commit) Automatique : gérées dans un tablespace Manuel : gérées dans les segments d'annulation (Undo) Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes pour créer une base Manuellement (suite)
  • 11. Remarques complémentaires: Si la création échoue, visualiser le chier d'alertes (show parameter user_dump) Arrêter l'instance Supprimer les fichiers crées pendant la tentative Pour supprimer une base : ( commande drop database) La base doit être montée et fermée sql> shutdown immediate; sql> startup mount exclusive restrict sql> Drop database ; Conserve les fichiers d'archivage et les copies Pour modifier des paramètres Les commandes ALTER SYSTEM pour les paramètres d'instance (modifie le SPFILE, pas le PFILE !) La commandesALTER DATABASE pour revenir sur les choix du CREATE DATABASE Pour voir les informations sur la base Show parameters, vues 'database_properties' et V$DATABASE Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes pour créer une base Manuellement (suite)
  • 12. Cote serveur Un processus d‘écoute utilisant un protocole réseau : listenerSID Un serveur BD Oracle = instance + base Les configurations (services d‘écoute) sont enregistrées dans listener.ora Éditable a la main, ou via outils graphiques Côte client Configurations (services d'acces) enregistrées dans tnsname.ora Permet au client de se connecter de façon transparente Éditable a la main, ou via outils graphiques Configuration du reseau Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Étapes pour créer une base Manuellement (suite)
  • 13.  Positionner les variables d'environnement ORACLE_SID et ORACLE_HOME Démarrage de la base possible par paliers (startup nomount, startup mount, et startup open) Posséder les privilèges appropriés (SYSDBA, SYSOPER, OSDBA ou OSOPER, ...)  Indiquer si nécessaire le fichier des paramètres ■ Syntaxe de la commande  STARTUP [FORCE] [RESTRICT] [PFILE=fich_param] [OPEN | MOUNT | NOMOUNT] ALTER DATABASE [nom_base] MOUNT | OPEN Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Démarrage d'une base :Procédure Générale
  • 14. ■ Description des mots et paramètres FORCE Si instance ouverte, Fermeture puis démarrage RESTRICT sert à des tâches de maintenance. Il faut avoir le privilège Restricted Session PFILE Indique le fichier des paramètres OPEN démarrer et ouvrir les fichiers de la base MOUNT Instance démarrée fichier(s) de contrôle ouvert(s) NOMOUNT Seule l'instance est démarrée ALTER DATABASE : permet le démarre par paliers après un startup NOMOUNT ou MOUNT Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Démarrage d'une base
  • 15. ■ Exemple • Variables d’environnement Unix $export ORACLE_SID = COURS  $ export ORACLE_HOME=useroracle Windows  Set ORACLE_SID = COURS  set ORACLE_HOME=D:apphpproduct11.2.0dbhome_1 Lancer SQLPLUS $sqlplus username : sys as sysdba démarrer et ouvrir les fichiers de la base SQL >startup ; oubien $ SQL>startup OPEN pfile=D:apphpproduct11.2.0dbhome_1dbsinitCOURS.ora;  démarrer la base par paliers -Instance démarrée, fichiers de contrôles ouverts SQL >startup mount ; - En plus les fichiers de données sont ouverts SQL > alter database open ; Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Démarrage d'une base
  • 16. Posséder les privilèges OS (osdba, osoper) positionner les variables d'environnement (ORACLE_SID et ORACLE_HOME) Lancer l'outil SQLPLUS ■ Syntaxe de la commande: SHUTDOWN [NORMAL | IMMEDIATE | ABORT | TRANSACTIONAL] – NORMAL attend la déconnexion de l'ensemble des utilisateurs – IMMEDIATE Invalide les transactions en cours et déconnecte les users – ABORT Arrêt violent de l'instance (recouvrement utile : SMON) - TRANSACTIONAL Contrairement à IMMEDIATE, laisse finir les transactions en cours Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Arrêt d'une base:■ Procédure Générale
  • 17. • Positionner les variables d'environnement (UNIX) $export ( set dans Windouws) ORACLE_SID=COURS $export ( set dans Windouws) ORACLE_HOME=usersoraclev9 • Lancer SQL $SQL sys as sysdba 1- arrêt normal avec attente de déconnexion : SQL>shutdown 2- Ou Arrêt immédiat : Annulation des transactions en cours et déconnexion : SQL>shutdown immediate ; Les utilisateurs ont le message suivant : ORA-03113 : end-of-file on communication channel 3- ou Arrêt brutal (pas d’attente de déconnexion, pas d'invalidation de transactions en cours) : SQL >shutdown abort; Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création de la base : Arrêt d'une base ■ Exemple
  • 18. Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables: tablespaces Rappel
  • 19. Espace de stockage logique des objets Un tablespace = plusieurs fichiers de donnees Un seul dans le cas des tablespace a gros chier (bigfile) Il est necessaire d'utiliser plusieurs tablespace : Separer les donnees des utilisteurs du dictionnaire Separer les donnees d'applications différentes, pour alléger les accès et réduire les risques de panne des applications Tablespaces optimisés pour certaines tâches : lecture seule ou mises a jour fréquentes, espace temporaire Sauvegarde individuelle des tablespace Stocker un tablespace par disque, pour réduire les concurrences ES Pour chaque utilisateur il faut assigner un quota Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces Rappel : grande lignes
  • 20. Tablespaces Ordinnaire Stockets les données Liés aux tables. Tablespace d'annulation, pour les opérations non valides Tablespaces temporaires : pour la gestion des tris Une instance + un tablespace = un segment de tri Affectés à chaque utilisateurs Forcement à gestion locale depuis 10g ne génère pas d‘écriture dans les fichiers de reprise * Pour vérifier le statut de nos tablespace voilà une requête :  SELECT tablespace_name, status, contents, extent_management FROM dba_tablespaces; Différents types de tablespaces Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 21. Bigfilele tablespaces (jusqu'a 128 tera) Lorsqu'on a besoin de plus de capacite (64 000 fichiers de données au maximum) Simplifie la gestion du tablespace (un seul fichier) Uniquement pour les tablespace a gestion locale et automatique de l'espace Différents types de tablespaces (suite) Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 22. Tablespace créé par défaut lors de la création de la base contient le dictionnaire de données contient un Rollback segment créé par défaut SYSTEM il est déconseillé d'y stocker des données autres que celles du dictionnaire Le tablespace SYSTEM Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 23. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 23 Ajout possible d’autre fichier, separé par la virgule Clause obligatoire pour la gestion des fichier par manuellement Clause optionnelle pour la gestion des fichier par oracle(OMF) On peut specifier la taille dans les deux cas Note: il y a d’autre clauses optionnels Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 24. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 24 TEMPORARY: est utilisé dans le cas des tablespaces temporaire gérer par le dictionnaire oracle PERMANENT: Option par Default; stocker les objects (tables et indexes) d’une façon permanente Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 25. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 25 LOCAL: option par défault; gere les extents libres free par un index bitmap dans la tablespace DICTIONARY: le tablespace gere les extents libre par le dictionnaire Note: D’autres option peuvent etre ajouté ( voir la suite) Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 26. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 26 LOGGING: Par Default; tout les DML, DDL, et les insertion INSERT en masse sont enregistrés dans le redo log NOLOGGING: Sauf les commandes DML sont enregistrés dans le redo log Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 27. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 27 ONLINE: Par Default; le tablespace est prét à utilisé OFFLINE: le tablespace n’est encore prét à utilisé Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 28. CREATE TABLESPACE <tablespacename> DATAFILE <filename> SIZE <nn> AUTOEXTEND ON|OFF TEMPORARY|PERMANENT EXTENT MANAGEMENT LOCAL|DICTIONARY LOGGING|NOLOGGING ONLINE|OFFLINE SEGMENT SPACE MANAGEMENT MANUAL|AUTO 28 AUTO: gere les espace libre des segment dans un bitmap dans la tablespace MANUAL: gere les espace libre des segment dans le dictionnaire de données oracle Syntaxe Création de tablespace Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 29. CREATE TABLESPACE APPLI_PERSONNEL DATAFILE 'homeFichier1_app_pers.dbf‘ SIZE 100M, 'homeFichier2_app_pers.dbf‘ SIZE 10M DEFAULT STORAGE ( INITIAL 100K NEXT 50K MINEXTENTS 4 MAXEXTENTS 100 PCTINCREASE 25 ) EXTENT MANAGEMENT DICTIONARY; Exemple Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces PCTINCREASE 25 veut dire : Taille de L’extent suivant = taille de l’extent précédent +25% storage (initial 100K next 50K minextents 1 maxextents 30 pctincrease 5); -max 30 extents, le premier à une taille de 100K, le suivant de 50K, puis 5% de plus : (si un bloc = 4K, ) Le 3eme extent est de : 50K+5%=52.5K=13 blocs
  • 30. Création des tablespaces gérés dans le dictionnaire ( gestion manuelle)  Généralités – Les informations sur les extensions des segments sont gérées dans le dictionnaire – C’ est l’ approche historique de création de tablespaces sous Oracle jusqu’ à la version 8i  Les extensions des segments peuvent avoir des tailles différentes  Les extensions sont définies par le DBA en s’ appuyant sur les clauses DEFAULT STORAGE du tablespace ou STORAGE d’ un segment  Ce type de tablespace à partir de la version 9i ne peut être crée que si le tablespace System est lui même géré dans le dictionnaire Tablespaces gérés par le Dictionnaire Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 31.  Exemple1 SQL> CREATE TABLESPACE APPLI_COMPTA DATAFILE 'homeFichier1_app_cpt.dbf‘ SIZE 10M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT DICTIONARY;  Exemple2 SQL> CREATE TABLESPACE APPLI_PERSONNEL DATAFILE 'homeFichier1_app_pers.dbf'SIZE 100M, 'homeFichier2_app_pers.dbf‘ SIZE 10M DEFAULT STORAGE ( INITIAL 100K NEXT 50K MINEXTENTS 4 MAXEXTENTS 100 PCTINCREASE 25 ) EXTENT MANAGEMENT DICTIONARY; Création des Tablespaces gérés par le Dictionnaire Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 32. – Un tablespace géré localement prend en charge la gestion de ses extent – une Bitmap est créé dans l'entête de chaque fichier pour identifier les Blocs ou les Extents – c’est l’Option par défaut d’ Oracle La taille d’une extension ici peut être calculée automatiquement (AUTOALLOCATE) on peut la fixe (UNIFORM SIZE…) Si l'on utilise la clause AUTOALLOCATE Oracle détermine la taille optimale des extensions de chaque segment avec un minimum de 64K. Vous pouvez préciser la taille de l’extension INITIALE lors de la création du segment. Oracle s’ en sert pour calculer la taille des extensions du segment Si l'on utilise la clause UNIFORM SIZE toutes les extensions de tous les segments auront la même taille : celle spécifiée lors de la création du tablespace ou celle part défaut qui est de 1Mo Tablespaces gérés localemnt Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 33. Avantages par rapport a ceux gérés via le Dictionnaire : – défragmentation automatique du Tablespace NOTES : – Les paramètres de stockage NEXT, PCTINCREASE, MINEXTENTS, MAXEXTENTS, DEFAULT STORAGE sont ignorés pour les Tablespaces gérés localement – Avec la clause UNIFORM SIZE INITIAL n’est pas en plus pris en compte Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces Création de Tablespaces gérés localemnt BLOCKSIZE. Taille du bloc utilisée par le Tablespace. (2k, 4K, 8K, 16K, 32K,64k) Sql> SHOW PARAMETER DB_BLOCK_SIZE
  • 34. Exemple 3 : Création d'un tablespace Local avec la clause AUTOALLOCATE (option par défaut) Sql> CREATE TABLESPACE TSLOCAL DATAFILE ‘D:ts_local1m.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; Sql> CREATE TABLE TestLocal(c1 char(4)) storage(initial 1m next 500K minextents 2 maxextents 6) tablespace tslocal Sql> select SEGMENT_NAME , EXTENT_ID, BYTES, BLOCKS from dba_extents where SEGMENT_NAME like ‘TESTLOCAL’; SEGMENT_NAME EXTENT_ID BYTES BLOCKS TESTLOCAL 0 10485760 128 --- TESTLOCAL 1 10485760 128 On voit bien que dans autoallocate le paramètre initial de stockage détermine le nombre de blocs le reste des paramètres est ignoré (RQ: le bloc oracle =8ko) Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces Création de Tablespaces gérés localemnt taille de segment en bloc oracle 128x8ko=1M
  • 35. Exemple 4 : Création d'un tablespace Local avec la clause UNIFORM SIZE Sql> CREATE TABLESPACE tslocaluniform DATAFILE 'F:oracleoradatadbtestsTSLOCALts_local_unif1.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 200K; Sql> CREATE TABLE Testuniform1(c1 char(4)) tablespace tslocaluniform storage(initial 100k next 50K minextents 1 maxextents 2); Sql> select SEGMENT_NAME , EXTENT_ID, BYTES, BLOCKS from dba_extents where SEGMENT_NAME ='TESTUNIFORM1'; SEGMENT_NAME EXTENT_ID BYTES BLOCKS TESTUNIFORM1 0 204800 25 Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces Création de Tablespaces gérés localement SEGMENT_NAME nom de segment associé à l'extent TABLESPACE_NAME nom de tablespace qui contient l'extent EXTENT_ID numero de lExtent dans le segment BYTES Taille de l'extent en bytes BLOCKS Taille de segment en bloc oracle 25x8ko=200K
  • 36. 1) Tablespaces à gestion locale des extents (par défaut !)  Gère la mémoire locallement avec des bitmaps  Améliore les performances  Allège les accès au dictionnaire  Permet le choix automatique de l’unité d’extention  Autorise la gestion automatique de l’espace dans les segments peut s’appliquer à tous les tablespaces 2) Tablespaces gérer par le dictionnaires  Gestion plus précise (car il est faite manuellement)  Nécessite une fusion périodique des extents libres ( défragmentation manuelle) Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Gestion des tablespaces : Locale VS Dictionnaire
  • 37. Les tablespaces temporaires Lorsqu'une requête nécessite un tri qui ne peut pas s'exécuter en mémoire (dans la PGA), Oracle peut utiliser soit: •un segment temporaire créé dans n'importe quel tablespace permanent. À éviter, puisqu’à chaque tri, le segment temporaire sera alloué et libéré. Mauvais pour la performance et pour la fragmentation. •Ou un segment temporaire créé dans un tablespace temporaire. Dans ce cas, un segment de tri est créé par le 1er tri ( 1ere requête) et réutilisable par les tris suivants. Ce segment est libéré uniquement lors de l’arrêt de l’instance. - Ces tries peuvent provenir des ordres SQL contenant : ORDER BY, GROUP BY, DISTINCT, UNION, INTERSECTION, MINUS, CREATE INDEX, SORT, MERGE … Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces temporaire
  • 38. Exemple de création : CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE '/u02/oracle/data/lmtemp01.dbf' SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M; Un tablespace temporaire à un fonctionnement particulier : - Les modifications ne sont pas enregistrées dans les fichiers de journalisation/redo-log. - ll ne peut pas être renommé ou déplacé (doit le détruire et le recréer) Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces temporaire (suite)
  • 39. Toutes les données d’annulation sont stockées dans un tablespace spécial appelé « UNDO ». Lorsque vous créez un tablespace « UNDO », Oracle gère le stockage, la rétention et l’emploi de l’espace pour les données de rollback par l’intermédiaire de la fonction SMU (System-Managed Undo). Aucun objet permanent n’est placé dans le tablespace undo. Pour pouvoir créer un tablespace undo à la création de la base de données, il faut prendre soin d’initialiser le paramètre UNDO_MANAGEMENT=AUTO Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces UNDO
  • 40. Rappelez-vous, la syntaxe SQL de création de la base de données comporte d’abord la création d’un tablespace « SYSTEM » et d’un tablespace « SYSAUX », ainsi que la création de tablespaces « TEMP » et « UNDO ». Attention ! À la création de la base de données, si vous ne précisez pas de tablespace undo, Oracle crée un tablespace undo appelé « SYS_UNDOTS ». Le paramètre « UNDO_TABLESPACE » doit avoir la valeur « SYS_UNDOTS », sinon la base de données ne pourra pas être créée. Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces UNDO (suite)
  • 41. La syntaxe de création d’un tablespace UNDO est : CREATE {BIGFILE|SMALLFILE} UNDO TABLESPACE nom_tablespace [ DATAFILE ['nom_fichier'] [ SIZE integer {K|M|G|T} ] [ AUTOEXTEND {OFF | ON [ NEXT integer {K|M|G|T}] [ MAXSIZE {UNLIMITED | integer {K|M|G|T}]} ] [,...] ] [{ONLINE | OFFLINE}] ; ____________________________________________________________ UNDO : Indique que le tablespace est de type undo. Attention! Le tablespace « UNDO » par défaut est celui qui est précisé dans le paramètre « UNDO_TABLESPACE Sql> show parameter undo_tablespace NAME TYPE VALUE ------------------------------------ ----------- -------- undo_tablespace string UNDOTBS1 Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces UNDO (suite)
  • 42. Sql> create undo tablespace undobis datafile ‘D:fich1.dbf’ size 512m autoextend on next 512m; Sql> alter system set undo_tablespace =undobis; ( pour activer undobis comme undo) Système modifié. Sql> show parameter undo_tablespace NAME TYPE VALUE ------------------------------------ ----------- ------- undo_tablespace string UNDOBIS Les information sur l’UNDO sont dans les paramètres suivants : ( show parameter …) undo_management : Paramètre précisant la méthode de gestion des UNDO (AUTO ou MANUAL). undo_tablespace : Tablespace dans lequel seront stockées les informations d'annulation undo_retention : Durée de rétention des UNDO qu'Oracle va tenter de respecter s'il n'a pas besoin d'espace supplémentaire Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Tablespaces UNDO (suite)
  • 43. Consulter les table et vues de dictionnaire DBA_TABLESPACES V$TABLESPACE  DBA_DATA_FILES  V$DATAFILE DATABASE_PROPERTIES Vérification de statut des tablespace: select status,contents, tablespace_name from dba_tablespaces Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Information sur les tablespaces et les fichiers de données
  • 44. La vue DBA_DATA_FILES va nous permettre de déterminer la taile d'un tablespace, La vue DBA_EXTENTS permet de connaitre la taille de tous les segments dans les différents datafiles, La vue DBA_FREE_SPACE qui indique les espaces libres dans les database files. Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Information sur les tablespaces et les fichiers de données (suite) SELECT A.tablespace_Name, A.Alloue, B.Occupe, C.Libre FROM (SELECT tablespace_name, sum(bytes)/1024/1024 AS ALLOUE FROM dba_data_files GROUP BY tablespace_name) A, (SELECT tablespace_name, Sum(bytes)/1024/1024 AS OCCUPE FROM dba_segments GROUP BY tablespace_name) B, (SELECT tablespace_name, Sum(bytes)/1024/1024 AS LIBREFROM dba_free_space GROUP BY tablespace_name) C WHERE B.tablespace_Name = A.tablespace_Name AND C.Tablespace_Name = B.Tablespace_Name; La requête suivante vous permet de récupérer toutes ces informations
  • 45. Modification des tablespaces Renommer un tablespace ALTER TABLESPACE ancien RENAME TO nouveau; Ajouter ou supprimer un fichier de données ALTER TABLESPACE nomTablespace ADD DATAFILE emplacementnomFic SIZE 100M; ALTER TABLESPACE nomTablespace DROP DATAFILE emplacementnomFic ; Modifier la taille d’un fichier de données ALTER database datafile emplacementnomFic RESIZE 55M Placer un tablespace hors ligne ALTER TABLESPACE nomTablespace OFFLINE [ NORMAL ]; Placer un tablespace en mode lecture seule ALTER TABLESPACE nomTablespace READ ONLY (au lieu de READ WRITE); Supprimer un tablespace DROP TABLESPACE nomTablespace INCLUDING CONTENTS AND DATAFILES; - Attention : Ce n’est pas une opération où il y un ROLLBACK possible. À utiliser avec précaution ! Il est également conseillé de mettre le tablespace OFFLINE avant de le supprimer. Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : tablespaces
  • 46. • Pour créer une table il faut l’associer à un tablespace si non elle est associer au tablespace par défaut ( SYSAUX) • On peut aussi spécifier le type de stockage Syntaxe : CREATE TABLE NOM_Table (………) [tablespace nom_tablespace ] [Storage (initial N1 [k,M,G] next N2 [K,M,G] minextents N3 maxextents N4 ) ] ; (N1,N2,N3,N4 sont des nombre entiers ) Exemples : 1- SQL> CREATE TABLE TestLocal(c1 char(4) ) tablespace tslocal storage(initial 500k next 500K minextents 4 maxextents 10); 2- CREATE TABLE Testuniform1(c1 char(4)) tablespace tslocaluniform storage(initial 100k next 50K minextents 1 maxextents 2); Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Création Les tables
  • 47. Rappels sur les indexes : Principes choix et création : index btree , BitMap Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes
  • 48. L’index est utile pour accélérer l’exécution d’une requête SQL qui lit des données et ainsi améliorer les performances d’une application utilisant une base de données Les 2 types d’index les plus utilisé dans Oracle : Arbres équilibrés (B-arbre) : toutes les branches de l’arbre ont la même longueur Il est efficace lorsque les données indexés ne sont pas répétés ( Clé primaire , données uniques)  Bitmap : Si peu de valeurs sont possibles pour les données répétées, une chaine de bits pour chaque valeur Un index est un objet complémentaire (mais non indispensable) à la base de données permettant d'"indexer" certaines colonnes dans le but d'améliorer l'accès aux données par le SGBDR, au même titre qu'un index dans un livre ne vous est pas indispensable mais vous permet souvent d'économiser du temps lorsque vous recherchez une partie spécifique Qu'est-ce qu'un index? Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes (suite)
  • 49. De manière générale, un index est créé automatiquement lors de la création de la clé primaire d'une table ; de la même manière, il est d'usage d'un créer un pour chaque clé étrangère afin d'améliorer la vitesse lors des jointures. Un index peut être :  Simplement le stockage des données d'une colonne de table qui sera souvent sollicitée (surtout au niveau des recherches)  L'ensemble de plusieurs colonnes qui feront l'objet de requête pour les recherches. Création de l’index Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes (suite)
  • 50. • Quand créer un index -----------------------------  Attributs utilisées dans des jointures,  Attributs servant souvent pour les sélections,  Table de gros volume dont la majorité des interrogations sélectionne moins de 15% des lignes, • Quand ne pas créer un index -------------------------------  Attributs souvent modifiés (index à recréer...),  Table de petit volume,  si requêtes sur NULL car les NULL, non stockés dans l’index. (ex : WHERE ... IS NULL). Bitmap : attribut à peu de valeurs distinctes, B-arbre : attribut à beaucoup de valeurs distinctes. Création de l’index Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes (suite)
  • 51. La création d'index en SQL se fait grâce à la clause INDEX précédée de la clause CREATE. Elle permet de définir un index désigné par son nom, portant sur certains champs d'une table. La syntaxe est la suivante : CREATE [UNIQUE] [BITMAP]INDEX Nom_de_l_index ON Nom_de_la_table (Nom_de_champ [ASCDESC], ...) Tablespace nom_tablespace_des_index ; •L'option UNIQUE permet de définir la présence ou non de doublons pour les valeurs de la colonne •L'option BITMAP Index de type bitmap •Les options ASCDESC permettent de définir un ordre de classement des valeurs présentes dans la colonne •Supprimer l’INDEX  DROP INDEX Nom_Index Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes (suite)
  • 52. 0-100 ------------- 101-200 ------------- ----- …………. ------------- ---- 301-400- Branches ( Branch Blocks) 0-33 ----------- 34-67 ---------- 68-100 101-134 ----------- 135-167 ---------- 167-300 0 Rowid ----------- 1 Rowid ---------- … ------- 33 Rowid 34 Rowid ----------- 35 Rowid ---------- … ------- 67 Rowid 68 Rowid ----------- 69 Rowid ---------- … ------- 100Rowid 101 Rowid ----------- 102Rowid ---------- … ------- 134Rowid 135Rowid ----------- 136Rowid ---------- … ------- 167Rowid 168Rowid ----------- 169Rowid ---------- … ------- 300Rowid Nœud racine ( Root Node) Feuilles ( Leaf Blocks) Le segment de la table Table segment
  • 54. Les valeurs inférieures sont à gauche Les valeurs Supérieures sont à droit Comment ça marche L’index B-Tree ( L’arbre Binnaire)
  • 55. Comment ça marche L’index B-Tree ( L’arbre Binnaire) La Recherche 20 10 8 6 5
  • 56. Comment ça marche L’index B-Tree ( L’arbre Binnaire) L’Insertion 20 10 11 5 11
  • 57. Comment ça marche L’index B-Tree ( L’arbre Binnaire) Suppression 20 10 5 7 8 6 7
  • 58. Comment ça marche L’index B-Tree ( L’arbre Binnaire) Suppression 2 5 2
  • 59. Comment ça marche L’index B-Tree ( L’arbre Binnaire) Suppression 20 20 30 25 22 22
  • 60. 60 L’index Bitmap Select nom, prenom, job_id from employees ID NOM Prenom Job_id- --------------------------------------------------------------------------- 101 Neena Kochhar AD_VP 102 Lex De Haan AD_VP 103 Alexander Hunold IT_PROG 104 Bruce Ernst IT_PROG 107 Diana Lorentz IT_PROG 108 Nancy Greenberg FI_MGR 109 Daniel Faviet FI_ACCOUNT 110 John Chen FI_ACCOUNT 111 Ismael Sciarra FI_ACCOUNT 112 Jose Manuel Urman FI_ACCOUNT 113 Luis Popp FI_ACCOUNT 115 Alexander Khoo PU_CLERK 116 Shelli Baida PU_CLERK 117 Sigal Tobias PU_CLERK 118 Guy Himuro PU_CLERK 119 Karen Colmenares PU_CLERK 120 Matthew Weiss ST_MAN 121 Adam Fripp ST_MAN 122 Payam Kaufling ST_MAN 123 Shanta Vollman ST_MAN 124 Kevin Mourgos ST_MAN 125 Julia Nayer ST_CLERK 126 Irene Mikkilineni ST_CLERK 127 James Landry ST_CLERK 128 Steven Markle ST_CLERK 105 David Austin IT_PROG 106 VallPataballa IT_PROG 1 2 3 4 5 6 7 8 … ST_CLERK 0 0 0 0 0 0 0 0 .. ST_MAN 0 0 0 0 0 0 0 0 .. FI_ACCOUNT 0 0 0 0 0 0 1 1 .. PU_CLERK 0 0 0 0 0 0 0 0 .. IT_PROG 0 0 1 1 1 0 0 0 .. AD_VP 1 1 0 0 0 0 0 0 .. Select * from employees where job_id like ‘FI_ACCOUNT’ L’index Bitmap n’est pas utilisé (exploité) quand la clause est ( not like , not in , different <>, null)
  • 61. Exemple de création d’index Créer l’index : CREATE UNIQUE INDEX idx_clients ON clients(no_client) tablespace index1 CREATE BITMAP INDEX idx_empl ON departments (department_name) tablespace indextbs Supprimer l’index  DROP index idx_empl Administration des bases de données sous Oracle Chapitre 3: Créer une base de données Création et Gestion des tablespaces et tables : Les indexes (suite)