Création d'une nouvelle base de données
A. Vue d'ensemble
1. Étapes de création d'une nouvelle base de données pour une application
Le processus complet de création d'une nouvelle base de données pour une application
comporte les grandes étapes suivantes :
Conception du modèle physique
- Définir tous les objets (Oracle) de l'application : tables, contraintes d'intégrité (clés
primaires/uniques/étrangères), index, vues, programmes stockés (triggers, procédures/
fonctions stockées, packages).
- Étudier la volumétrie de l'application (nombre d'utilisateurs, nombre de lignes attendues
dans les tables).
Création de la base proprement dite (ce chapitre)
- Créer une nouvelle instance.
- Créer une nouvelle base de données (fichiers de contrôle, fichiers de journalisation et
fichiers de données des tablespaces "techniques" d'Oracle).
- Rendre le dictionnaire de données exploitable.
- À ce stade, la base de données peut être vue comme une "enveloppe" (une "boîte vide")
dans laquelle des structures vont être créées pour une ou plusieurs applications.
Création des structures de stockage adaptées (chapitres Gestion des tablespaces
et des fichiers de données et Gestion des informations d’annulation)
- Créer les tablespaces (avec leurs fichiers de données) destinés à stocker les données de
l'application (tables et index).
- Les dimensionner en fonction de l'étude de volumétrie réalisée initialement.
Création du compte Oracle qui va contenir les objets de l'application
(chapitre Gestion des utilisateurs et de leurs droits)
- Créer le compte.
- Lui donner les privilèges suffisants pour créer les objets.
ã Editions ENI - All rights reserved
- L'autoriser à utiliser de l'espace dans les tablespaces de l'application.
Création des objets de l'application dans ce compte Oracle
(chapitre Gestion des tables et des index)
- Créer les objets Oracle de l'application (généralement sous la forme d'un ou de plusieurs
scripts).
- Dimensionner chaque objet occupant de l'espace de stockage (table et index) en fonction
de l'étude de volumétrie réalisée initialement.
Oracle 11g - Administration 163
Chapitre 7
Création des utilisateurs finaux de l'application
(chapitre Gestion des utilisateurs et de leurs droits)
- Créer les utilisateurs.
- Leur donner des droits adaptés sur les objets de l'application (i.e. sur les objets créés
précédemment dans le compte propriétaire de l'application).
Sauvegarde de la base (chapitre Sauvegarde et récupération)
- Sauvegarde de référence de la base.
Comme vous pouvez le constater, la création de la base de données proprement dite pré-
sentée dans ce chapitre n'est qu'une petite étape du processus complet (mais une étape
fondamentale).
2. Étapes de création de la base de données proprement dite
Les grandes étapes de la création de la base de données proprement dite sont les suivantes :
- Créer les répertoires sur les disques, si possible en respectant les recommandations du
standard OFA.
- Préparer un nouveau fichier de paramètres texte, généralement par copie d'un ancien.
- Positionner la variable d'environnement ORACLE_SID.
- Créer le service associé à l'instance (plate-forme Windows) ou créer le fichier de mot de
passe pour l'identification SYSDBA (plate-forme Unix ou Linux).
- Lancer SQL*Plus et se connecter AS SYSDBA.
- Créer un fichier de paramètres serveur (pas obligatoire, mais conseillé).
- Démarrer l'instance en état NOMOUNT.
- Créer la base de données (ordre SQL CREATE DATABASE).
- Finaliser la création du dictionnaire (quelques scripts à exécuter).
- Configurer Oracle Net pour la nouvelle base de données.
- Enregistrer la nouvelle instance dans le fichier oratab (plate-forme Unix ou Linux).
- Configurer le Database Control.
La création d'une nouvelle base de données suppose l'installation préalable d'Oracle (cha-
pitre Installation).
Si le serveur abrite déjà des bases de données Oracle, il est vivement conseillé d'effectuer
une sauvegarde de ces bases de données avant de démarrer le processus de création.
Après ces étapes, la nouvelle base de données est ouverte et contient :
- les tablespaces SYSTEM et SYSAUX avec leur(s) fichier(s) de données associé(s) ;
- éventuellement un tablespace d'annulation et un tablespace temporaire selon les options
utilisées ;
- les fichiers de contrôle et de journalisation ;
- les deux comptes DBA standard (SYS et SYSTEM) ;
164 Oracle 11g - Administration
Création d'une nouvelle base de données
- le segment d'annulation SYSTEM ;
- le dictionnaire de données.
À ce stade, la base de données est prête pour accueillir des structures complémentaires qui
vont constituer l'application.
3. Méthodes disponibles
La nouvelle base de données peut être créée à la main avec les outils du système d'exploi-
tation et SQL*Plus ; dans ce cas, il est très simple d'écrire ou de récupérer des scripts et
de les réutiliser à chaque fois. Les étapes de création de la base de données proprement
dite sont toujours les mêmes et dépendent (relativement) peu des caractéristiques de l'ap-
plication (et en tout état de cause, des paramètres peuvent être ajustés ultérieurement en
fonction des caractéristiques de l'application) ; utiliser des scripts "génériques" de création
de bases est donc envisageable.
La nouvelle base de données peut aussi être créée à l'aide d'un assistant graphique, l'assis-
tant Configuration de base de données. Cet assistant facilite la création de la base de don-
nées en offrant la possibilité d'utiliser des modèles de base de données prêts à l'emploi
et/ou en permettant de définir très précisément les caractéristiques de la nouvelle base de
données à l'aide de plusieurs écrans. Par ailleurs, il est possible de définir ses propres mo-
dèles de base de données, comprenant ou non des fichiers de données prêts à l'emploi,
puis de les utiliser lors de la création ultérieure d'une nouvelle base de données. L'assistant
graphique offre aussi la possibilité de générer les scripts de création de la base de données,
sans créer la base de données ; c'est un bon moyen pour constituer nos scripts
"génériques".
L'assistant graphique inclut les étapes suivantes de création des structures de stockage
(chapitres Gestion des fichiers de contrôle et de journalisation et Gestion des tables-
paces et des fichiers de données).
B. Création de la base de données manuellement
1. Créer les répertoires sur les disques
Pour respecter les recommandations du standard OFA (voir le chapitre Installation), vous
devez créer :
ã Editions ENI - All rights reserved
- un répertoire d'administration, portant le nom de la base de données, situé dans le
répertoire %ORACLE_BASE%\admin (Windows) ou $ORACLE_BASE/admin (Linux/ Unix),
- un répertoire de données, portant le nom de la base de données, situé dans un
répertoire oradata lui-même situé dans ORACLE_BASE ou sur un autre volume.
Depuis la version 11 et l’apparition du Référentiel de Diagnostic Automatique, le réper-
toire d’administration contient moins de répertoires et de fichiers.
Le répertoire d'administration contient généralement les répertoires suivants :
adump Répertoire pour des fichiers d’audit.
Oracle 11g - Administration 165
Chapitre 7
create ou scripts Répertoire des scripts de création de la base de données.
exp ou dpdump Répertoire pour les fichiers d'export.
pfile Répertoire pour les fichiers de paramètres texte.
Si le serveur comporte plusieurs disques, il sera judicieux de répartir les différents fichiers de
la base de données sur ces disques afin d'optimiser les entrées/sorties et d'éviter les conten-
tions ; dans ce cas, il faut créer d'autres répertoires de données sur les disques concernés.
Un répertoire supplémentaire peut être créé pour la zone de récupération rapide (voir le
chapitre Sauvegarde et récupération).
Généralement, la base de données et l'instance portent le même nom.
2. Préparer un nouveau fichier de paramètres texte
a. Principes
Comme indiqué dans la section La base de données du chapitre Les bases de l’architecture
Oracle, il est conseillé d'utiliser un fichier de paramètres serveur, celui-ci étant initialement
créé à partir d'un fichier de paramètres texte.
Pour respecter le standard OFA, ce fichier de paramètres texte doit s'appeler init.ora et
se trouver dans le sous-répertoire pfile du répertoire d'administration. Généralement, ce
fichier de paramètres texte est créé par duplication d'un fichier existant ou d'un fichier mo-
dèle que vous aurez défini.
Nous ne créerons pas de fichier init<SID>.ora (avec une inclusion du fichier
init.ora) à l'emplacement par défaut de la plate-forme (dbs sous Unix/Linux, data-
base sous Windows) ; ainsi, nous ne risquons pas de démarrer par mégarde avec un fi-
chier de paramètres texte.
Il y a plus de 250 paramètres documentés par Oracle ! Il n'est évidemment pas question
de les spécifier tous ! Sur la totalité des paramètres, une trentaine de paramètres qu'il
convient de connaître, sont suffisants pour la plupart des bases de données.
Certains paramètres seront décrits brièvement dans cette partie puis présentés de manière
plus détaillée dans des chapitres ultérieurs.
b. Les principaux paramètres
Les paramètres ne sont pas listés dans un ordre alphabétique mais dans un ordre thématique.
Reportez-vous à la section Compléments sur les paramètres relatifs à la mémoire pour
avoir plus d'informations à ce sujet.
DB_NAME
Nom de la base (jusqu'à 8 caractères). Généralement DB_NAME est égal au nom de l'ins-
tance (ORACLE_SID).
Exemple :
DB_NAME = hermes
166 Oracle 11g - Administration
Création d'une nouvelle base de données
DB_DOMAIN
Localisation logique de la base sur le réseau (jusqu'à 128 caractères). Ce paramètre, associé
au paramètre DB_NAME, permet à Oracle de construire le nom global de la base de données,
sous la forme DB_NAME.DB_DOMAIN. Ce paramètre est important si la base de données ap-
partient à un système distribué (ou est susceptible de l'être) ; sinon, il peut être ignoré.
Exemple :
DB_DOMAIN = olivier-heurtel.fr
DB_UNIQUE_NAME
Nom unique de base de données (jusqu'à 30 caractères). Des bases de données ayant le
même DB_NAME au sein du même DB_DOMAIN (par exemple une base de production et
une base de test) doivent avoir un DB_UNIQUE_NAME différent. Ce paramètre est apparu
en version 10. Il est, par défaut, égal à DB_NAME.
Ce paramètre doit être spécifié si vous souhaitez ouvrir simultanément sur un serveur deux
bases portant le même nom (le même DB_NAME) ; il permet de les différencier.
Exemple :
DB_UNIQUE_NAME = hermes_demo
COMPATIBLE
Indique un numéro de version d'Oracle avec laquelle la base de données doit être compa-
tible. Valeurs possibles : 10.0.0 jusqu'au numéro de la version actuelle (11.1.0.6). Valeur
par défaut : 11.0.0.
Ce paramètre permet d'utiliser une nouvelle version d'Oracle en restant compatible avec une
version plus ancienne, et donc sans avoir besoin de tester les nouvelles fonctionnalités sur la
base de données. Certaines fonctionnalités de la nouvelle version peuvent être restreintes. La
valeur du paramètre peut être augmentée ultérieurement, mais il est ensuite généralement
impossible de redescendre (il faut repartir d'une sauvegarde antérieure au changement).
Exemple :
COMPATIBLE = 11.1.0.
CONTROL_FILES
ã Editions ENI - All rights reserved
Emplacement des fichiers de contrôle de la base de données. Il est conseillé d'en spécifier
au minimum 2, si possible sur des disques différents (dans l'idéal, 3 ou 4 sur des disques
différents). La recommandation OFA pour le nommage du fichier est controlN.ctl,
N étant un numéro d'ordre (1, 2, etc. ou 01, 02, etc.).
Si le fichier de paramètres a été créé par duplication d'un fichier existant utilisé, n'ou-
bliez pas de modifier ce paramètre. En cas d'oubli, vous risquez d'écraser les fichiers de
contrôle présents dans cette directive et donc de provoquer un arrêt brutal de la base
de données qui les utilise.
Oracle 11g - Administration 167
Chapitre 7
Exemple :
CONTROL_FILES = ("f:\oracle\oradata\HERMES\control01.ctl",
"g:\oracle\oradata\HERMES\control02.ctl")
DB_BLOCK_SIZE
Taille de bloc "standard" en octets, utilisée par défaut pour les fichiers de données des
tablespaces et pour l'organisation du cache de données (buffer cache). La valeur doit être
comprise entre 2 Ko et 32 Ko (sauf restriction spécifique à la plate-forme) et être un mul-
tiple de la taille de bloc du système d'exploitation. Ce paramètre ne peut pas être modifié
ultérieurement sans recréer la base de données. Valeur par défaut = 8192 (8 Ko).
La taille de bloc peut avoir un impact plus ou moins important sur les performances.
L'exposé des avantages et inconvénients respectifs des "petits" blocs et des "grands" blocs
sort du cadre de cet ouvrage. En résumé, les recommandations d'Oracle sont les suivantes :
- Pour un système plutôt transactionnel (généralement caractérisé par des petites requêtes
de lecture et de mises à jour), utilisez des "petits" blocs (4 Ko ou 8 Ko).
- Pour un système plutôt décisionnel (généralement caractérisé par des grosses requêtes
de lecture), utilisez des "gros" blocs (16 Ko ou 32 Ko).
- Pour les systèmes mixtes, ou dans le doute, utilisez une taille de bloc de 8 ko (valeur
par défaut).
Exemple :
DB_BLOCK_SIZE = 8192
MEMORY_MAX_TARGET
Taille maximum de la mémoire utilisable par l'instance. Peut être spécifiée en octets, en Ko
(symbole K), en Mo (symbole M) ou en Go (symbole G). Si ce paramètre n’est pas spécifié,
il est égal à la valeur du paramètre MEMORY_TARGET.
N’oubliez pas que les modifications dynamiques de la mémoire s’effectuent dans la limite
de la valeur du paramètre MEMORY_MAX_TARGET, qui lui n’est pas dynamique (cf. Cha-
pitre Les bases de l’architecture Oracl, section L’instance).
Exemple
MEMORY_MAX_TARGET = 2G
MEMORY_TARGET
Taille de la mémoire allouée à l'instance. Peut être spécifié en octets, en Ko (symbole K),
en Mo (symbole M) ou en Go (symbole G). Valeur par défaut : 0. Valeur minimale :
148 Mo. La valeur peut être arrondie par Oracle au granule supérieur. Ce paramètre est
apparu en version 11.
Si ce paramètre a une valeur différente de zéro, la gestion automatique de la mémoire (Au-
tomatic Memory Management - AMM) est activée. Dans ce cas, Oracle dimensionne auto-
matiquement la SGA et la PGA en fonction de leurs besoins respectifs et de la charge du
système (cf. section L’instance du chapitre Les bases de l’architecture Oracle).
168 Oracle 11g - Administration