Gérer l'instance Oracle

2

Notez bien que le répertoire où est installé Oracle est indiqué par la variable d'environnement :

  • %ORACLE_HOME% pour le système Microsoft Windows. Sa valeur est définie dans le registre.
  • $ORACLE_HOME pour les systèmes UNIX. Sa valeur est définie dans le fichier .profile.

Dans ce qui suit, nous utiliserons généralement  la variable  $ORACLE_HOME et la nomenclature Unix pour simplifier.

Database control

Pour accéder et gérer votre base de données Oracle10g via une interface web, vous utilisez l'interface de gestion "Oracle Enterprise Manager Database Control " qui se connecte à l'instance Oracle via le processus d'écoute : le Listner.

Ces trois composants doivent être alors démarrés pour pouvoir gérer la base via web.

L'interface de gestion Database Control une fois disponible, permet par la suite de lancer les autres composants (instance et listner).

Pour pouvoir utiliser l'interface de gestion, le processus correspondant côté serveur "dbconsole" doit être démarré (commande emctl start dbconsole). Pour l'instance ORCL par exemple, la variable ORACLE_SID doit être définie au préalable (set ORACLE_SID=ORCL sous Windows ou variable  $ORACLE_SID=ORCL dans .profile  sous Unix). Notez tout de même que sous Windows, si vous n'utilisez pas la ligne  de commande et vous lancez "OracleDBConsoleorcl" dans la console "Services" (Panneau de configuration ==> Outils d'administration), la variable sera lue à partir du registre Windows.

La commande emctl est disponible dans "$ORACLE_HOME/bin". Assurez vous que ce chemin est listé dans la variable d'environnement "$PATH".

Un DBA Oracle (administrateur de base de données) peut toujours lancer des commandes en ligne pour gérer la base de données, créer et modifier des objets, faire des sauvegardes ou des opérations de récupération ...etc

L'interface de gestion Database Control permet de faire toutes ces opérations d'administration via une interface graphique basée sur le web.

N.B: Via une console Database Control, on ne peut gérer qu'une seule base de données à la fois.

 

Accès à Database Control

Le processus DBConsole étant démarré, pour accéder à l'interface de gestion, entrez l'url suivante dans votre navigateur Web : http://hostname:1158/em

"hostname" est Le nom de la machine sur laquelle le processus Listner est en cours d'exécution. Si vous testez une installation "Oracle Database" sur votre ordinateur local, hostname peut avoir la valeur localhost ou 127.0.0.1 ou le nom de votre ordinateur.

"1158" est le port HTTP de la console de gestion Database Control. Vérifiez-le dans le fichier "$ORACLE_HOME/install/portlist.ini".

Si la base de données est arrêtée, une page est affichée sur votre navigateur pour :

Si au contraire, la base de données est déjà démarrée, une page Login est affichée vous demandant votre "nom utilisateur" et "mot de passe" autorisé à accéder à Database Control.. Connectez-vous en tant que SYSDBA ou SYSOPER pour vous doter de privilèges d'administration spécials.

Le rôle DBA n'inclut pas les privilèges SYSDBA et SYSOPER qui permettent à un administrateur d'accéder à l'instance même si la base n'est pas ouverte et d'exécuter des tâches d'administration telles que la création ou la suppression d'une base de données, lancer STARTUP et SHUTDOWN, placer une base en mode archivelog.

SQL*Plus et iSQL*Plus

Pour manipuler  les données dans la base via des instruction SQL (interrogation, insertion, suppression et mise à jour),  vous pouvez utiliser les outils SQL*Plus et iSQL*Plus. "iSQL*Plus" est une interface graphiqe fournissant un accès via web. Voici les urls à utiliser :

  • "http://hostname:5560/isqlplus"  et
  • "http://hostname:5560/isqlplus/dba".

"5560" est le port HTTP de iSQL*Plus. Vérifiez-le dans le fichier "$ORACLE_HOME/install/portlist.ini"

Pour pouvoir utiliser l'interface  iSQL*Plus, le processus correspondant côté serveur doit être démarré (commande isqlplusctl start)

SQL*Plus  est un outil en mode ligne de commande. Pour y accéder, lancez à  l'invite de commande :

  • $ sqlplus /nolog" et puis :
    SQL> connect nom_utilisateur/mot_ de_ passe.

SQL*Plus se connecte alors au compte utilisateur de la base de données par défaut.

Pour lancer le script "batch.sql" par exemple, entrez la commande suivante :

SQL> @batch.sql

Fichiers SPFILE ou PFILE

Pour démarrer une instance, le serveur Oracle doit lire le fichier de paramètres d'initialisation SPFILE ou PFILE

Le SPFILE (Fichier de paramètres persistant) est un fichier binaire recherché automatiquement au démarrage de l'instance. Son nom par défaut est spfile<SID>.ora.  Le fichier SPFILE est recommandé du fait que les paramètres d'initialisation sont  gérés dynamiquement dans un fichier persistant côté serveur.  il est modifié par le serveur Oracle.

Le PFILE (Fichier de paramètres statique) est un fichier texte recherché automatiquement au démarrage de l'instance en l'absence du fichier SPFILE. Il est modifié manuellement.. Son nom par défaut est : init<SID>.ora (dans "$ORACLE_HOME/dbs" ). Les modifications y sont apportés manuellment et ne prennent effet qu'après démarrage suivant de l'instant.

Vous pouvez créer un fichier SPFILE à partir d'un fichier PFILE via la commande suivante (instance démarrée ou non) :

CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’
FROM PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora


Les paramètres d'initialisation permettent entre autres de spécifier :

  • le nom de la base de données à laquelle l'instance est associée
  • l’emplacement physique des fichiers de contrôle
  • le répertoire de destination, par défaut, des fichiers de données (datafiles)
  • la destination, par défaut, des fichiers de journalisation (redo log files)
  • les valeurs affectées aux structures mémoire SGA
  • le tablespace d’annulation
  • ...etc

Vous pouvez utiliser Enterprise Manager pour afficher les paramètres d'initialisation et les modifier (lien "All Initialization Parameters "  dans "Database Administration")

Démarrage de la base Oracle

Le démarrage de l'instance et l'ouverture de la base de données se fait grâce à la commande STARTUP.

  • $ sqlplus /nolog
    SQL> connect sys/password as sysdba
    SQL> startup

Remarque:

Si vous rencontrez une erreur "ORA-01031 : Insuffisent privilège‎" en tentant de vous connecter à Oracle via le compte SYS, sachez bien qu'il est fort probable que le mot de passe de SYS  dans la base de données ne coincide pas avec celui du fichier de mot de passe.

Lancez alors la commande suivante pour recréer le fichier de mot de passe :

$ orapwd file=$ORACLE_HOME/dbs/orapw<SID> password=new_passwd entries=max_users

Au préalable, supprimez l'ancien fichier de mot de passe orapwSID

Le compte SYS doit avoir le mot de passe new_passwd :

SQL> connect / as sysdba (authentification par l'OS expliquée ci-après)

SQL> grant connect to SYS identified by new_passwd ;

La vue v$pwfile_users permet de lister les comptes ayant le privilège SYSDBA

Notez tout de même que sous Windows, si l'authenfication par fichier de mot de passe echoue, l'authenification par l'OS est tentée automatiquement et passe avec succès si vous êtes membre du groupe Windows ORA_DBA

Pour vous connecter par une authentification via l'OS (le système d'exploitation), vous entrez :

  • SQL> connect / as sysdba

cette connexion est possible si vous accédez localement au Serveur Oracle (accès Terminal) via un compte du groupe DBA du système Unix (ou ORA_DBA pour Microsoft Windows).

La commande STARTUP peut être lancée avec ou sans le paramètre PFILE :

Avec la commande :

  • SQL> STARTUP PFILE = $ORACLE_HOME/dbs/initXXX.ora

c'est l'instance <XXX> qui sera démarrée et la base associée sera ouverte.

En l'absence du paramètre PFILE dans la commande suivante :

  • SQL> STARTUP

c'est l'instance <SID> par défaut qui sera démarrée. Le SID est défini dans la variable d'environnement $ORACLE_SID.

SID est l'identificateur système de l'instance (par exemple: ORCL).

Pour un Startup/Shutdown via  Enterprise Manager, vous serez appelés à entrer les informations suivantes :

  • informations d'identification de l'hôte (Host Credentials): c'est à dire un compte du groupe DBA (pour UNIX) ou ORA_DBA (pour Microsoft Windows). Généralement, c'est le compte avec lequel vous avez fait l'installation d'Oracle Database.
  • informations d'identification pour la  connexion à la base (Database Credentials): c'est le compte Oracle ayant le privilège SYSDBA. Généralement c'est le compte SYS.

Processus de démarrage STARTUP

Le processus de démarrage STARTUP passe par 3 niveaux :

  1. Niveau 1 : NOMOUNT, c'est le démarrage de l'instance (sga et  processus d'arrière plan) et ouverture du fichier alert<SID>.log et des fichiers trace
    • A l'état NOMOUNT, le fichier de paramètres est recherché dans cet ordre (si l'un n'existe pas le suivant est recherché):
      spfile<SID>.ora
      spfile.ora
      init<SID>.ora
  2. Niveau 2 : MOUNT, c'est le démarrage de la base associée à l'instance (parametre db_name du fichier (S)PFILE):
    • ouverture des Fichier de Controle
    • montage des Fichiers de Données et des Fichiers de Journalisation en ligne (noms et status extraits du fichier de controle) sans être ouverts pour subir éventuellement des opération de maintenance
  3. Niveau 3 : OPEN, c'est l'ouverture des Fichiers de Données et des Fichiers de Journalisation en ligne  :
    • le serveur Oracle vérifie à ce niveau la cohérence de la base de données. Si nécessaire, le processus SMON effectue la récupération d'instance si les Fichiers de Données et les Fichiers de Journalisation en ligne ne sont pas sychronisés avec le Fichier de Controle).
    • Si un fichier est manquant, le serveur Oracle renvoie une erreur et la base reste à l'état MOUNT en attente d'une intervention de maintenanace.

En conclusion :

Pour maintenir les Fichiesr de Controle de la base de données, elle doit être démarrée en mode NOMOUNT

Pour maintenir les Fichiers de Données et les Fichiers de Journalisation en ligne d'une la base de données, elle doit être démarrée en mode MOUNT (renommer un fichier de données, récupération complète de la base ...etc)

Modifier les paramètres SPFILE

La commande ALTER SYSTEM SET permet de modifier la valeur des paramètres de l'instance.

  • ALTER SYSTEM SET parameter_name = parameter_value
    [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH]
    [SID= 'sid'|'*']

Le paramètre SCOPE indique si la modification du parameter_name  concerne l'instance courante (MEMORY) ou les prochains démarrages de l'instance (SPFILE) ou les deux (BOTH)

Le paramètre SID détermine le fichier SPFILE<SID> à modifier

De la même manière, la commande ALTER SYSTEM RESET permet d'effectuer une suppression d'un paramètre ou de rétablir sa valeur ORACLE par défaut

Arrêt de la base

  • c:\> sqlplus /nolog
    SQL> connect sys/password as stysdba

    SQL> SHUTDOWN  NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT

NORMAL : attend la déconnexion des sessions en cours (ce mode d'arrêt est le mode le plus lent) et interdit  les nouvelles demandes de connexion. C'est l'option appliquée  par défaut si la commande SHUTDOWN est lancée sans paramètre.

TRANSACTIONAL : attend que les utilisateurs terminent leurs transactions en cours.

IMMEDIATE : n'attend pas que les utilisateurs terminent leurs transactions en cours. Les transactions non validées sont annulées (rollback). C'est l'option d'arrêt cohérent la plus rapide.

ABORT : C'est l'équivalent d'une coupure de courant (c'est le mode d'arrêt le plus rapide) . Ce mode nécessite  une récupération de l'instance au prochain démarrage parce que la base est incohérente. En effet, les modifications non validées ne sont pas annulées et le cache de tampons de la base de données n'est pas écrit dans les fichiers de données.

Le mode ABORT  n'est recommandé qu'en cas d'echec des autres modes d'arrêt (NORMAL,TRANSACTIONAL et IMMEDIATE). Au prochain démarrage,  le processus SMON procède automatiquement à  la récupération d'instance.

Pour Les trois premiers modes, la base de donnée est cohérente et ne nécessite pas une récupéartion d'instance au prochain démarrage. Le cache de tampons de la base de données est écrit dans les fichiers de données et les ressources sont libérées.

Au démarrage de la base, le serveur Oracle démarre l'instance et puis monte et ouvre la base.

Durant l'arrêt cohérent, le serveur Oracle ferme et démonte la base et puis arrête correctement  l'instance.

Base de données en mode d'accès restreint

Pour accéder à la base en mode restreint pour faire une opération nécessitant la déconnexion de tous les utilisateurs (cas d'un import/export d'une base de données), la base ne sera accessible qu'aux utilisateurs disposant du privilège RESTRICTED SESSION.

Ce mode est activé soit au démarrage :

  • SQL> STARTUP RESTRICT

ou lorsque la base et ouverte  :

  • SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

Ouvrir une base de données en mode lecture seule

  • SQL> STARTUP MOUNT
    SQL> ALTER DATABASE OPEN READ ONLY;

Ce cas est utile si vous aiguiillez une activite d'interrogation vers une base de données de secours pour et soulager La Base de Données de production.

Surveiller une instance

Les fichiers de diagnostic d'une  instance sont :

  • le fichier alertSID.log contenant des entrées horodatées sur les principaux évenements sur la base :
    • opération d'administration (startup, shtdown, alter databse, create tablespace ...)
    • erreurs internes ORA-600, erreur de blocs corrompus.
    • Ce fichier contient également des pointeurs sur des fichiers trace qui délivrent des informations plus détaillées


      Il est placé dans le répertoire défini par le paramètre d'initialisation background_dump_dest. Sa taille peut croitre indéfiniment. Si nécessaire, vous pouvez l'archiver avant de le supprimer. La Base de Données en créé un nouveau automatiquement.

      Vous pouvez  surveiller le fichier d'alertes à l'aide d'Enterprise Manager Database Control qui  vous signale les erreurs critiques
  • les fichiers trace des processus en arrière-plan
    • ils sont placés dans un répertoire défini par le paramètre BACKGROUND_DUMP_DEST.
      lorsqu'un processus d'arrière-plan détecte une erreur, un fichier trace est créé et nommé selon une convention d'appellation "sid_processname_PID.trc"
      A titre d'exemple, "db01_lgwr_23845.trc" est créé pour le processus LogWriter et l'instance db01 concernant le processus utilisateur 23845
  • les fichiers trace  utilisateur
    Ce type de fichier (sid_ora_PID.trc) est créé lorsqu'une session utilisateur rencontre des erreurs . Il est placé dans un répertoire défini par le paramètre USER_DUMP_DEST et sa taille est définie par le paramètre MAX_DUMP_FILE_SIZE.
    • Cette fonction trace utilisateur peut être  activée au  niveau session (ALTER SESSION SET SQL_TRACE = TRUE) ou
    • au Niveau instance (paramètre d'initialisation SQL_TRACE = TRUE)

Tutoriel Architecture Oracle

 

Copyright © 2009-2012 tuto-dba-oracle.com - Tous Droits Réservés -