Une instance est caractérisée
par son identificateur : SID, généralement une variable ORACLE_SID
positionnée dans l'environnement.
Une instance active, en
mémoire ce sont :
- des programmes de fond (services ou processus) qui assurent la maintenance
du serveur de données et les entrées / sorties fichiers
- des process server (dédiés ou non à un utilisateur)
- et une zone globale partagée : la SGA, qui
contient essentiellement du cache de buffers
Voir le panneau de configuration NT / services pour info :
ici la base s'appelle b8i1
et le oracle home 'Ora81'
Sur Unix un certain nombre de 'Background processes' tournent sur la machine, le proprétaire est généralement l'utilisateur Oracle (ce qui permet de les identifier). Les noms de process sont également suffixés par le nom de l'instance auquels ils sont attachés
Nous sommes ici sur une machine Unix, avec Oracle 8.0.5 d'installé. On a filtré les process actifs sur le mot oracle. On remarque ici que 2 bases sont actives : l'une s'appelle TESUN et l'autre DEVUN. On reconnait les process de fond DBWR, LGWR, PMON, SMON, RECO notamment et deux process utilisateur distants connectés à TESUN...
ORACLE_SID
Une base LOCALE est identifié par un simple paramètre d'environnement
(ou une entrée dans la base de registre sous Windows : le ORACLE_SID.
Ainsi si on est connecté directement sur le serveur (login Windows ou
session telnet Unix) et que cette variable est positionnée, on se connecte
à la base courante sans rien préciser de plus. Par exemple :
$ echo $ORACLE_SID
$ ORACLE_SID = ?
$ ORACLE_SID = TEST
$ export ORACLE_SID
$ sqlplus SCOTT/TIGER
se connecte par défaut à la base identifiée dans l'environnement
de ma session Unix (ici TEST)
DB_NAME
DB_NAME est un paramètre ORACLE (inconnu au niveau OS). C'est le nom
de la base qui correspond a celui du CREATE DATABASE, et est identique pour
toutes les instances d'une base multi instance.
INSTANCE_NAME
est un paramètre ORACLE (inconnu au niveau OS) qui identifie une instance
particulière dans une base multi instances (Architecture Oracle Real
Application Cluster ou R.A.C). EN architecture standard est superflu ou identique
au DB_NAME.
SERVICE_NAMES
paramètre Oracle qui identifie à quel service appartient une instance.
Ceci est utile en architecture R.A.C ou en cas de Stand By Database
Ces paramètres peuvent être statiques ou dynamiques (pris en compte
immédiatement ou au prochain redémarrage de la base), fugaces
(tant que la base est on line) ou persistants.
Il permettent de dimensionner la SGA et de fixer les limites concernant les
ressources système d'Oracle (mémoire RAM et background processes).
Lorsqu'une base est démarrée (commande STARTUP) soit on précise
un fichier texte de paramètre explicite, soit un fichier serveur SPFILE
binaire est utilisé par défaut :
SQL> STARTUP PFILE=/mon_chemin/mon_fichier_dinitialisation
utilise le fichier spécifié
ou
SQL> STARTUP
utilise le fichier SPFILE par défaut.
Il est possible d'inclure
des fichiers de paramétrage externe (jusqu'a 3 niveaux d'imbrication)
grace au paramètre IFILE :
IFILE = tronc_commun.ora par exemple.
# exemple de fichier init.ora pour la base TEST
#
DB_NAME = TEST
INSTANCE_NAME= STEST
CONTROL_FILES = ( /disque1/control1.ctl, /disque2/control2.ctl
)
Par défaut, le nom du fichier init.ora est suffixé par le ORACLE_SID de la base : init$ORACLE_SID.ORA.
exemple : initTEST.ora pour la base TEST
L'emplacement standard est situé avec les fichiers bases à savoir :
sur Unix
sur Unix | $ORACLE_HOME/dbs |
sur windows | $ORACLE_HOME\database |
Ce fichier binaire (non éditable cette fois) est géré
de manière transparente par Oracle et permet de rendre les changements
de paramètres dynamiques persistants (malgré les arrêts
/ redémarrages éventuels de la base).
Son nom par défaut est spfile$ORACLE_SID.ora
on peut vérifier
le SPFILE utilisé en visualisant les paramètres courants sous
SQL+ :
SQL> show parameters spfile
NAME TYPE VALUE
------- ------- --------------------------
spfile string /data/prdun/spfilePRDUN.ora
Il peut être créé par la commande CREATE SPFILE, à partir d'un fichier d'initialisation :
SQL> CREATE SPFILE [= chemin/nom_du_spfile ] FROM PFILE = 'mon_chemin/mon_init.ora'
On peut réciproquement exporter un SPFILE sous forme de ficheir d'initialisation standard, à des fins de vérification ou de sauvegarde
SQL > CREATE PFILE= mon_init.ora FROM SPFILE=mon_sp_file
Tentons de résumer ces différentes possibilités dans un tableau compact et néanmoins quadrillé :
type de paramètre | ressource utilisée |
délai de prise en compte |
persistance | commande ou méthode de modification |
statique | fichier INIT.ORA | au prochain STARTUP | oui | édition du fichier INIT.ORA |
statique | fichier SPFILE binaire | au prochain STARTUP | oui | ALTER SYSTEM...SCOPE=SPFILE |
dynamique | mémoire centrale | immédiat | non | ALTER SYSTEM...SCOPE=MEMORY |
dynamique | fichier SPFILE binaire | immédiat | oui | ALTER SYSTEM...SCOPE=BOTH |
$ edit initTEST.ora
...
SESSIONS = 200 (SESSIONS est un paramètre statique, ancienne valeur 100)
...
$ sqlplus system 'connect as sysoper'
SQL> SHUTDOWN DATABASE IMMEDIATE
SQL> STARTUP DATABASE
$sqlplus system/manager
SQL> ALTER SESSION SET NLS_TERRITORRY = france
SQL> ALTER SYSTEM SET SERVICE_NAMES = STEST SCOPE=SPFILE
les paramètres
courants peuvent être consultés par la commande SHOW PARAMETERS
de SQL + ou dans les vues dynamiques
du dictionnaire : v$PARAMETER, v$PARAMETER2, V$SPPARAMETER
|