TP : Création manuelle d’une
Année Enseignant
EMSI@ base de données
Administration Oracle 2020/2021 Pr Rachid Dehbi
Etape1: Créer les répertoires sur les disques, si possible en respectant les
recommandations du standard OFA
Recommandations du standard OFA :
Répertoire d’administration, portant le nom de la base de données,
situé dans le répertoire %ORACLE_BASE%\admin (Windows)
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.
ORACLE_BASE = D:\Oracle\Product\10.2.0
Le répertoire d’administration doit contenir les répertoires suivants :
adump : répertoire pour les scripts d’administration
bdump : répertoire du fichier d’alerte de l’instance et des fichiers de
trace des processus d’arrière-plan
cdump : répertoire pour les dumps du noyau
dpdump : répertoire pour les fichiers d’export
pfile : répertoire pour les fichiers de paramètre texte
udump : répertoire des traces utilisateurs
Etape2: Préparer un fichier de paramètre texte, généralement par copie d’un
ancien.
##################################################
############################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##################################################
############################
###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_file_multiblock_read_count=16
db_cache_size=25165824
###########################################
# File Configuration
###########################################
control_files=("C:\oracle\product\10.2.0\oradata\emsiDb\[Link]",
"C:\oracle\product\10.2.0\oradata\emsiDb\[Link]")
db_recovery_file_dest=C:\oracle\product\10.2.0\flash_recovery_area
db_recovery_file_dest_size=2147483648
log_archive_dest=C:\oracle\product\10.2.0\oradata\arch\emsiDb
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=C:\oracle\product\10.2.0\admin\emsiDb\bdump
core_dump_dest=C:\oracle\product\10.2.0\admin\emsiDb\cdump
user_dump_dest=C:\oracle\product\10.2.0\admin\emsiDb\udump
###########################################
# Miscellaneous
###########################################
compatible=[Link].0
###########################################
# Job Queues
###########################################
job_queue_processes=10
###########################################
# Database Identification
###########################################
db_domain=""
db_name=emsiDb
instance_name = emsiDB
###########################################
# SGA Memory
###########################################
sga_target=167772160
###########################################
# Processes and Sessions
###########################################
processes=150
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1
###########################################
# Security and Auditing
###########################################
audit_file_dest=C:\oracle\product\10.2.0\admin\emsiDb\adump
remote_login_passwordfile=EXCLUSIVE
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=16777216
Etape3: Création de l'instance avec redémarrage automatique, un fichier de
mot de passe est utilisé et une authentification par le système d'exploitation et le
fichier de mot de passe est possible.
C:\>oradim -new -sid emsiDb -syspwd emsiDb -startmode a -srvcstart s -spfile
Etape4: lancer SQL*PLus et se connecter AS SYSDBA
Pour cela :
Positionner la variable d’environnement ORACLE_SID au niveau du
système :
set ORACLE_SID=emsiDb
Démarrer SQL*Plus sans se connecter :
sqlplus /nolog
Se connecter AS SYSDBA :
o Authentifié par le système d’exploitation (Authentification Windows) :
connect / as sysdba
o Authentifié par un fichier de mot de passe :
connect sys/emsiDb as sysdba
étape5: création d’un fichier de paramètre serveur
La création d’un fichier de paramètres serveur s’effectue à partir d’un fichier de
paramètres texte, grâce à l’ordre SQL CREATE SPFILE.
Syntaxe :
CREATE SPFILE [=’nom_spfile’] FROM PFILE [=’nom_pfile’]
Exemple :
SQL> CREATE SPFILE FROM
PFILE='C:\oracle\product\10.2.0\admin\emsiDb\pfile\[Link]';
Etape6: Démarrer l’instance :
L’instance peut maintenant être démarrée, en NOMOUNT puisque la base de
données n’existe pas encore:
SQL> startup nomount
Resultat :
Instance ORACLE lancée.
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 62915940 bytes
Database Buffers 100663296 bytes
Redo Buffers 2945024 bytes
Etape7: Création de la base de données : le script de création de la base est le
suivant :
CREATE DATABASE emsiDb
-- changer les mots de passe de SYS et SYSTEM
USER SYS IDENTIFIED BY emsi
USER SYSTEM IDENTIFIED BY emsi
-- type de tablespace par défaut
SET DEFAULT SMALLFILE TABLESPACE
-- tablespace SYSTEM de 200 Mo, auto-extensible, géré localement
DATAFILE 'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]' SIZE 200M
AUTOEXTEND ON NEXT 10M
EXTENT MANAGEMENT LOCAL
-- tablespace SYSAUX de 100 Mo, auto-extensible
SYSAUX DATAFILE 'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]'
SIZE 100M
AUTOEXTEND ON NEXT 10M
-- 3 groupes de fichiers de journalisation, avec 2 membres de 50M
LOGFILE
GROUP 1 ('C:\oracle\product\10.2.0\oradata\emsiDb\[Link]',
'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]') SIZE 50M,
GROUP 2 ('C:\oracle\product\10.2.0\oradata\emsiDb\[Link]',
'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]') SIZE 50M,
GROUP 3 ('C:\oracle\product\10.2.0\oradata\emsiDb\[Link]',
'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]') SIZE 50M
-- tablespace d'annulation de 100 Mo, auto-extensible
SMALLFILE UNDO TABLESPACE UNDOTBS1
DATAFILE 'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]' SIZE
100M
AUTOEXTEND ON NEXT 10M MAXSIZE 1024M
-- tablespace temporaire par défaut de 100 Mo, auto-extensible
SMALLFILE DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE 'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]' SIZE
100M
AUTOEXTEND ON NEXT 10M MAXSIZE 1024M
-- tablespace permanent par défaut de 10 Mo, auto-extensible,
-- géré localement
DEFAULT TABLESPACE deftbs
DATAFILE 'C:\oracle\product\10.2.0\oradata\emsiDb\[Link]' SIZE
10M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
NOARCHIVELOG -- pas d'archivage pour l'instant
CHARACTER SET WE8ISO8859P15 -- jeu de caractères principal
NATIONAL CHARACTER SET AL16UTF16 -- jeu de caractères secondaire
SET TIME_ZONE = 'Europe/Paris' -- fuseau horaire de la base
MAXINSTANCES 1 -- une seule instance (pas RAC)
MAXLOGFILES 16 -- jusqu'à 16 groupes de journaux
MAXLOGMEMBERS 4 -- jusqu'à 4 membres par groupe
MAXDATAFILES 128 -- jusqu'à 128 fichiers de données
/
Etape8: finaliser la création du dictionnaire de données
Après l’exécution de l’ordre SQL CREATE DATABASE, la base de données est
parfaitement opérationnelle, mais les vues et les synonymes qui rendent le
dictionnaire de données exploitable ne sont pas créés.
Pour créer ces vues et ces synonymes, vous devez exécuter (sous SYS) des
scripts fournis par Oracle (dans %ORACLE_HOME\rdbms\admin) :
- [Link] : vues et synonymes de base ;
- [Link] : compléments pour les options procédurales (création d’un
grand nombre de packages fournis par oracle).
Les scripts [Link] et [Link] appellent d’autres scripts.
Le passage de catalog et catproc dure environ 10 à 15 minutes.
En règle générale, les scripts doivent être exécutés dans le schéma SYS
(propriétaire du dictionnaire de données) et donc avec une connexion AS
SYSDBA. EN cas de doute, ouvrez le script et regardez son en-tête ; la connexion
à utiliser et généralement indiquée.
En complément, vous pouvez exécuter (sous SYSTEM) le script [Link] situé
dans %ORACLE_HOME\sqlplus\admin. Ce script est exécuté pour créer une table
(PRODUCT_USER_PROFILE) dont la présence est testée par les outils Oracle
(SQL*Plus) lors de la connexion d’un utilisateur. Si la table n’existe pas et que
l’utilisateur n’est pas un DBA, un message d’alerte est affiché (mais la connexion
est acceptée).
Exécuter le script [Link] permet d’éviter ce message.
La table PRODUCT_USER_PROFILE peut être utilisée pour limiter la nature des
ordres SQL qu’un utilisateur peut exécuter avec les outils (par exemple, interdire
l’utilisation de l’ordre UPDATE dans SQL*Plus).
SQL> connect / as sysdba
SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\[Link]
SQL> @C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\[Link]
SQL> connect system/emsi
SQL> @C:\oracle\product\10.2.0\db_1\sqlplus\admin\[Link]