29 janvier 2009
4
29
/01
/janvier
/2009
15:56
Bonjour,
Aujourd'hui, je vais aborder le thème de la création d'une base de données.
Et pour être plus précis, je vais surtout créer une base de façon manuelle. C'est à dire sans utiliser l'assistant de base de données (dbca=> DataBase Configuration Assistant).
Pour cela, je vais utiliser une machine virtuelle (Windows XP) sur laquelle j'ai déjà installé un noyau Oracle (10.2.0.1) patché en 10.2.0.3.
Mon noyau Oracle est installé dans le répertoire E:\oracle\product\10.2.0\
L'instance et la base se nommeront DB1. On peut nommer la base de façon différente de l'instance.
Avant toute chose il faut créer les répertoires nécessaire à la création de la base:
Une fois l'arborescence crée nous allons avoir besoin d'un fichier d'initialisation (pfile) courramment nommé init.ora. Ce fichier sera placé dans le répertoire E:\oracle\product\10.2.0\admin\DB1\pfile
exemple de fichier init.ora
Attention, si votre emplacement diffère, il faut prendre soin de modifier les chemins. De même ceci est un exemple qui doit être adapté en fonction du résultat voulu. L'objet n'étant pas de passer en revu tous les paramètres d'une instance oracle, je ne commenterai pas le fichier ci-dessous.
Puisque nous sommes sous windows, je vais également devoir créer mon instance Oracle qui sera représenté par un Windows Service.
Dans une console DOS, tapez la commande suivante.
oradim -new -sid DB1
Une fois l'instance crée, nous allons nous connecter à cette instance via l'utilitaire SQL+
SET ORACLE_SID=DB1
SQLPLUS /nolog
CONNECT / as sysdba
STARTUP NOMOUNT pfile='E:\oracle\product\10.2.0\admin\db1\pfile\init.ora'
Une fois la base en mode nomount, il ne reste plus qu'a lancer le script de création de base.
Exemple de script de création de base:
On constate, que l'instruction de la commande CREATE DATABASE, va entre autre permetre la création du fichier Control File. Modifier les chemins et options en fonction de votre configuration et résultat voulu (Character Set, Archivelog ou pas,nombre et taille des redo,...)
Maintenant que la base de donnée est crée, il ne reste plus (cette fois c'est la bonne) qu'à executer deux scripts oracles.
Toujours en SYS.
@?\rdbms\admin\catalog.sql
@?\rdbms\admin\catproc.sql
Et cette fois c'est terminé. Votre base de donnée est crée sans options particulières.
Les avantages sont à mon avis:
Aujourd'hui, je vais aborder le thème de la création d'une base de données.
Et pour être plus précis, je vais surtout créer une base de façon manuelle. C'est à dire sans utiliser l'assistant de base de données (dbca=> DataBase Configuration Assistant).
Pour cela, je vais utiliser une machine virtuelle (Windows XP) sur laquelle j'ai déjà installé un noyau Oracle (10.2.0.1) patché en 10.2.0.3.
Mon noyau Oracle est installé dans le répertoire E:\oracle\product\10.2.0\
L'instance et la base se nommeront DB1. On peut nommer la base de façon différente de l'instance.
Avant toute chose il faut créer les répertoires nécessaire à la création de la base:
MKDIR E:\oracle\product\10.2.0\admin
MKDIR E:\oracle\product\10.2.0\oradata
MKDIR E:\oracle\product\10.2.0\admin\DB1
MKDIR E:\oracle\product\10.2.0\oradata\DB1
MKDIR E:\oracle\product\10.2.0\admin\DB1\bdump
MKDIR E:\oracle\product\10.2.0\admin\DB1\cdump
MKDIR E:\oracle\product\10.2.0\admin\DB1\pfile
MKDIR E:\oracle\product\10.2.0\admin\DB1\udump
exemple de fichier init.ora
Attention, si votre emplacement diffère, il faut prendre soin de modifier les chemins. De même ceci est un exemple qui doit être adapté en fonction du résultat voulu. L'objet n'étant pas de passer en revu tous les paramètres d'une instance oracle, je ne commenterai pas le fichier ci-dessous.
##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
###########################################
# File Configuration
###########################################
control_files=("E:\oracle\product\10.2.0\ORADATA\DB1\control01.ctl", "E:\oracle\product\10.2.0\ORADATA\DB1\control02.ctl", "E:\oracle\product\10.2.0\ORADATA\DB1\control03.ctl")
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=E:\oracle\product\10.2.0\admin\DB1\bdump
core_dump_dest=E:\oracle\product\10.2.0\admin\DB1\cdump
user_dump_dest=E:\oracle\product\10.2.0\admin\DB1\udump
###########################################
# Miscellaneous
###########################################
compatible=10.2.0.1.0
###########################################
# Job Queues
###########################################
job_queue_processes=10
###########################################
# Database Identification
###########################################
db_domain=""
db_name=DB1
db_unique_name=DB1
db_unique_name=DB1
###########################################
# SGA Memory
###########################################
sga_target=256M
###########################################
# Processes and Sessions
###########################################
processes=150
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=ORADBXDB)"
###########################################
# Security and Auditing
###########################################
audit_file_dest=E:\oracle\product\10.2.0\admin\DB1\adump
remote_login_passwordfile=EXCLUSIVE
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=20M
Puisque nous sommes sous windows, je vais également devoir créer mon instance Oracle qui sera représenté par un Windows Service.
Dans une console DOS, tapez la commande suivante.
oradim -new -sid DB1
Une fois l'instance crée, nous allons nous connecter à cette instance via l'utilitaire SQL+
SET ORACLE_SID=DB1
SQLPLUS /nolog
CONNECT / as sysdba
STARTUP NOMOUNT pfile='E:\oracle\product\10.2.0\admin\db1\pfile\init.ora'
Une fois la base en mode nomount, il ne reste plus qu'a lancer le script de création de base.
Exemple de script de création de base:
On constate, que l'instruction de la commande CREATE DATABASE, va entre autre permetre la création du fichier Control File. Modifier les chemins et options en fonction de votre configuration et résultat voulu (Character Set, Archivelog ou pas,nombre et taille des redo,...)
Create DATABASE DB1
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
MAXDATAFILES 200
MAXINSTANCES 1
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET UTF8
LOGFILE
GROUP 1 ('E:\oracle\product\10.2.0\oradata\DB1\redo01.rdo') SIZE 50M,
GROUP 2 ('E:\oracle\product\10.2.0\oradata\DB1\redo02.rdo') SIZE 50M,
GROUP 3 ('E:\oracle\product\10.2.0\oradata\DB1\redo03.rdo') SIZE 50M
MAXLOGFILES 20
MAXLOGMEMBERS 5
NOARCHIVELOG
EXTENT MANAGEMENT LOCAL
DATAFILE 'E:\oracle\product\10.2.0\oradata\DB1\system.dbf' SIZE 500M
SYSAUX DATAFILE 'E:\oracle\product\10.2.0\oradata\DB1\sysaux.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP
TEMPFILE 'E:\oracle\product\10.2.0\oradata\DB1\temp.dbf' SIZE 250M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
UNDO TABLESPACE UNDOTBS1
DATAFILE 'E:\oracle\product\10.2.0\oradata\DB1\UNDOTBS1.dbf' SIZE 250M;
Maintenant que la base de donnée est crée, il ne reste plus (cette fois c'est la bonne) qu'à executer deux scripts oracles.
Toujours en SYS.
@?\rdbms\admin\catalog.sql
@?\rdbms\admin\catproc.sql
Et cette fois c'est terminé. Votre base de donnée est crée sans options particulières.
Les avantages sont à mon avis:
- La possibilité de créer des bases de facon uniforme (uniquement les chemins, et nom de base à modifier)
- On sait ce qui a été installé, alors qu'avec l'assistant, on peut avoir tendance à choisir des options dont on ne sais pas vraiment si l'on en a l'utilité.
- Pratique pour créer des bases à distance (essayer de lancer un dbca en telnet !)
- Le jour ou DBCA est en rade, on n'est pas totalement à rue.
Laurent