  Oracle Database HOWTO
  Paul Haigh, paul@nailed.demon.co.uk
  Adaptation  francaise  par Stephane Lee Chip Hing, slee@Ile-
  Maurice.Com
  v1.1, 20 juin 1998

  Un guide pour installer et configurer le Serveur de  Base  de  Donnees
  Oracle sur un systeme Linux.

  11..  IInnttrroodduuccttiioonn

  11..11..  HHiissttoorriiqquuee ddeess VVeerrssiioonnss

  +o  v0.1 - 21 fev. 1998 - Paul Haigh - Version Originale

  +o  v0.2  - 01 mars 1998 - Paul Haigh - Adjonction des Commentaires des
     Relecteurs

  +o  v1.0 - 10 mars 1998 - Paul Haigh - Publie sous LDP

  +o  v1.1 - 20 juin 1998 - Paul Haigh -  Section  Depannage  ajoutee  et
     rangement general

  11..22..  CCooppyyrriigghhtt

  Le HOWTO Oracle Database est copyright (c) 1998, Paul Haigh.

  Comme  tous les documents HOWTO Linux, celui-ci peut etre reproduit et
  distribue en  entier  ou  en  extrait,  sur  n'importe  quel  support,
  physique  ou  electronique,  tant  que  ce  copyright est maintenu sur
  toutes les copies.

  La redistribution commerciale est autorisee et encouragee.  Cependant,
  l'auteur  aimerait  etre  avise  de  telles distributions. Vous pouvez
  traduire ce HOWTO dans n'importe quelle langue tant que  vous  incluez
  une notice precisant celui ou celle qui a traduit ce document.

  11..33..  MMiissee eenn ggaarrddee

  Bien  que j'ai essaye d'inclure les informations les plus correctes et
  les plus recentes a ma disposition,  je  ne  peux  garantir  que  leur
  utilisation  ne  va  pas  occasionner  des  pertes  de  donnees  ou de
  materiel.  Je ne fournis AUCUNE GARANTIE sur les informations dans  ce
  HOWTO  et  je  ne  suis  responsable d'aucune consequence resultant de
  l'utilisation des informations de ce document.

  11..44..  BBuutt ddee ccee HHOOWWTTOO

  Dans  ce  HOWTO,  je  vais  essayer  de  couvrir   l'installation   et
  l'administration basique d'une base de donnees Oracle tournant sur une
  machine Linux. Je  vais  couvrir  particulierement  l'installation  du
  serveur Oracle, la configuration de SQL*Net et du client.

  Ce  document  n'est  pas  un  tutoriel  complet  sur  l'utilisation et
  l'administration d'une base de donnees Oracle. Si c'est cela que  vous
  recherchez,  il y a de bons livres sur ces sujets publies par O'Reilly
  et autres.

  Je ne vais pas non plus couvrir le developpement des programmes Oracle
  sous   UNIX.   Si   cela  vous  est  absolument  necessaire,  je  vous
  recommanderais d'acheter le systeme  de  developpement  de  SCO  (avec
  OpenServer  5.x)  ,  dont on m'a dit qu'il pouvait etre obtenu pour un
  prix tres raisonnable US $19, a SCO <http://www.sco.com>

  11..55..  PPrree--RReeqquuiiss

  Je suppose acquises un certain nombre de notions  pour  comprendre  la
  suite du HOWTO.

  +o  LLee CCDD SSeerrvveeuurr OOrraaccllee ppoouurr SSCCOO OOppeennSSeerrvveerr ((VVeerrssiioonn 77..33..33..00..00..))

        Ceci   ddooiitt  etre une copie legale.  N'oubliez pas qu'Oracle est
        une societe commerciale et vend ses produits. Si vous voulez une
        base  de donnees compatible SQL gratuite, utilisez PostgreSQL ou
        quelque chose de similaire.

        Il est aussi  possible  d'installer  Oracle,  avec  une  licence
        d'evaluation   de   60   jours,   a   partir  d'un  fichier  tar
        telechargeable  sur  le  site  web  d'Oracle.  Je  ne  l'ai  pas
        personnellement essaye et ce n'est pas verifie.

  +o  UUnn SSeerrvveeuurr LLiinnuuxx

        Vous n'auriez pas lu ceci sans un... N'est-ce pas?

  +o  NNooyyaauu 22..00..3300++

        Je ne peux garantir que les instructions seront fiables pour les
        autres noyaux. (ni pour le 2.0.30, d'ailleurs...)

  +o  iiBBCCSS

        Il est tres important que ceci soit installe et tourne  avec  la
        version   la  plus  recente  possible  pour  votre  plate-forme.
        (J'utilise iBCS-2.0-10.i386.rpm de RedHat Linux).

  +o  BBeeaauuccoouupp dd''eessppaaccee ddiissqquuee

        600  Mb+  est  une  quantite  raisonnable.   Il   est   possible
        d'installer  avec  moins  de  place  mais  vous  devez faire des
        sacrifices, et je ne commence jamais avec ca. Neanmoins, je vais
        essayer  de  souligner  les  endroits  ou  l'on  peut liberer de
        l'espace.

  +o  3322MMbb++ RRaamm

        Je sais que ceci peut  sembler  important,  surtout  en  ce  qui
        concerne  Linux,  mais  n'oubliez pas que Oracle est un logiciel
        complexe. Vous n'auriez pas ces reserves sur SCO!

        Je ne dis pas que Oracle ne marchera pas avec  moins,  mais  que
        c'est  le  minimum recommande par Oracle, ce que je n'aurais pas
        conseille.

  +o  LLiicceenncceess ddee OOrraaccllee

        Je sais que je l'ai deja mentionne ceci mais  je  voudrais  etre
        clair  sur  son importance. Utilisez les logiciels d'Oracle sans
        licence est illegal.

  11..66..  AAmmeelliioorraattiioonnss FFuuttuurreess

  Voici quelques domaines du serveur Oracle qui ne sont pas couverts par
  ce  HOWTO.  Cependant,  si  le  temps me le permet, j'essaierai de les
  inclure dans les prochaines versions du HOWTO.

  +o  Developpement   des   programmes   Oracle   Pro*   utilisant    les
     bibliotheques Oracle.

  +o  Installation des versions differentes du serveur Oracle.

  +o  Installation du serveur web Oracle.

  +o  Comment relier le noyau Oracle.

  22..  IInnssttaallllaattiioonn dduu llooggiicciieell OOrraaccllee

  22..11..  PPrreeppaarraattiioonn dduu SSeerrvveeuurr

  22..11..11..  CCrreeaattiioonn dd''uunn UUttiilliissaatteeuurr OOrraaccllee

  Nous  avons  evidemment besoin d'un utilisateur pour maintenir la base
  de donnees Oracle. Comme nous n'avons l'intention de relier  le  noyau
  Oracle  (plus  sur  ceci  plus  tard),  nous  devons accepter les noms
  d'utilisateur  et  de  groupe   par   defaut   d'Oracle.   Il   inclut
  l'utilisateur ORACLE et le groupe DBA.

  1. Se connecter comme root

  2. Creer l'utilisateur oracle et le groupe dba.

       ______________________________________________________________________
       $ groupadd dba
       $ useradd  oracle
       ______________________________________________________________________

  3. S'assurer  que  le repertoire personnel est cree pour l'utilisateur
     oracle.

  ______________________________________________________________________
  $ mkdir /home/oracle
  $ mkdir /home/oracle/7.3.3.0.0 (Version of Oracle)
  $ chown -R oracle.dba /home/oracle
  ______________________________________________________________________

  22..22..  IInnssttaallllaattiioonn ddeeppuuiiss llee CCDDRROOMM

  Malheureusement, l'Installateur Oracle sur le CD SCO ne marchera  pas.
  Beaucoup  de  problemes  peut  etre  rencontres,  des  core  dumps aux
  blocages. On doit donc copier les fichiers du  CDROM  manuellement  et
  les decompresser:

  (S'assurer que le CDROM est monte sur le systeme).

  1. Se connecter comme utilisateur Oracle

  2. Changer de repertoire pour /home/oracle/7.3.3.0.0.

  3. Copier les fichiers d'installation du CDROM

       ______________________________________________________________________
       $ cp -a /mnt/cdrom/* .
       ______________________________________________________________________

  4. Decompresser les fichiers Oracle du CDROM.

       ______________________________________________________________________
       $ find . -name *_ -exec ~/7.3.3.0.0/orainst/oiuncomp {} \;
       ______________________________________________________________________

  22..33..  TTaacchheess ddee PPoosstt IInnssttaallllaattiioonn

  22..33..11..  TTaacchheess ppoouurr RRoooott

  Ajouter les lignes suivantes dans /etc/profile ou  dans  .profile pour
  chaque utilisateur d'Oracle.

       ______________________________________________________________________
       # Oracle Specific
       ORACLE_HOME=/home/oracle/7.3.3.0.0
       ORACLE_SID=orcl
       ORACLE_TERM=vt100
       export ORACLE_HOME ORACLE_SID ORACLE_TERM

       # Changer le chemin pour Oracle
       PATH="$PATH:$ORACLE_HOME/bin"
       ______________________________________________________________________

  Nous devons aussi  changer  le  proprietaire  et  les  permissions  de
  l'utilitaire Oracle d'augmentation de ulimit.

       ______________________________________________________________________
       $ chown root.root $ORACLE_HOME/bin/osh
       $ chmod u+s $ORACLE_HOME/bin/osh
       ______________________________________________________________________

  22..33..22..  TTaacchheess ppoouurr OOrraaccllee

  Changer  les  permissions  pour  les fichiers Oracle pour s'assurer de
  leur bonne execution.

       ______________________________________________________________________
       $ chmod +x $ORACLE_HOME/bin/*
       $ chmod u+s $ORACLE_HOME/bin/oracle
       ______________________________________________________________________

  Les outils Oracle demandent que les messages soient dans le repertoire
  $ORACLE_HOME/tool_name/mesg.   Donc,  deplacez  les fichiers  msb  des
  repertoires  msg_ship aux repertoires mesg.

       ______________________________________________________________________
       $ mv $ORACLE_HOME/plsql/mesg/mesg_ship/* $ORACLE_HOME/plsql/mesg/.
       $ mv $ORACLE_HOME/rdbms/mesg/mesg_ship/* $ORACLE_HOME/rdbms/mesg/.
       $ mv $ORACLE_HOME/svrmgr/mesg/mesg_ship/* $ORACLE_HOME/svrmgr/mesg/.
       ______________________________________________________________________

  Creer les repertoires suivants, s'ils n'existent pas:

       ______________________________________________________________________
       $ mkdir $ORACLE_HOME/rdbms/log
       $ mkdir $ORACLE_HOME/rdbms/audit
       $ mkdir $ORACLE_HOME/network/log
       ______________________________________________________________________

  22..33..33..  CCeeuuxx qquuee vvoouuss ppoouuvveezz eennlleevveerr

  Les repertoires suivants peuvent etre enleves sans probleme:

  +o  $ORACLE_HOME/guicommon2/

  +o  $ORACLE_HOME/ctx/

  +o  $ORACLE_HOME/md/

  +o  $ORACLE_HOME/mlx/

  +o  $RACLE_HOME/precomp/

  +o  $ORACLE_HOME/slax/

  33..  CCrreeaattiioonn dd''uunnee bbaassee ddee ddoonnnneeeess

  Maintenant que le serveur Oracle est installe, nous devons  creer  une
  base  de  donnees pour tester l'installation.  Si vous utilisez Oracle
  7.2.x ou une version anterieure, veuillez lire  la  section  Depannage
  ci-dessous.

  33..11..  CCrreeeerr llee ffiicchhiieerr dd''IInniittiiaalliissaattiioonn

  Copiez $ORACLE_HOME/dbs/init.ora vers $ORACLE_HOME/dbs/initorcl.ora:

       ______________________________________________________________________
       $ cd $ORACLE_HOME/dbs
       $ cp init.ora initorcl.ora
       ______________________________________________________________________

  Le modifier en ajoutant les lignes suivantes:

       ______________________________________________________________________
       db_name = orcl
       COMPATIBLE=7.3.3.0.0
       ______________________________________________________________________

  33..22..  CCrreeaattiioonn dduu ssccrriipptt ppoouurr ll''iinnssttaallllaattiioonn ddee llaa bbaassee ddee ddoonnnneeeess

  Creer  un  fichier  script  nomme  makedb.sql   dans   le   repertoire
  $ORACLE_HOME/dbs:

  ______________________________________________________________________
  connect internal
  startup nomount
  set echo on
  spool makedb.log
  create database orcl
          maxinstances 1
          maxlogfiles  8
          datafile '$ORACLE_HOME/dbs/orcl_syst_01.dbf' size 40M reuse
          logfile
                  '$ORACLE_HOME/dbs/orcl_redo_01.dbf' size 1M reuse,
                  '$ORACLE_HOME/dbs/orcl_redo_02.dbf' size 1M reuse,
                  '$ORACLE_HOME/dbs/orcl_redo_03.dbf' size 1M reuse;
  @$ORACLE_HOME/rdbms/admin/catalog.sql
  create tablespace rollback
          datafile '$ORACLE_HOME/dbs/orcl_roll_01.dbf' size 8.5M reuse;
  create tablespace temp
          datafile '$ORACLE_HOME/dbs/orcl_temp_01.dbf' size 5M reuse
          temporary;
  create tablespace users
          datafile '$ORACLE_HOME/dbs/orcl_user_01.dbf' size 10M reuse;
  create rollback segment r1 tablespace rollback
          storage ( optimal 5M );
  alter rollback segment r1 online;
  connect system/manager
  @$ORACLE_HOME/rdbms/admin/catdbsyn.sql
  connect internal
  @$ORACLE_HOME/rdbms/admin/catproc.sql
  connect system/manager
  @$ORACLE_HOME/sqlplus/admin/pupbld.sql
  spool off
  exit
  ______________________________________________________________________

  33..33..  EExxeeccuutteerr llee ssccrriipptt ppoouurr ll''iinnssttaallllaattiioonn ddee llaa bbaassee ddee ddoonnnneeeess

  Demarrer svrmgrl et executer le script:

  ______________________________________________________________________
  $ cd $ORACLE_HOME/dbs
  $ svrmgrl

  Oracle Server Manager Release 2.3.3.0.0 - Production

  Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

  Oracle7 Server Release 7.3.3.0.0 - Production Release
  PL/SQL Release 2.3.3.0.0 - Production

  SVRMGR> connect internal
  Connected.
  SVRMGR> startup nomount
  ORACLE instance started.
  Total System Global Area       4313312 bytes
  Fixed Size                       41876 bytes
  Variable Size                  4140364 bytes
  Database Buffers                122880 bytes
  Redo Buffers                      8192 bytes
  SVRMGR> @makedb
  <beaucoup de messages>
  SVRMGR> exit
  Server Manager complete.
  ______________________________________________________________________

  33..44..  DDeemmaarrrreerr llaa bbaassee ddee ddoonnnneeeess

  Premierement, nous devons lancer la base de donnees manuellement (nous
  l'automatiserons plus tard). Pour demarrer une base de donnees Oracle,
  nous devons emettre la commande startup en etant connecte localement:

       ______________________________________________________________________
       $ svrmgrl

       Oracle Server Manager Release 2.3.3.0.0 - Production

       Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

       Oracle7 Server Release 7.3.3.0.0 - Production Release
       PL/SQL Release 2.3.3.0.0 - Production

       SVRMGR> connect internal
       Connected.
       SVRMGR> startup
       ORACLE instance started.
       Total System Global Area       4313316 bytes
       Fixed Size                       41876 bytes
       Variable Size                  4140368 bytes
       Database Buffers                122880 bytes
       Redo Buffers                      8192 bytes
       Database mounted.
       Database opened.
       SVRMGR> exit
       Server Manager complete.
       ______________________________________________________________________

  33..55..  AArrrreetteerr llaa bbaassee ddee ddoonnnneeeess

  Il est important de mentionner ici que  redemarrer  un  serveur  Linux
  sans  fermer  auparavant  la  base  de  donnees  Oracle risque fort de
  corrompre la base de donnees.

  Donc, avant d'emettre la commande  Linux  shutdown,  il  est  sage  de
  fermer le base de donnees:

       ______________________________________________________________________
       $ svrmgrl

       Oracle Server Manager Release 2.3.3.0.0 - Production

       Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

       Oracle7 Server Release 7.3.3.0.0 - Production Release
       PL/SQL Release 2.3.3.0.0 - Production

       SVRMGR> connect internal
       Connected.
       SVRMGR> shutdown
       Database closed.
       Database dismounted.
       ORACLE instance shut down.
       SVRMGR> exit
       Server Manager complete.
       ______________________________________________________________________

  33..66..  CCrreeeerr uunn UUttiilliissaatteeuurr ppaarr ddeeffaauutt

  La  base  de  donnees,  telle qu'elle a ete creee, a deux utilisateurs
  speciaux qui sont crees automatiquement. Ce sont;

       ______________________________________________________________________
       Username                Password

       SYSTEM                  MANAGER
       SYS                     change_on_install
       ______________________________________________________________________

  Ces  utilisateurs  sont  typiquement  utilises  pour   maintenir   les
  informations  sur  le dictionnaire standard de donnees pour la base de
  donnees. C'est une bonne idee de changer les mots de passe par  defaut
  aussitot que possible.

  Ceci peut etre fait par:

  ______________________________________________________________________
  sqlplus system/manager

  SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

  Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.

  Connected to:
  Oracle7 Server Release 7.3.3.0.0 - Production Release

  SQL> alter user system identified by <newpassword>;

  User altered.

  SQL> alter user sys identified by <newpassword>;

  User altered.

  SQL> exit;
  Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
  PL/SQL Release 2.3.3.0.0 - Production
  ______________________________________________________________________

  Comme  l'utilisateur system/manager est similaire a l'utilisateur root
  sur une machine UNIX, nous devons creer un utilisateur avec  moins  de
  pouvoir a causer des degats possibles (rappelez-vous de lancer la base
  de donnees avant d'essayer de creer un utilisateur).

  Se connecter a SQL*Plus et creer un utilisateur:

       ______________________________________________________________________
       $ sqlplus system/manager

       SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

       Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.

       Connected to:
       Oracle7 Server Release 7.3.3.0.0 - Production Release
       PL/SQL Release 2.3.3.0.0 - Production

       SQL> create user <user> identified by <psw>
         2  default tablespace users
         3  temporary tablespace temp;

       User created.

       SQL> grant connect, resource to <user>

       Grant succeeded.

       SQL> exit
       Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
       PL/SQL Release 2.3.3.0.0 - Production
       ______________________________________________________________________

  Maintenant que vous avez un nouvel utilisateur sur  le  systeme,  vous
  pouvez jouer avec. Pour se connecter sur la base de donnees Oracle:

       ______________________________________________________________________
       $ sqlplus <user>/<password>
       ______________________________________________________________________

  Si  ceci  s'execute sans messages d'erreur, vous avez donc une base de
  donnees Oracle qui marche. Si  vous  ne  voulez  vous  connecter  qu'a
  partir de ce serveur, votre travail est donc termine. Amusez-vous!

  Si,  cependant,  comme  la plupart des gens, vous voulez configurer la
  partie reseau du logiciel pour que vous puissiez vous connecter depuis
  d'autres machine, continuez votre lecture.

  44..  CCoonnffiigguurreerr SSQQLL**NNeett ssuurr llee SSeerrvveeuurr

  Tous  ces  fichiers  configurent la partie reseau d'Oracle (SQL*Net ou
  Net8 pour Oracle8). Ces fichiers doivent etre  crees  sur  le  serveur
  dans le repertoire $ORACLE_HOME/network/admin.

  44..11..  ttnnssnnaammeess..oorraa

  Le  fichier  TNSNAMES.ORA identifie les services disponibles depuis la
  machine. Dans notre cas, nous decrirons toutes les  bases  de  donnees
  que le serveur a monte. Pour chaque base de donnees sur votre serveur,
  ajouter une section comme ci-dessous:

       ______________________________________________________________________
       orcl.world =
         (DESCRIPTION =
           (ADDRESS_LIST =
               (ADDRESS =
                 (COMMUNITY = tcp.world)
                 (PROTOCOL = TCP)
                 (Host = <INSERER LE NOM LOGIQUE DU SERVEUR ICI> )
                 (Port = 1521)
               )
               (ADDRESS =
                 (COMMUNITY = tcp.world)
                 (PROTOCOL = TCP)
                 (Host = <INSERER LE NOM LOGIQUE DU SERVEUR ICI> )
                 (Port = 1526)
               )
           )
           (CONNECT_DATA = (SID = ORCL)
           )
         )
       ______________________________________________________________________

  44..22..  lliisstteenneerr..oorraa

  Le fichier listener.ora contient la description des services  auxquels
  d'autres  machines  sont  autorisees  a  se  connecter  et  toutes les
  configurations necessaires pour l'ecouteur du serveur.
  Il contient les sections pour le nom de l'ecouteur, son  adresse,  les
  bases  de  donnees  desservies  par  l'ecouteur  et  les parametres de
  configuration.

  Voici un exemple:

       ______________________________________________________________________
       # Nom de l'ecouteur et les adresses a ecouter
       LISTENER =
               ( ADDRESS_LIST =
                       (ADDRESS =
                               (PROTOCOL=tcp)
                               (HOST=<INSERT HOST>)
                               (PORT=1521)
                               (COMMUNITY=UK_SUP_TCPIP)
                       )
                       (ADDRESS =
                               (PROTOCOL=ipc)
                               (KEY=700)
                               (COMMUNITY=UK_SUP_TCPIP)
                       )
               )

       # Liste des services desservis par l'ecouteur
       SID_LIST_LISTENER=
               (SID_LIST=
                       (SID_DESC=
                               (SID_NAME=orcl)
                               (ORACLE_HOME=/home/oracle/7.3.3.0.0)
                       )
               )

       # Debut des parametres de configuration
       TRACE_LEVEL_LISTENER=OFF
       TRACE_FILE_LISTENER = "listener"
       LOG_FILE_LISTENER = "listener"
       CONNECT_TIMEOUT_LISTENER = 10
       STOP_LISTENER = YES
       DBA_GROUP = dba
       ______________________________________________________________________

  44..33..  ssqqllnneett..oorraa

  Le fichier sqlnet.ora contient  la  configuration  pour  le  noeud  du
  reseau.  Ceci  est  independant  du  nombre  de bases de donnees ou du
  nombre d'ecouteurs. La chose la plus importante dans ce fichier est la
  variable de configuration Timeout des Connexions Mortes.

  Le timeout des connexions mortes verifie chaque processus entrant a la
  base de donnees et assure que le cote client repond  toujours.  Si  le
  client  (de tout type) ne repond pas, le processus en tache de fond du
  serveur Oracle sera tue.

  Ceci est tres utile si vous avez plusieurs clients qui accedent  a  la
  base  de  donnees,  surtout  pendant  la phase de developpement ou ces
  clients ne reussiront certainement pas a sortir proprement de la  base
  de donnees Oracle.

  Voici une copie de mon fichier sqlnet.ora pour vous servir d'exemple:

       ______________________________________________________________________
       TRACE_LEVEL_CLIENT = OFF
       sqlnet.expire_time = 30         # le nombre de secondes entre les verifications des clients.
       names.default_domain = world
       name.default_zone = world
       ______________________________________________________________________

  44..44..  LLaanncceerr eett AArrrreetteerr lleess EEccoouutteeuurrss..

  Maintenant que la configuration des ecouteurs et de SQL*Net est finie,
  nous pouvons essayer de connecter la base de donnees en  utilisant  la
  partie  reseau.  (Avant  nous  utilisions  l'acces direct a la base de
  donnees, alors qu'ici nous simulons une connexion depuis  une  machine
  cliente distante).

  Pour lancer l'ecouteur en utilisant la configuration ci-dessus:

       ______________________________________________________________________
       $ lsnrctl

       LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25

       Copyright (c) Oracle Corporation 1994.  All rights reserved.

       Welcome to LSNRCTL, type "help" for information.

       LSNRCTL> start
       Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...

       TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
       System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora
       Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
       Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))
       Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))

       Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
       STATUS of the LISTENER
       ------------------------
       Alias                     LISTENER
       Version                   TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
       Start Date                23-FEB-98 20:38:50
       Uptime                    0 days 0 hr. 0 min. 0 sec
       Trace Level               off
       Security                  OFF
       SNMP                      ON
       Listener Parameter File   /home/oracle/7.3.3.0.0/network/admin/listener.ora
       Listener Log File         /home/oracle/7.3.3.0.0/network/log/listener.log
       Services Summary...
         orcl          has 1 service handler(s)
       The command completed successfully
       LSNRCTL> exit
       ______________________________________________________________________

  Pour arreter les ecouteurs:

       ______________________________________________________________________
       $ lsnrctl

       LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20

       Copyright (c) Oracle Corporation 1994.  All rights reserved.

       Welcome to LSNRCTL, type "help" for information.

       LSNRCTL> stop
       Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
       The command completed successfully
       LSNRCTL> exit
       ______________________________________________________________________

  Si  vous  avez  une configuration DNS qui ne retourne pas l'adresse IP
  pour le nom logique specifie, le lancement et  l'arret  de  l'ecouteur
  prendront  donc  in certain temps. (2-3 mins. dependant de la variable
  timeout du DNS). Si c'est le  cas  ,  ne  vous  inquietez  pas.  Soyez
  patient.

  55..  CCoonnffiigguurraattiioonn dduu CClliieenntt

  55..11..  CClliieennttss WWiinnddoowwss

  La  configuration  SQL*Net  sur  un  PC  avec les versions recentes du
  logiciel Client Oracle est tres facile. La meilleure facon (et la plus
  facile)   pour   reussir   l'installation   d'un   client  qui  marche
  entierement, est d'utiliser l'outil SQL*Net Easy Configuration  fourni
  par Oracle.

  Cet  outil  a  une  interface qui vous guidera dans l'installation des
  fichiers tnsnames.ora et sqlnet.ora.

  Selectionnez "Add Database  Alias"  et  entrez  le  nom  pour  l'alias
  demande.   Cet  alias  est le nom par lequel vous allez vous referer a
  l'instance de la base de donnees, et doit donc etre le meme que  celui
  de l'instance (orcl dans ce cas).

  Selectionnez  TCP/IP  comme  protocole,  le  nom logique de la machine
  hebergeant la base de donnees et le nom de l'instance de  la  base  de
  donnees.

  C'est tout.

  Cependant, si vous n'avez pas l'outil SQL*Net Easy Configuration Tool,
  ne vous inquietez pas.  Vous  pouvez  simplement  creer  les  fichiers
  tnsnames.ora      et      sqlnet.ora      dans      le      repertoire
  $ORACLE_HOME/network/admin sur le  client,  exactement  comme  sur  le
  serveur.  Il fournira comme alias le meme que sur le serveur (toujours
  une bonne idee de toute facon).

  55..22..  CClliieennttss UUnniixx

  Les clients UNIX ne sont pas tres differents des clients  Windows.  Si
  vous avez Network Manager d'Oracle, alors utilisez-le de la meme facon
  que ci-dessus, sinon vous pouvez utiliser juste les memes fichiers  de
  configuration    que    sur    le    serveur    dans   le   repertoire
  $ORACLE_HOME/network/admin.

  66..  LLaanncceemmeenntt eett AArrrreett AAuuttoommaattiiqquuee

  66..11..  ddbbssttaarrtt et dbstop

  Le demarrage et l'arret automatique  de  la  base  de  donnees  Oracle
  peuvent  etre  effectues (avec la version 7.3.3.0.0) avec les fichiers
  dbstart  et  dbshut,  tous  deux  fournis  par  Oracle.  Ces  fichiers
  dependent  sur  l'existence  du  fichier  /etc/oratab pour fonctionner
  (bien qu'en modifiant les fichiers dbshut et dbstart il puissent  etre
  deplaces).

  Le format du fichier /etc/oratab est le suivant:

       ______________________________________________________________________
       SID:ORACLE_HOME:AUTO
       ______________________________________________________________________

  Un  exemple:

       ______________________________________________________________________
       orcl:/home/oracle/7.3.3.0.0:Y
       leaveup:/home/oracle/7.3.2.1.0:N
       ______________________________________________________________________

  66..22..  iinniitt..dd et rc.d

  Pour  demarrer et arreter la base de donnees quand la machine se lance
  ou s'eteint, il faut  modifier  les  routines  de  demarrage  pour  la
  machine Linux. Ceci est tres facile, bien que je devrais souligner que
  cela peut changer suivant la distribution  Linux  (Slackware,  Debian,
  RedHat,  etc).   Je  vais  montrer quelques exemples qui marchent avec
  RedHat Linux 5.0. Pour modifier ceux-ci pour votre propre distribution
  Linux,  veuillez  voir  votre documentation Linux. (bien que ceci doit
  etre valable pour n'importe quel UNIX de type Sys V)

  Premierement, nous devons creer le script  qui  executera   dbshut  et
  dbstart  dans  le  repertoire   /etc/rc.d/init.d  .  Creez  le fichier
  suivant comme /etc/rc.d/init.d/oracle:

  ______________________________________________________________________
  #!/bin/sh
  #
  # /etc/rc.d/init.d/oracle
  # Description: Starts and stops the Oracle database and listeners
  # See how we were called.
  case "$1" in
    start)
          echo -n "Starting Oracle Databases: "
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          su - oracle -c dbstart >> /var/log/oracle
          echo "Done."
          echo -n "Starting Oracle Listeners: "
          su - oracle -c "lsnrctl start" >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          touch /var/lock/subsys/oracle
          ;;
    stop)
          echo -n "Shutting Down Oracle Listeners: "
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          su - oracle -c "lsnrctl stop" >> /var/log/oracle
          echo "Done."
          rm -f /var/lock/subsys/oracle
          echo -n "Shutting Down Oracle Databases: "
          su - oracle -c dbshut >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          ;;
    restart)
          echo -n "Restarting Oracle Databases: "
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          su - oracle -c dbstop >> /var/log/oracle
          su - oracle -c dbstart >> /var/log/oracle
          echo "Done."
          echo -n "Restarting Oracle Listeners: "
          su - oracle -c "lsnrctl stop" >> /var/log/oracle
          su - oracle -c "lsnrctl start" >> /var/log/oracle
          echo "Done."
          echo ""
          echo "----------------------------------------------------" >> /var/log/oracle
          date +"! %T %a %D : Finished." >> /var/log/oracle
          echo "----------------------------------------------------" >> /var/log/oracle
          touch /var/lock/subsys/oracle
          ;;
    *)
          echo "Usage: oracle {start|stop|restart}"
          exit 1
  esac
  ______________________________________________________________________

  Il vaut la peine de verifier si le fichier arrete et demarre  vraiment
  correctement  les  bases  de  donnees  pour  le  systeme.  Verifiez le
  fichier de log, /var/log/oracle, pour les messages d'erreur.

  Une fois que le script marche, nous devons creer les liens symboliques
  de start et kill dans les repertoires appropries de niveau d'execution
  (runlevel) /etc/rc.d/rcX.d.

  Les commandes suivantes assureront  que  les  bases  de  donnees  vont
  demarrer dans les niveaux d'execution 2,3 et 4:

       ______________________________________________________________________
       $ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
       $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
       $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
       ______________________________________________________________________

  Pour  arreter  les bases de donnees avant un reamorcage ou arret, nous
  avons besoin des liens suivants:

       ______________________________________________________________________
       $ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # Halting
       $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # Rebooting
       ______________________________________________________________________

  77..  AAuuttrreess ttrruuccss

  77..11..  AAggeenntt IInntteelllliiggeenntt

  Si vous  avez  besoin  d'un  Agent  Intelligent  Oracle,  vous  pouvez
  l'executer sans changement de la configuration.

  Pour demarrer le AI, essayez:

       ______________________________________________________________________
       $ lsnrctl dbsnmp_start
       ______________________________________________________________________

  Pour arreter l'AI, essayez:

       ______________________________________________________________________
       $ lsnrctl dbsnmp_stop
       ______________________________________________________________________

  Il ne semble pas y avoir de message indiquant le lancement avec succes
  ou non de l'agent intelligent.  Cependant, l'AI repond au gestionnaire
  _E_n_t_e_r_p_r_i_s_e  sur  le  cote  client. Donc, je ne peux que supposer qu'il
  marche.

  88..  DDeeppaannnnaaggee

  Voir ci-dessous les differents conseils de depannage.

  88..11..  JJee nnee ppeeuuxx ppaass ccrreeeerr uunnee bbaassee ddee  ddoonnnneeeess  eenn  uuttiilliissaanntt  OOrraaccllee
  77..22..xx..

  Les  fichiers  expedies  par  Oracle  dans  les  versions  7.2.x  sont
  incorrects  en  supposant  que vous voulez installer une configuration
  parallele de serveur. Le fichier init.ora contient la ligne suivante:

       ______________________________________________________________________
       # define parallel server (multi-instance) parameters
       ifile = ora_system:initps.ora
       ______________________________________________________________________

  Pour fixer le probleme, mettez la en commentaire:

       ______________________________________________________________________
       # define parallel server (multi-instance) parameters
       #ifile = ora_system:initps.ora
       ______________________________________________________________________

  88..22..  JJ''oobbttiieennss lleess ddeeffaauuttss ddee sseeggmmeennttaattiioonn ddaannss  llee   ssvvrrmmggrrll  de  la
  version 7.3.4.x.

  Ce probleme m'a ete  signale  par  un  certain  nombre  de  personnes.
  Gerald Weber gerald_weber@master.co.at l'a resolu:

  ______________________________________________________________________
  Bonjour Paul,

  D'abord merci pour votre aide, mais aucun des problemes possubles que vous pensez n'etait responsable de mon probleme.
  Le probleme esy l'emulateur iBCS lui-meme.
  Il semble que Oracle execute les appels sysconf qui ne sont pas supportes dans la version en cours d'iBCS.
  Regardez la trace:

  <7>[22]615 sysconf(34)
  <7>iBCS2 unsupported sysconf call 34
  <7>[22]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>
  <7>[24]615 sysconf(34)
  <7>iBCS2 unsupported sysconf call 34
  <7>[24]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>

  Solution:  patcher iBCS-source.apply avec le diff-patch suivant:

  --- sysconf.c   Sun Apr 19 19:19:15 1998
  +++ sysconf.c.ori       Sun Apr 19 19:28:45 1998
  @@ -60,7 +60,6 @@
   #define _SC_JOB_CONTROL        5
   #define _SC_SAVED_IDS  6
   #define _SC_VERSION    7
  -#define _SC_HACK_FOR_ORACLE 34

   #define _SC_PAGESIZE   11

  @@ -97,11 +96,6 @@
                  case _SC_SAVED_IDS: {
                          return (1);
                  }
  -
  -               case _SC_HACK_FOR_ORACLE: {
  -                 return (1);
  -               }
  -

                  case _SC_PAGESIZE: {
                    return PAGE_SIZE;
  ______________________________________________________________________

  99..  CCrreeddiittss

  Ce  document  est  base  sur  un  document  ecrit par Bob Withers. Des
  informations supplementaires sont extraites des documents  ecrits  par
  Georg Rehfeld et David Mansfield.

  Relectures supplementaires faites par Bob Withers, Mark Watling, Peter
  Sodhi et Greg Hankins.

  Mes remerciements  vont  au  support  immense  de  la  part  des  gens
  impliques  dans  ce  document et aux recherches qu'ils ont effectuees.
  Remerciements particuliers a Bob Withers et Mark  Watling  pour  leurs
  commentaires additionnels et l'aide qu'ils m'ont apportee.

