menu
  Home  ==>  articles  ==>  bdd  ==>  oracle  ==>  create_database_oracle_10g   

Create Database Oracle 10g - John COLIBRI.

  • résumé : création pas à pas d'un base de données ORACLE
  • mots clé : Oracle 10g - create database - SID - connect nolog - startup - Sql/Plus - create database script
  • logiciel utilisé : Windows XP personnel, 32 bits
  • matériel utilisé : Pentium 1.400 Mhz, 256 Meg memoire, 140 G disque
  • champ d'application : Windows
  • niveau : développeur base de données
  • plan :


1 - Introduction

Nous allons détailler ici comment créer une base de donnée Oracle 10g.

La création d'une base Oracle est traditionnellement reconnue comme une opération très complexe. En effet la base peu être organisée de multiples façons, et de nombreux paramètres fournis lors de la création permettent de spécifier la configuration. Une parfait maîtrise de la création nécessite donc avant tout une bonne compréhension de l'architecture du serveur Oracle.

N'ayant pas pour but de reproduire les 700 pages du manuel d'architecture Oracle, nous allons utiliser une autre approche plus directe, en décrivant les étapes précises que nous avons utilisées pour créer notre base.



Rappelons que nous utilisons la configuration suivante:

  • Windows XP personnel, 32 bits
Après l'installation du Serveur Oracle, les paramètres de notre Serveur Oracle sont les suivants:
  • le mot de pass pour SYSMAN, SYS et SYSTEM est the_pass
Nous allons créer une base de donnée:
  • son identificateur sera the_sid
  • elle sera placée dans le répertoire c:\oracle\the_path


Pour créer la base, nous allons
  • créer une variable d'environnement ORACLE_SID
  • créer un service
  • créer le fichier de paramètres
  • démarrer l'instance et la base
  • créer la base
  • créer les tables système
  • créer une TableSpace
  • vérifier la création d'une table



1 - Création de la Base



1.1 - Création d'une variable DOS ORACLE_SID

Nous allons utiliser une instance Oracle, qui sera identifiée par son SID (System IDentifier). Ce SID devra être reconnu au niveau de la ligne de commande DOS, et pour cela nous devons créer une variable d'environnement DOS contenant ce SID. La création de cette variable est effectuée en utilisant la commande DOS SET.

Par conséquent
   lancez CMD.EXE

   la ligne de commande attend vos instructions

image

   créez le SID the_sid en tapant

     SET ORACLE_SID=the_sid Entrée  

   DOS créé la variable:

image



Nous pouvons vérifier que cette variable a bien été créée en tapant SET:
   tapez

    SET Entrée  

   DOS présente toutes les variables d'environnement, parmi lesquelles the_sid:

image



1.2 - Création d'un Service

Nous devons à présent créer un Service Windows qui gèrera notre instance. Nous créons ce service en utilisant ORADIM.EXE.

Donc:
   tapez la commande

     oradim -new -sid the_sid -intpwd mypass -startmode manual Entrée  

   Oracle crée le service:

image



Nous vérifions que le service a bien été créé:
   tapez:

    services.msc Entrée  

(ou utilisez "démarrer | paramètres | panneau de configuration | outils d'administration | services" )

   Windows affiche les services utilisés par notre système, dont OracleServicethe_sid:

image



De plus, Oracle a créé un fichier de mots de passe pour ce service (dans "OracleHome"\database):

image



1.3 - Créer le fichier de paramètres

L'instruction de création de la base utilisera un fichier de paramètres. Ce fichier est un fichier binaire, appelé SPFILE. Ce fichier binaire est généré à partir d'un fichier ASCII INIT.ORA que nous devons créer.

L'installation d'Oracle place un fichier INIT.ORA type "OracleHome"\admin:

image

Ce fichier de 8K comporte de nombreux commentaires:

 
          # Use the following table to approximate the SGA size needed for the 
          # three scenarious provided in this file: 
          # 
          #                     -------Installation/Database Size------ 
          #                      SMALL           MEDIUM           LARGE 
          #  Block         2K    4500K            6800K           17000K 
          #  Size          4K    5500K            8800K           21000K 
          

et pour les principaux paramètres plusieurs choix (un choix par défaut et, en commentaire, d'autres possibilités)

 
          db_files = 80              # INITIAL 
          # db_files = 80            # SMALL 
          # db_files = 400           # MEDIUM 
          # db_files = 1500          # LARGE 
          



En utilisant les valeurs par défaut du fichier type, nous avons eu quelques erreurs. Après quelques tâtonnements, nous avons finalement réussi en utilisant un fichier minimal, que nous allons utiliser.

Donc:
   créez le répertoire c:\Oracle\the_path avec les sous-répertoires pour placer le fichier d'initialisation, les scripts, les traces, les écho DOS:

image

   démarrez NotePad, tapez le texte du fichier de paramètres:

 
 db_name = the_base

 db_block_size = 2048

 # trace (log) files
 background_dump_dest = C:\ORACLE\the_path\the_trace
 user_dump_dest = C:\ORACLE\the_path\the_trace

 control_files = C:\ORACLE\the_path\control01_the_sid.ora

 # add if undo in create database
 undo_management = auto

   Sauvegardez ce fichier dans:

    c:\Oracle\the_path\the_init\init_the_sid.ora



1.4 - Démarer l'instance

L'instance va être démarée en utilisant Sql/Plus. Comme aucune instance n'existe, nous devons utiliser des paramètres spéciaux pour que Sql/Plus accepte nos commandes:
  • il faut lancer Sql/Plus avec l'option /nolog (nolog= NO LOGin= lancement sans fournir User/password)
  • une fois sous Sql/Plus
    • nous nous connectons en tant que SYS/mon_mot_de_passe AS SYSDBA
    • nous exécutons CREATE DATABASE avec les paramètres de création
    • nous créons les fichiers système, puis éventuellement nos tables
Le lancement de Sql/Plus doit être manuel. Mais une fois que nous sommes dans Sql/Plus, dont l'éditeur est à peine plus malin que celui de DOS, le plus efficace est d'utiliser des scripts:
  • nous tapons les commandes à exécuter dans un fichier ASCII construit avec l'éditeur de votre choix (Delphi pour nous, mais Notepad ou autre fonctionne aussi) et sauvegardons le texte dans un fichier ayant n'importe quel nom (par exemple the_script.txt)
  • dans Sql/Plus nous invoquons le script en tapant:

         @? \the_script.txt Entrée  

    Sous Sql/Plus

    • @ est une abréviation de START (= lancement de script)
    • ? est une abréviation de "OracleHome" (c:\oracle\product\10.1.0\Db_1\ dans notre cas)


Par conséquent:
   lancez votre éditeur préféré (NotePad, par exemple) et tapez le script suivant:

 
 Set Echo Off  
 Spool 'c:\oracle\the_path\the_echo\echo_create_database.txt'

 CREATE DATABASE the_base
    CHARACTER SET WE8ISO8859P1
    LogFile
        group 1 'c:\oracle\the_path\redo1.log' size 10M reuse,
        group 2 'c:\oracle\the_path\redo2.log' Size 10M reuse
    DataFile 'c:\oracle\the_path\system.dbf' Size 50M
        autoextend on
        next 10M maxsize unlimited
        extent management local
    sysaux datafile 'c:\oracle\the_path\sysaux.dbf' Size 10M
        autoextend on
        next 10M
        maxsize unlimited
    undo tablespace the_undo
        datafile 'c:\oracle\the_path\the_undo.dbf'
        Size 10M
    default temporary tablespace the_temp
        tempfile 'c:\oracle\the_path\the_temp.dbf'
        Size 10M
        ;

 Shutdown
 Spool Off


   sauvegardez ce texte sous:

    c:\Oracle\the_path\the_script\create_database.txt

   retournez dans la ligne de commande DOS et lancez Sql/Plus en tapant:

    sqlplus /nolog Entrée  

   Sql/Plus affiche son invite:

image

   connectez-vous en tant que SYS

    connect sys/ the_pass as sysdba  

   Sql/Plus effectue la connexion:

image

   démarrez l'instance en tapant:

 Startup Nomount pFile= c:\oracle\the_path\the_init\init_the_sid.ora

   Sql/Plus démarre l'instance:

image

   lancez le script de création en tapant

    @ c:\oracle\the_path\the_script\create_database.txt Entrée  

   Sql/Plus crée la base

image

Et le dossier contient les fichiers suivants:

image



Notez que
  • l'utilisation d'un script pour la connexion, le chargement et CREATE TABLE n'est pas obligatoire. Vous pouvez taper les commandes à la main
  • en cas de problème, le fichier de log créé par SPOOL permet de vérifier calmement ce qui s'est passé. De façon similaire, les traces (fichiers .TRC) qui seront déposés dans THE_TRACE peut fournir les codes des erreurs
  • il aurait été possible de placer CONNECT, STARTUP et CREATE TABLE dans le même script
  • nous avons fermé la base après la création, mais il serait possible de placer dans le même script les étapes que nous allons présenter maintenant


1.5 - Création des tables système

La base créée est vide, et il faut exécuter des scripts qui installent des tables et programmes systèmes dans la base:
  • catalog.sql crée le dictionnaire de données
  • catproc.sql créé les structures pour PL/SQL.
Catalog.sql fait 820 K (sic). Il vaut donc mieux lancer ce script en mode ECHO OFF. L'exécution dure une bonne vingtaine de minutes.

Donc:
   lancez Notepad et tapez le script suivant:

 
 Set Echo Off  
 Spool 'c:\oracle\the_path\the_echo\echo_catalogs.txt'

 connect sys/ the_pass as sysdba  

 Startup pFile= c:\oracle\the_path\the_init\init_the_sid.ora

 @? \rdbms\admin\catalog.sql
 @? \rdbms\admin\catproc.sql

 Shutdown
 Spool Off


   sauvegardez ce texte sous:

    c:\Oracle\the_path\the_script\create_catalogs.txt

   retournez dans Sql/Plus et lancez ce script:

    @ c:\oracle\the_path\the_script\create_catalogs.txt Entrée  

   Sql/Plus lance ces deux scripts (20 minutes)


1.6 - Création de TableSpace

Nous créons à présent un fichier pour nos données (TableSpace):
   lancez Notepad et tapez le script suivant:

 
 Set Echo Off  
 Spool 'c:\oracle\the_path\the_echo\echo_tablespace.txt'

 connect sys/ the_pass as sysdba  

 Startup pFile= c:\oracle\the_path\the_init\init_the_sid.ora

 grant connect to system identified by the_manager;

 connect system/ the_manager

 create tablespace the_tables
    datafile 'c:\oracle\the_path\the_tables.dbf'
    size 10m extent management local uniform size 128k;

-- si nous souhaitons bloquer Sql Plus
 -- @?\sqlplus\admin\pupbld

 Shutdown
 Spool Off


   sauvegardez ce texte sous:

    c:\Oracle\the_path\the_script\create_tablespace.txt

   retournez dans Sql/Plus et lancez ce script:

    @ c:\oracle\the_path\the_script\create_tablespace.txt Entrée  

   Sql/Plus crée le fichier de données

image



1.7 - Creation de Table de Démonstration

A titre de vérification, nous allons créer une table utilisateur, et vérifier son fonctionnement. Pour cela, nous utilisons le script demobld qu'Oracle a fourni pour créer une table DEPT et EMP
   lancez Notepad et tapez le script suivant:

 
 Set Echo Off  
 Spool 'c:\oracle\the_path\the_echo\echo_demo_table.txt'

 connect sys/ the_pass as sysdba  

 grant connect, resource to my_user
    identified by my_pass;
 alter user my_user
    default tablespace the_tables;

 connect my_user/my_pass
 @? \ODP.NET\samples\DataSet\RelationalData\Setup\demobld

 select * from dept;

 Spool Off


   sauvegardez ce texte sous:

    c:\Oracle\the_path\the_script\create_demo_tables.txt

   retournez dans Sql/Plus et lancez ce script:

    @ c:\oracle\the_path\the_script\create_demo_tables.txt Entrée  

   Sql/Plus crée le fichier de données

image




2 - Automatisation

Au cours de la création de la base, nous avons rencontré quelques problèmes. Mentionnons les rapidement:
  • la création de la variable d'environnement ORACLE_SID ne semble pas obligatoire. En certaines circonstances, le chargement de la base a provoqué des erreurs TNS-12580. La suppression de SET a alors supprimé cette erreur
  • après des tentatives infructueuses, il se peut que le serveur considère qu'une base est ouverte ou montée (ORA-01081). L'exécution brutale de SHUTDOWN ABORT résoud le problème.
De façon générale, la nécessité de recommencer plusieurs essais nous a poussé à utiliser:
  • un fichier ASCII contenant les commandes à taper dans CMD.EXE. Au lieu de taper les lignes, il suffit alors de couper la commande désirée de ce fichier ASCII et les coller (clic droit souris | coller) après le ">" de CMD.EXE
  • pour les commandes Sql/Plus complexes (CREATE TABLE), nous avons placé cette suite de commandes dans un fichier de script, et le script a été lancé
  • pour les traitements impliquant plusieurs commandes DOS (suppression de service et effacement de fichier de mot de passe), nous avons utilisé des fichiers .BAT


Nous avons placé ces textes ASCII dans un fichier .ZIP que vous pouvez télécharger:

Nous proposons aussi:
  • Installation Oracle : comment installer le Serveur et le Client
  • Oracle Tutorial : comment créer des application Client (comptabilité, facturation, pages Web, gestion de production etc)
  • Formations Oracle : réalisation d'applications Oracle (création de table, d'index, écriture / lecture / modification, transactions, états), en tenant compte des spécificités Oracle (types de données, séquences, procédures cataloguées, transactions).
  • nous avons aussi compilé une liste de liens Oracle destinée tout particulièrement aux dévelopeurs.


Comme d'habitude:
  • nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
  • tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
  • plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
    Nom :
    E-mail :
    Commentaires * :
     

  • et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.

3 - L'auteur

John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le conseil (composants, architecture, test) et la formation. Son site contient des articles avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
      + programmation_oracle
        – installation_10g
        – create_database_10g
        – oracle_tutorial
      + interbase
      + sql_server
      + firebird
      + mysql
      + xml
      – paradox_via_ado
      – mastapp
      – delphi_business_objects
      – clientdataset_xml
      – data_extractor
      – rave_report_tutorial
      – visual_livebindings
      – migration_bde
    + web_internet_sockets
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog

Prestataire Delphi réalisation de projets Delphi, création de composants, migration Delphi - Tél 01.42.83.69.36