Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
rsum : cration pas pas d'un base de donnes ORACLE mots cl : Oracle 10g - create database - SID - connect nolog - startup - Sql/Plus create database script logiciel utilis : Windows XP personnel, 32 bits matriel utilis : Pentium 1.400 Mhz, 256 Meg memoire, 140 G disque champ d'application : Windows niveau : dveloppeur base de donnes plan :
o o o
1 - Introduction Nous allons dtailler ici comment crer une base de donne Oracle 10g. La cration d'une base Oracle est traditionnellement reconnue comme une opration trs complexe. En effet la base peu tre organise de multiples faons, et de nombreux paramtres fournis lors de la cration permettent de spcifier la configuration. Une parfait matrise de la cration ncessite donc avant tout une bonne comprhension 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 dcrivant les tapes prcises que nous avons utilises pour crer notre base.
Windows XP personnel, 32 bits le mot de pass pour SYSMAN, SYS et SYSTEM est the_pass son identificateur sera the_sid elle sera place dans le rpertoire c:\oracle\the_path
Aprs l'installation du Serveur Oracle, les paramtres de notre Serveur Oracle sont les suivants: Nous allons crer une base de donne:
crer une variable d'environnement ORACLE_SID crer un service crer le fichier de paramtres dmarrer l'instance et la base crer la base crer les tables systme crer une TableSpace vrifier la cration d'une table
1 - Cration de la Base
1.1 - Cration d'une variable DOS ORACLE_SID Nous allons utiliser une instance Oracle, qui sera identifie par son SID (System IDentifier). Ce SID devra tre reconnu au niveau de la ligne de commande DOS, et pour cela nous devons crer une variable d'environnement DOS contenant ce SID. La cration de cette variable est effectue en utilisant la commande DOS SET. Par consquent lancez CMD.EXE la ligne de commande attend vos instructions
Nous pouvons vrifier que cette variable a bien t cre en tapant SET: tapez SET Entre DOS prsente toutes les variables d'environnement, parmi lesquelles the_sid:
1.2 - Cration d'un Service Nous devons prsent crer un Service Windows qui grera notre instance. Nous crons ce service en utilisant ORADIM.EXE. Donc: tapez la commande oradim -new -sid the_sid -intpwd mypass -startmode manual Entre Oracle cre le service:
Nous vrifions que le service a bien t cr: tapez: services.msc Entre (ou utilisez "dmarrer | paramtres | panneau de configuration | outils d'administration | services" ) Windows affiche les services utiliss par notre systme, dont OracleServicethe_sid:
1.3 - Crer le fichier de paramtres L'instruction de cration de la base utilisera un fichier de paramtres. Ce fichier est un fichier binaire, appel SPFILE. Ce fichier binaire est gnr partir d'un fichier ASCII INIT.ORA que nous devons crer. L'installation d'Oracle place un fichier INIT.ORA type "OracleHome"\admin:
# 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 paramtres plusieurs choix (un choix par dfaut et, en commentaire, d'autres possibilits)
80 = 80 = 400 = 1500
# # # #
En utilisant les valeurs par dfaut du fichier type, nous avons eu quelques erreurs. Aprs quelques ttonnements, nous avons finalement russi en utilisant un fichier minimal, que nous allons utiliser. Donc: crez le rpertoire c:\Oracle\the_path avec les sous-rpertoires pour placer le fichier d'initialisation, les scripts, les traces, les cho DOS:
dmarrez NotePad, tapez le texte du fichier de paramtres: 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 - Dmarer l'instance L'instance va tre dmare en utilisant Sql/Plus. Comme aucune instance n'existe, nous devons utiliser des paramtres spciaux 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
o o o
nous nous connectons en tant que SYS/mon_mot_de_passe AS SYSDBA nous excutons CREATE DATABASE avec les paramtres de cration nous crons les fichiers systme, 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 excuter 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 Entre Sous Sql/Plus
o o
@ est une abrviation de START (= lancement de script) ? est une abrviation de "OracleHome" (c:\oracle\product\10.1.0\Db_1\ dans notre cas)
Par consquent: lancez votre diteur prfr (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 Entre Sql/Plus affiche son invite:
connectez-vous en tant que SYS connect sys/ the_pass as sysdba Sql/Plus effectue la connexion:
dmarrez l'instance en tapant: Startup Nomount pFile= c:\oracle\the_path\the_init\init_the_sid.ora Sql/Plus dmarre l'instance:
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 problme, le fichier de log cr par SPOOL permet de vrifier calmement ce qui s'est pass. De faon similaire, les traces (fichiers .TRC) qui seront dposs dans THE_TRACE peut fournir les codes des erreurs il aurait t possible de placer CONNECT, STARTUP et CREATE TABLE dans le mme script nous avons ferm la base aprs la cration, mais il serait possible de placer dans le mme script les tapes que nous allons prsenter maintenant
1.5 - Cration des tables systme La base cre est vide, et il faut excuter des scripts qui installent des tables et programmes systmes dans la base:
Catalog.sql fait 820 K (sic). Il vaut donc mieux lancer ce script en mode ECHO OFF. L'excution 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 Entre Sql/Plus lance ces deux scripts (20 minutes)
1.6 - Cration de TableSpace Nous crons prsent un fichier pour nos donnes (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 Entre Sql/Plus cre le fichier de donnes
1.7 - Creation de Table de Dmonstration A titre de vrification, nous allons crer une table utilisateur, et vrifier son fonctionnement. Pour cela, nous utilisons le script demobld qu'Oracle a fourni pour crer 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 Entre Sql/Plus cre le fichier de donnes
2 - Automatisation
Au cours de la cration de la base, nous avons rencontr quelques problmes. Mentionnons les rapidement:
la cration 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 aprs des tentatives infructueuses, il se peut que le serveur considre qu'une base est ouverte ou monte (ORA-01081). L'excution brutale de SHUTDOWN ABORT rsoud le problme. un fichier ASCII contenant les commandes taper dans CMD.EXE. Au lieu de taper les lignes, il suffit alors de couper la commande dsire de ce fichier ASCII et les coller (clic droit souris | coller) aprs 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 tlcharger:
.BAT, clipboard, scripts : .ZIP contenant les commandes, les .BAT et les scripts .TXT (3 K)
Installation Oracle : comment installer le Serveur et le Client Oracle Tutorial : comment crer des application Client (comptabilit, facturation, pages Web, gestion de production etc) Formations Oracle : ralisation d'applications Oracle (cration de table, d'index, criture / lecture / modification, transactions, tats), en tenant compte des spcificits Oracle (types de donnes, squences, procdures catalogues, transactions). nous avons aussi compil une liste de liens Oracle destine tout particulirement aux dvelopeurs.
Comme d'habitude:
nous vous remercions de nous signaler toute erreur, inexactitude ou problme de tlchargement en envoyant un e-mail jcolibri@jcolibri.com. Les corrections qui en rsulteront pourront aider les prochains lecteurs
tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le mme sujet seront de mme les bienvenus jcolibri@jcolibri.com. plus simplement, vous pouvez taper (anonymement ou non) vos commentaires cidessus et nous les envoyer en cliquant "envoyer" :