home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Oracle-HOWTO < prev    next >
Text File  |  1998-08-26  |  37KB  |  1,321 lines

  1.   Oracle Database HOWTO
  2.   Paul Haigh, paul@nailed.demon.co.uk
  3.   v1.2, 4 August 1998
  4.  
  5.   A guide to installing and configuring the Oracle Database Server on a
  6.   Linux system
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Version History
  70.      1.2 Copyright
  71.      1.3 Disclaimer
  72.      1.4 Aim of the HOWTO
  73.      1.5 Requirements
  74.      1.6 News From Oracle Corporation
  75.  
  76.   2. Installing the Oracle Software
  77.  
  78.      2.1 Server Preparation
  79.         2.1.1 Creating an Oracle User
  80.      2.2 Installing from CDROM
  81.      2.3 Post Installation Tasks
  82.         2.3.1 Tasks for Root
  83.         2.3.2 Tasks for Oracle
  84.         2.3.3 Things you can remove
  85.  
  86.   3. Creating a Database
  87.  
  88.      3.1 Create the Initialisation File
  89.      3.2 Creating the Database Install Script
  90.      3.3 Running the Database Installation Script
  91.      3.4 Starting the Database
  92.      3.5 Stopping the Database
  93.      3.6 Create a Default User
  94.  
  95.   4. Configuring SQL*Net on the Server
  96.  
  97.      4.1 (TT
  98.      4.2 (TT
  99.      4.3 (TT
  100.      4.4 Starting and Stopping the Listeners
  101.  
  102.   5. Client Configuration
  103.  
  104.      5.1 Windows Clients
  105.      5.2 Unix Clients
  106.  
  107.   6. Automatic Startup and Shutdown
  108.  
  109.      6.1 (TT
  110.      6.2 (TT
  111.  
  112.   7. Other Bits
  113.  
  114.      7.1 Intelligent Agent
  115.  
  116.   8. Troubleshooting
  117.  
  118.      8.1 I cannot create a database when using Oracle 7.2.x.
  119.      8.2 I'm getting segmentation faults in
  120.  
  121.   9. Credits
  122.  
  123.  
  124.  
  125.   ______________________________________________________________________
  126.  
  127.   1.  Introduction
  128.  
  129.   1.1.  Version History
  130.  
  131.  
  132.  
  133.   ╖  v0.1 - 21 Feb 1998 - Paul Haigh - Original Version.
  134.  
  135.   ╖  v0.2 - 01 Mar 1998 - Paul Haigh - Comments From Proofreaders Added.
  136.  
  137.   ╖  v1.0 - 10 Mar 1998 - Paul Haigh - First Release to LDP.
  138.  
  139.   ╖  v1.1 - 20 Jun 1998 - Paul Haigh - Added troubleshooting section &
  140.      general tidyup.
  141.  
  142.   ╖  v1.2 - 04 Aug 1998 - Paul Haigh - Added Oracle Corp News & Removed
  143.      Section on Future Enhancements.
  144.  
  145.   1.2.  Copyright
  146.  
  147.   The Oracle Database HOWTO copyright (c) 1998, Paul Haigh.
  148.  
  149.   Like all Linux HOWTO documents, this may be reproduced and distributed
  150.   in whole or in part, in any medium, physical or electronic, so long as
  151.   this copyright notice is retained on all copies.
  152.  
  153.   Commercial redistribution is allowed and encouraged; however the
  154.   author would like to be notified of such distributions. You may
  155.   translate this HOWTO into any language whatsoever provided that you
  156.   leave this copyright statement and disclaimer intact, and that you
  157.   append a notice stating who translated the document.
  158.  
  159.   1.3.  Disclaimer
  160.  
  161.   While I have tried to include the most correct and up to date
  162.   information available to me, I cannot guarantee that usage of
  163.   information in this document does not result in loss of data or
  164.   equipment. I provide NO WARRANTY about the information in the HOWTO
  165.   and I cannot be made liable for any consequences resulting from using
  166.   the information in this HOWTO.
  167.  
  168.   1.4.  Aim of the HOWTO
  169.  
  170.   In this HOWTO I will attempt to cover installation and basic admin of
  171.   an Oracle database running on a Linux machine.  In particular I will
  172.   cover Oracle server installation, SQL*Net configuration and client
  173.   configuration.
  174.  
  175.  
  176.   This document is not an in depth tutorial on using or administering an
  177.   Oracle database, if that is what you are looking for there are great
  178.   books on those subjects published by O'Reilly and others.
  179.  
  180.  
  181.   I am also not going to cover the development of Oracle programs under
  182.   UNIX.  If this is absolutley necessary to you then I would recommend
  183.   that you purchase the SCO development system (with OpenServer 5.x)
  184.   from SCO, which I am told can be obtained for a very reasonable US
  185.   $19, from www.sco.com.
  186.  
  187.   1.5.  Requirements
  188.  
  189.   I am assuming a number of items that you will need for following the
  190.   HOWTO.
  191.  
  192.   ╖  Oracle Server CD for SCO Openserver (Version 7.3.3.0.0.)
  193.  
  194.         This must be a legal copy.  Remember that Oracle are a profit
  195.         making company and charge for their products.  If you want a
  196.         free SQL compliant database use PostgresSQL or similar.
  197.  
  198.         It is also possible to install oracle, using a 60 day evaluation
  199.         licence, from a downloadable tar file from the Oracle web site.
  200.         I have not personally tried this and it is completely
  201.         unverified.
  202.  
  203.  
  204.  
  205.   ╖  A Linux Server
  206.  
  207.  
  208.         You wouldn't be reading this without one...would you?
  209.  
  210.  
  211.  
  212.   ╖  Kernel 2.0.30+
  213.  
  214.  
  215.         I cannot guarantee that these instructions will be accurate for
  216.         any other Kernel.  (Not that I am guaranteeing it for 2.0.30
  217.         either...).
  218.  
  219.  
  220.  
  221.   ╖  iBCS
  222.  
  223.  
  224.         It is very important to have this installed and working with the
  225.         latest possible version for your platform.  (I am using
  226.         iBCS-2.0-10.i386.rpm from Redhat Linux).
  227.  
  228.  
  229.  
  230.   ╖  Lots of disc space
  231.  
  232.  
  233.         600 Mb+ is a reasonable amount.  It is possible to install with
  234.         less but you need to make some sacrifices, and I never like
  235.         starting with those.  However, I will attempt to point out areas
  236.         in which space can be freed up.
  237.  
  238.  
  239.  
  240.   ╖  32Mb+ Ram
  241.  
  242.  
  243.         I know that this sounds like a lot, especially in Linux terms,
  244.         but remember that Oracle is a complex piece of software.  You
  245.         wouldn't have the same reservations on SCO!
  246.  
  247.  
  248.         I am not saying that Oracle doesn't work with less, just that it
  249.         is less than Oracle recommend and I wouldn't suggest it.
  250.  
  251.  
  252.  
  253.   ╖  Licenses from Oracle
  254.  
  255.  
  256.         I know that I have already mentioned this but I want to be clear
  257.         that this is important.  Using software from Oracle without a
  258.         license is illegal.
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.   1.6.  News From Oracle Corporation
  266.  
  267.   Oracle have bowed into pressure from the Linux community.  Oracle
  268.   Corporation have decided to officially support Oracle 8 on the Linux
  269.   (i386) platform.  This should be released in December 1998, according
  270.   to the Oracle website.
  271.  
  272.  
  273.   Better still Oracle will also be porting Oracle Applications to the
  274.   linux platform.  This should be available in the first half of 1999,
  275.   according to the Oracle website.
  276.  
  277.   References:
  278.  
  279.   ╖  http://www.oracle.com/html/linux.html
  280.  
  281.   ╖  http://www.news.com/News/Item/0,4,24436,00.html
  282.  
  283.   ╖  http://www.zdnet.com/pcweek/news/0720/20morac.html
  284.  
  285.  
  286.   2.  Installing the Oracle Software
  287.  
  288.   2.1.  Server Preparation
  289.  
  290.   2.1.1.  Creating an Oracle User
  291.  
  292.   Unsurprisingly we require a user to hold the Oracle database.  Since
  293.   we have no desire to relink the Oracle kernel (more about that later)
  294.   we have to accept the Oracle defaults for user name and group name.
  295.   This includes the user ORACLE and the group DBA.
  296.  
  297.  
  298.   1. Login as Root
  299.  
  300.  
  301.   2. Create the oracle user and the group dba.
  302.  
  303.  
  304.        ______________________________________________________________________
  305.        $ groupadd dba
  306.        $ useradd  oracle
  307.        ______________________________________________________________________
  308.  
  309.  
  310.  
  311.  
  312.   3. Ensure a home directory is created for the user oracle.
  313.  
  314.  
  315.        ______________________________________________________________________
  316.        $ mkdir /home/oracle
  317.        $ mkdir /home/oracle/7.3.3.0.0 (Version of Oracle)
  318.        $ chown -R oracle.dba /home/oracle
  319.        ______________________________________________________________________
  320.  
  321.  
  322.  
  323.  
  324.  
  325.   2.2.  Installing from CDROM
  326.  
  327.   Unfortunately the Oracle Installer on the SCO disc will not work.  A
  328.   variety of problems can be experienced, from core dumps to hangs.  As
  329.   a result we need to copy the files from the CDROM manually and
  330.   uncompress them:
  331.   (Ensure the CDROM is mounted on the system).
  332.  
  333.   1. Log on as Oracle
  334.  
  335.   2. Change directory to /home/oracle/7.3.3.0.0.
  336.  
  337.   3. Copy all install files from CDROM
  338.  
  339.  
  340.        ______________________________________________________________________
  341.        $ cp -a /mnt/cdrom/* .
  342.        ______________________________________________________________________
  343.  
  344.  
  345.  
  346.  
  347.   4. Un-compress all Oracle files on CDROM.
  348.  
  349.  
  350.        ______________________________________________________________________
  351.        $ find . -name *_ -exec ~/7.3.3.0.0/orainst/oiuncomp {} \;
  352.        ______________________________________________________________________
  353.  
  354.  
  355.  
  356.  
  357.  
  358.   2.3.  Post Installation Tasks
  359.  
  360.   2.3.1.  Tasks for Root
  361.  
  362.   Add the following lines to /etc/profile or add to the .profile for
  363.   each user who is going to use Oracle.
  364.  
  365.  
  366.        ______________________________________________________________________
  367.        # Oracle Specific
  368.        ORACLE_HOME=/home/oracle/7.3.3.0.0
  369.        ORACLE_SID=orcl
  370.        ORACLE_TERM=vt100
  371.        export ORACLE_HOME ORACLE_SID ORACLE_TERM
  372.  
  373.        # Alter path for Oracle
  374.        PATH="$PATH:$ORACLE_HOME/bin"
  375.        ______________________________________________________________________
  376.  
  377.  
  378.  
  379.  
  380.  
  381.   We also need to change the owner and permissions of the Oracle ulimit
  382.   increase utility.
  383.  
  384.  
  385.        ______________________________________________________________________
  386.        $ chown root.root $ORACLE_HOME/bin/osh
  387.        $ chmod u+s $ORACLE_HOME/bin/osh
  388.        ______________________________________________________________________
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   2.3.2.  Tasks for Oracle
  398.  
  399.   Change permissions for the Oracle files to ensure correct operation.
  400.  
  401.  
  402.        ______________________________________________________________________
  403.        $ chmod +x $ORACLE_HOME/bin/*
  404.        $ chmod u+s $ORACLE_HOME/bin/oracle
  405.        ______________________________________________________________________
  406.  
  407.  
  408.  
  409.  
  410.  
  411.   Oracle tools require the messages to be in the
  412.   $ORACLE_HOME/tool_name/mesg directory.  So, move the msb files from
  413.   the msg_ship directories to the mesg directories.
  414.  
  415.  
  416.        ______________________________________________________________________
  417.        $ mv $ORACLE_HOME/plsql/mesg/mesg_ship/* $ORACLE_HOME/plsql/mesg/.
  418.        $ mv $ORACLE_HOME/rdbms/mesg/mesg_ship/* $ORACLE_HOME/rdbms/mesg/.
  419.        $ mv $ORACLE_HOME/svrmgr/mesg/mesg_ship/* $ORACLE_HOME/svrmgr/mesg/.
  420.        ______________________________________________________________________
  421.  
  422.  
  423.  
  424.  
  425.   Create the following directories if they do not exist:
  426.  
  427.  
  428.        ______________________________________________________________________
  429.        $ mkdir $ORACLE_HOME/rdbms/log
  430.        $ mkdir $ORACLE_HOME/rdbms/audit
  431.        $ mkdir $ORACLE_HOME/network/log
  432.        ______________________________________________________________________
  433.  
  434.  
  435.  
  436.  
  437.   2.3.3.  Things you can remove
  438.  
  439.   The following directories can safely be removed:
  440.  
  441.   ╖  $ORACLE_HOME/guicommon2/
  442.  
  443.   ╖  $ORACLE_HOME/ctx/
  444.  
  445.   ╖  $ORACLE_HOME/md/
  446.  
  447.   ╖  $ORACLE_HOME/mlx/
  448.  
  449.   ╖  $ORACLE_HOME/precomp/
  450.  
  451.   ╖  $ORACLE_HOME/slax/
  452.  
  453.   3.  Creating a Database
  454.  
  455.   Now the Oracle server is installed we need to create a database to
  456.   test the installation.
  457.  
  458.   If you are using Oracle 7.2.x or earlier, please read the
  459.   troubleshooting section below.
  460.  
  461.  
  462.  
  463.   3.1.  Create the Initialisation File
  464.  
  465.   Copy the $ORACLE_HOME/dbs/init.ora to $ORACLE_HOME/dbs/initorcl.ora:
  466.  
  467.  
  468.        ______________________________________________________________________
  469.        $ cd $ORACLE_HOME/dbs
  470.        $ cp init.ora initorcl.ora
  471.        ______________________________________________________________________
  472.  
  473.  
  474.  
  475.  
  476.   Modify it by adding the following lines:
  477.  
  478.  
  479.        ______________________________________________________________________
  480.        db_name = orcl
  481.        COMPATIBLE=7.3.3.0.0
  482.        ______________________________________________________________________
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.   3.2.  Creating the Database Install Script
  490.  
  491.   Create a script file called makedb.sql in the $ORACLE_HOME/dbs
  492.   directory:
  493.  
  494.  
  495.        ______________________________________________________________________
  496.        connect internal
  497.        startup nomount
  498.        set echo on
  499.        spool makedb.log
  500.        create database orcl
  501.                maxinstances 1
  502.                maxlogfiles  8
  503.                datafile '$ORACLE_HOME/dbs/orcl_syst_01.dbf' size 40M reuse
  504.                logfile
  505.                        '$ORACLE_HOME/dbs/orcl_redo_01.dbf' size 1M reuse,
  506.                        '$ORACLE_HOME/dbs/orcl_redo_02.dbf' size 1M reuse,
  507.                        '$ORACLE_HOME/dbs/orcl_redo_03.dbf' size 1M reuse;
  508.        @$ORACLE_HOME/rdbms/admin/catalog.sql
  509.        create tablespace rollback
  510.                datafile '$ORACLE_HOME/dbs/orcl_roll_01.dbf' size 8.5M reuse;
  511.        create tablespace temp
  512.                datafile '$ORACLE_HOME/dbs/orcl_temp_01.dbf' size 5M reuse
  513.                temporary;
  514.        create tablespace users
  515.                datafile '$ORACLE_HOME/dbs/orcl_user_01.dbf' size 10M reuse;
  516.        create rollback segment r1 tablespace rollback
  517.                storage ( optimal 5M );
  518.        alter rollback segment r1 online;
  519.        connect system/manager
  520.        @$ORACLE_HOME/rdbms/admin/catdbsyn.sql
  521.        connect internal
  522.        @$ORACLE_HOME/rdbms/admin/catproc.sql
  523.        connect system/manager
  524.        @$ORACLE_HOME/sqlplus/admin/pupbld.sql
  525.        spool off
  526.        exit
  527.        ______________________________________________________________________
  528.  
  529.   3.3.  Running the Database Installation Script
  530.  
  531.   Start svrmgrl and run the script:
  532.  
  533.  
  534.        ______________________________________________________________________
  535.        $ cd $ORACLE_HOME/dbs
  536.        $ svrmgrl
  537.  
  538.        Oracle Server Manager Release 2.3.3.0.0 - Production
  539.  
  540.        Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.
  541.  
  542.        Oracle7 Server Release 7.3.3.0.0 - Production Release
  543.        PL/SQL Release 2.3.3.0.0 - Production
  544.  
  545.        SVRMGR> connect internal
  546.        Connected.
  547.        SVRMGR> startup nomount
  548.        ORACLE instance started.
  549.        Total System Global Area       4313312 bytes
  550.        Fixed Size                       41876 bytes
  551.        Variable Size                  4140364 bytes
  552.        Database Buffers                122880 bytes
  553.        Redo Buffers                      8192 bytes
  554.        SVRMGR> @makedb
  555.        <loads of messages>
  556.        SVRMGR> exit
  557.        Server Manager complete.
  558.        ______________________________________________________________________
  559.  
  560.  
  561.  
  562.  
  563.   3.4.  Starting the Database
  564.  
  565.   Firstly, we need to bring up the database by hand (we will automate
  566.   this later on).  To startup an Oracle database we need to issue the
  567.   startup command when connected internally:
  568.  
  569.  
  570.        ______________________________________________________________________
  571.        $ svrmgrl
  572.  
  573.        Oracle Server Manager Release 2.3.3.0.0 - Production
  574.  
  575.        Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.
  576.  
  577.        Oracle7 Server Release 7.3.3.0.0 - Production Release
  578.        PL/SQL Release 2.3.3.0.0 - Production
  579.  
  580.        SVRMGR> connect internal
  581.        Connected.
  582.        SVRMGR> startup
  583.        ORACLE instance started.
  584.        Total System Global Area       4313316 bytes
  585.        Fixed Size                       41876 bytes
  586.        Variable Size                  4140368 bytes
  587.        Database Buffers                122880 bytes
  588.        Redo Buffers                      8192 bytes
  589.        Database mounted.
  590.        Database opened.
  591.        SVRMGR> exit
  592.        Server Manager complete.
  593.        ______________________________________________________________________
  594.  
  595.   3.5.  Stopping the Database
  596.  
  597.   It is worth mentioning here that restarting a Linux server without
  598.   shutting down the Oracle database first there is a high risk of
  599.   corrupting the database.
  600.  
  601.   So, before we issue the Linux shutdown command it is wise to bring
  602.   down the database:
  603.  
  604.  
  605.        ______________________________________________________________________
  606.        $ svrmgrl
  607.  
  608.        Oracle Server Manager Release 2.3.3.0.0 - Production
  609.  
  610.        Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.
  611.  
  612.        Oracle7 Server Release 7.3.3.0.0 - Production Release
  613.        PL/SQL Release 2.3.3.0.0 - Production
  614.  
  615.        SVRMGR> connect internal
  616.        Connected.
  617.        SVRMGR> shutdown
  618.        Database closed.
  619.        Database dismounted.
  620.        ORACLE instance shut down.
  621.        SVRMGR> exit
  622.        Server Manager complete.
  623.        ______________________________________________________________________
  624.  
  625.  
  626.  
  627.  
  628.   3.6.  Create a Default User
  629.  
  630.   The database, as created, has a two special users which are
  631.   automatically created.  These are:
  632.  
  633.  
  634.        ______________________________________________________________________
  635.        Username                Password
  636.  
  637.        SYSTEM                  MANAGER
  638.        SYS                     change_on_install
  639.        ______________________________________________________________________
  640.  
  641.  
  642.  
  643.  
  644.  
  645.   These users are typically used to hold the standard data dictionary
  646.   information for the database.  It is a good idea to change the
  647.   passwords from the defaults as soon as possible.
  648.  
  649.   This can be achieved by:
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.   ______________________________________________________________________
  662.   sqlplus system/manager
  663.  
  664.   SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998
  665.  
  666.   Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.
  667.  
  668.  
  669.   Connected to:
  670.   Oracle7 Server Release 7.3.3.0.0 - Production Release
  671.  
  672.   SQL> alter user system identified by <newpassword>;
  673.  
  674.   User altered.
  675.  
  676.   SQL> alter user sys identified by <newpassword>;
  677.  
  678.   User altered.
  679.  
  680.   SQL> exit;
  681.   Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
  682.   PL/SQL Release 2.3.3.0.0 - Production
  683.   ______________________________________________________________________
  684.  
  685.  
  686.  
  687.  
  688.  
  689.   Since the user system/manager is similar to using root on a UNIX
  690.   machine, we need to create a user with less ability to cause damage.
  691.   (remember to bring up the database before attempting to create a user)
  692.  
  693.   Connect to SQL*Plus and create a user:
  694.  
  695.  
  696.        ______________________________________________________________________
  697.        $ sqlplus system/manager
  698.  
  699.        SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998
  700.  
  701.        Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.
  702.  
  703.  
  704.        Connected to:
  705.        Oracle7 Server Release 7.3.3.0.0 - Production Release
  706.        PL/SQL Release 2.3.3.0.0 - Production
  707.  
  708.        SQL> create user <user> identified by <psw>
  709.          2  default tablespace users
  710.          3  temporary tablespace temp;
  711.  
  712.        User created.
  713.  
  714.        SQL> grant connect, resource to <user>
  715.  
  716.        Grant succeeded.
  717.  
  718.        SQL> exit
  719.        Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
  720.        PL/SQL Release 2.3.3.0.0 - Production
  721.        ______________________________________________________________________
  722.  
  723.  
  724.  
  725.  
  726.  
  727.   Now that you have a new user on the system you can play with the new
  728.   system.  To login to the Oracle database:
  729.  
  730.  
  731.        ______________________________________________________________________
  732.        $ sqlplus <user>/<password>
  733.        ______________________________________________________________________
  734.  
  735.  
  736.  
  737.  
  738.   If this completes with no error messages then you have a working
  739.   Oracle database.  If you never want to connect to this database from
  740.   anywhere but this server then the job is complete, enjoy!
  741.  
  742.   If, however, like most people you want to configure the networking
  743.   software so that you can connect from other machines, keep on reading.
  744.  
  745.   4.  Configuring SQL*Net on the Server
  746.  
  747.   All of these files configure the Oracle networking software (SQL*Net,
  748.   aka Net8 for Oracle8).  These files should all be created on the
  749.   server in the $ORACLE_HOME/network/admin directory.
  750.  
  751.   4.1.  tnsnames.ora
  752.  
  753.   The TNSNAMES.ORA file identifies services available from the machine.
  754.   On our instance here we will describe all databases that the server
  755.   has mounted.  For each database instance on your server add a section
  756.   like below:
  757.  
  758.  
  759.        ______________________________________________________________________
  760.        orcl.world =
  761.          (DESCRIPTION =
  762.            (ADDRESS_LIST =
  763.                (ADDRESS =
  764.                  (COMMUNITY = tcp.world)
  765.                  (PROTOCOL = TCP)
  766.                  (Host = <INSERT HOST NAME OF SERVER HERE> )
  767.                  (Port = 1521)
  768.                )
  769.                (ADDRESS =
  770.                  (COMMUNITY = tcp.world)
  771.                  (PROTOCOL = TCP)
  772.                  (Host = <INSERT HOST NAME OF SERVER HERE> )
  773.                  (Port = 1526)
  774.                )
  775.            )
  776.            (CONNECT_DATA = (SID = ORCL)
  777.            )
  778.          )
  779.        ______________________________________________________________________
  780.  
  781.  
  782.  
  783.  
  784.   4.2.  listener.ora
  785.  
  786.   The listener.ora file contains the descriptions of the services that
  787.   other machines are allowed to connect to and any configuration that is
  788.   required for the server listener.
  789.  
  790.   It contains sections for the listener name, listener address,
  791.   databases served by the listener and configuration parameters.
  792.  
  793.   Here is an example:
  794.  
  795.  
  796.        ______________________________________________________________________
  797.        # Name of listener and addresses to listen on
  798.        LISTENER =
  799.                ( ADDRESS_LIST =
  800.                        (ADDRESS =
  801.                                (PROTOCOL=tcp)
  802.                                (HOST=<INSERT HOST>)
  803.                                (PORT=1521)
  804.                                (COMMUNITY=UK_SUP_TCPIP)
  805.                        )
  806.                        (ADDRESS =
  807.                                (PROTOCOL=ipc)
  808.                                (KEY=700)
  809.                                (COMMUNITY=UK_SUP_TCPIP)
  810.                        )
  811.                )
  812.  
  813.        # List of services served by this listener
  814.        SID_LIST_LISTENER=
  815.                (SID_LIST=
  816.                        (SID_DESC=
  817.                                (SID_NAME=orcl)
  818.                                (ORACLE_HOME=/home/oracle/7.3.3.0.0)
  819.                        )
  820.                )
  821.  
  822.        # Start of configuration parameters.
  823.        TRACE_LEVEL_LISTENER=OFF
  824.        TRACE_FILE_LISTENER = "listener"
  825.        LOG_FILE_LISTENER = "listener"
  826.        CONNECT_TIMEOUT_LISTENER = 10
  827.        STOP_LISTENER = YES
  828.        DBA_GROUP = dba
  829.        ______________________________________________________________________
  830.  
  831.  
  832.  
  833.  
  834.   4.3.  sqlnet.ora
  835.  
  836.   The sqlnet.ora file contains configuration for the particular node of
  837.   the network.  This is independent of the number of databases or the
  838.   number of listeners.  The most important thing in this file is the
  839.   Dead Connection Timeout configuration variable.
  840.  
  841.   Dead connection timeout checks every incoming process to a database
  842.   instance and ensures that the client end of it is still responding.
  843.   If the client (of whatever type) is not responding then the Oracle
  844.   server shadow process is killed.
  845.  
  846.   This is very useful if you have many clients accessing a database,
  847.   especially during a developmental phase when those clients are more
  848.   likely to be failing to exit cleanly from the Oracle database.
  849.  
  850.   Below is a copy of my own sqlnet.ora file for you to puruse:
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.   ______________________________________________________________________
  860.   TRACE_LEVEL_CLIENT = OFF
  861.   sqlnet.expire_time = 30         # The number of seconds between client checks.
  862.   names.default_domain = world
  863.   name.default_zone = world
  864.   ______________________________________________________________________
  865.  
  866.  
  867.  
  868.  
  869.  
  870.   4.4.  Starting and Stopping the Listeners
  871.  
  872.   Now that the configuration of the listeners and SQL*Net is complete we
  873.   can attempt to connect to the database using the networking software.
  874.   (Before we were using direct links to the database, whereas here we
  875.   are simulating a connection from a remote client machine).
  876.  
  877.   To start the listener using the above configuration:
  878.  
  879.  
  880.        ______________________________________________________________________
  881.        $ lsnrctl
  882.  
  883.        LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:38:25
  884.  
  885.        Copyright (c) Oracle Corporation 1994.  All rights reserved.
  886.  
  887.        Welcome to LSNRCTL, type "help" for information.
  888.  
  889.        LSNRCTL> start
  890.        Starting /home/oracle/7.3.3.0.0/bin/tnslsnr: please wait...
  891.  
  892.        TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
  893.        System parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.ora
  894.        Log messages written to /home/oracle/7.3.3.0.0/network/log/listener.log
  895.        Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))
  896.        Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))
  897.  
  898.        Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
  899.        STATUS of the LISTENER
  900.        ------------------------
  901.        Alias                     LISTENER
  902.        Version                   TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - Production
  903.        Start Date                23-FEB-98 20:38:50
  904.        Uptime                    0 days 0 hr. 0 min. 0 sec
  905.        Trace Level               off
  906.        Security                  OFF
  907.        SNMP                      ON
  908.        Listener Parameter File   /home/oracle/7.3.3.0.0/network/admin/listener.ora
  909.        Listener Log File         /home/oracle/7.3.3.0.0/network/log/listener.log
  910.        Services Summary...
  911.          orcl          has 1 service handler(s)
  912.        The command completed successfully
  913.        LSNRCTL> exit
  914.        ______________________________________________________________________
  915.  
  916.  
  917.  
  918.  
  919.   To stop the listeners:
  920.  
  921.  
  922.  
  923.  
  924.  
  925.   ______________________________________________________________________
  926.   $ lsnrctl
  927.  
  928.   LSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20
  929.  
  930.   Copyright (c) Oracle Corporation 1994.  All rights reserved.
  931.  
  932.   Welcome to LSNRCTL, type "help" for information.
  933.  
  934.   LSNRCTL> stop
  935.   Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))
  936.   The command completed successfully
  937.   LSNRCTL> exit
  938.   ______________________________________________________________________
  939.  
  940.  
  941.  
  942.  
  943.   If you have a DNS setup which doesn't return the IP address for the
  944.   hostname specified then starting and stopping the listener can take
  945.   some time (2-3 mins. dependant on the DNS timeout variable).  If this
  946.   is the case, don't worry, be patient.
  947.  
  948.  
  949.  
  950.   5.  Client Configuration
  951.  
  952.   5.1.  Windows Clients
  953.  
  954.   SQL*Net configuration on the PC using newer versions of the Oracle
  955.   Client Software is very easy.  The best (and easiest) way of achiving
  956.   a fully working client installation is to use the SQL*Net Easy
  957.   Configuration tool supplied by Oracle.
  958.  
  959.   This toolhas a wizard type interface to take you through the
  960.   installation of the tnsnames.ora and sqlnet.ora files.
  961.  
  962.   Select "Add Database Alias" and enter a name for the alias when
  963.   prompted.  This alias is the name you will refer to the database
  964.   instance as, and as such should be the same as the instance name (orcl
  965.   in this case).
  966.  
  967.   Select TCP/IP as the protocol, and when prompted the hostname of the
  968.   machine hosting the database and the instance name of the database.
  969.  
  970.   That's it.
  971.  
  972.   However, if you do not have the SQL*Net Easy Configuration Tool then
  973.   don't worry.  You can simply create the tnsnames.ora and the
  974.   sqlnet.ora files in the $ORACLE_HOME/network/admin directory on the
  975.   client exactly as they are on the server.  This will provide an alias
  976.   the same as on the server (always a good idea anyway).
  977.  
  978.   5.2.  Unix Clients
  979.  
  980.   UNIX clients are not very different that windows clients.  If you have
  981.   the Network Manager from Oracle then user that in the same way as
  982.   above, if not then you can, again, just use the same configuration
  983.   files as the server in the $ORACLE_HOME/network/admin directory.
  984.  
  985.   6.  Automatic Startup and Shutdown
  986.  
  987.   6.1.  dbstart  & dbstop
  988.  
  989.   The automatic startup and shutdown of the Oracle database can be
  990.   achieved (in 7.3.3.0.0) with the files dbstart and dbshut both
  991.   provided by Oracle.  These files rely on the existance of the file
  992.   /etc/oratab to work (although by altering the dbshut and dbstart files
  993.   this can be moved).
  994.  
  995.   The format of the /etc/oratab file is as follows:
  996.  
  997.  
  998.        ______________________________________________________________________
  999.        SID:ORACLE_HOME:AUTO
  1000.        ______________________________________________________________________
  1001.  
  1002.  
  1003.  
  1004.  
  1005.   An example:
  1006.  
  1007.  
  1008.        ______________________________________________________________________
  1009.        orcl:/home/oracle/7.3.3.0.0:Y
  1010.        leaveup:/home/oracle/7.3.2.1.0:N
  1011.        ______________________________________________________________________
  1012.  
  1013.  
  1014.  
  1015.  
  1016.   6.2.  init.d  & rc.d
  1017.  
  1018.   To start and stop the database when the machine comes up and goes down
  1019.   by modifying the startup routines for the Linux machine.  This is
  1020.   quite easy, although I should point out here that this may change
  1021.   depending on which flavour of Linux (slackware, debian, redhat, etc).
  1022.   I will show examples which work for Redhat Linux 5.0.  To modify these
  1023.   for your own flavour of Linux, please see your Linux documentation
  1024.   sets.  (Although it should hold true for any Sys V type UNIX).
  1025.  
  1026.   Firstly, we need to create the script which will run dbshut and
  1027.   dbstart in the /etc/rc.d/init.d directory.  Create the following file
  1028.   as /etc/rc.d/init.d/oracle:
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   ______________________________________________________________________
  1058.   #!/bin/sh
  1059.   #
  1060.   # /etc/rc.d/init.d/oracle
  1061.   # Description: Starts and stops the Oracle database and listeners
  1062.   # See how we were called.
  1063.   case "$1" in
  1064.     start)
  1065.           echo -n "Starting Oracle Databases: "
  1066.           echo "----------------------------------------------------" >> /var/log/oracle
  1067.           date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
  1068.           echo "----------------------------------------------------" >> /var/log/oracle
  1069.           su - oracle -c dbstart >> /var/log/oracle
  1070.           echo "Done."
  1071.           echo -n "Starting Oracle Listeners: "
  1072.           su - oracle -c "lsnrctl start" >> /var/log/oracle
  1073.           echo "Done."
  1074.           echo ""
  1075.           echo "----------------------------------------------------" >> /var/log/oracle
  1076.           date +"! %T %a %D : Finished." >> /var/log/oracle
  1077.           echo "----------------------------------------------------" >> /var/log/oracle
  1078.           touch /var/lock/subsys/oracle
  1079.           ;;
  1080.     stop)
  1081.           echo -n "Shutting Down Oracle Listeners: "
  1082.           echo "----------------------------------------------------" >> /var/log/oracle
  1083.           date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
  1084.           echo "----------------------------------------------------" >> /var/log/oracle
  1085.           su - oracle -c "lsnrctl stop" >> /var/log/oracle
  1086.           echo "Done."
  1087.           rm -f /var/lock/subsys/oracle
  1088.           echo -n "Shutting Down Oracle Databases: "
  1089.           su - oracle -c dbshut >> /var/log/oracle
  1090.           echo "Done."
  1091.           echo ""
  1092.           echo "----------------------------------------------------" >> /var/log/oracle
  1093.           date +"! %T %a %D : Finished." >> /var/log/oracle
  1094.           echo "----------------------------------------------------" >> /var/log/oracle
  1095.           ;;
  1096.     restart)
  1097.           echo -n "Restarting Oracle Databases: "
  1098.           echo "----------------------------------------------------" >> /var/log/oracle
  1099.           date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
  1100.           echo "----------------------------------------------------" >> /var/log/oracle
  1101.           su - oracle -c dbstop >> /var/log/oracle
  1102.           su - oracle -c dbstart >> /var/log/oracle
  1103.           echo "Done."
  1104.           echo -n "Restarting Oracle Listeners: "
  1105.           su - oracle -c "lsnrctl stop" >> /var/log/oracle
  1106.           su - oracle -c "lsnrctl start" >> /var/log/oracle
  1107.           echo "Done."
  1108.           echo ""
  1109.           echo "----------------------------------------------------" >> /var/log/oracle
  1110.           date +"! %T %a %D : Finished." >> /var/log/oracle
  1111.           echo "----------------------------------------------------" >> /var/log/oracle
  1112.           touch /var/lock/subsys/oracle
  1113.           ;;
  1114.     *)
  1115.           echo "Usage: oracle {start|stop|restart}"
  1116.           exit 1
  1117.   esac
  1118.   ______________________________________________________________________
  1119.  
  1120.  
  1121.  
  1122.  
  1123.   It is worth checking that this file actually correctly stops and
  1124.   starts the databases for your system.  Check the log file,
  1125.   /var/log/oracle for error messages.
  1126.  
  1127.   Once this script is working we need to create start and kill symbolic
  1128.   links in the appropriate runlevel directories /etc/rc.d/rcX.d.
  1129.  
  1130.   The following commands will ensure that the databases will come up in
  1131.   runlevels 2,3 and 4:
  1132.  
  1133.  
  1134.        ______________________________________________________________________
  1135.        $ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
  1136.        $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
  1137.        $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
  1138.        ______________________________________________________________________
  1139.  
  1140.  
  1141.  
  1142.  
  1143.   To stop the databases on reboot or restart we need the following
  1144.   links:
  1145.  
  1146.  
  1147.        ______________________________________________________________________
  1148.        $ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # Halting
  1149.        $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # Rebooting
  1150.        ______________________________________________________________________
  1151.  
  1152.  
  1153.  
  1154.  
  1155.   7.  Other Bits
  1156.  
  1157.   7.1.  Intelligent Agent
  1158.  
  1159.   If you have a need for the Oracle Intelligent Agent, I found that you
  1160.   can run it without any configuration changes.  To start the IA try:
  1161.  
  1162.  
  1163.        ______________________________________________________________________
  1164.        $ lsnrctl dbsnmp_start
  1165.        ______________________________________________________________________
  1166.  
  1167.  
  1168.  
  1169.  
  1170.   To stop the IA try:
  1171.  
  1172.  
  1173.        ______________________________________________________________________
  1174.        $ lsnrctl dbsnmp_stop
  1175.        ______________________________________________________________________
  1176.  
  1177.  
  1178.  
  1179.  
  1180.   There do not appear to be any messages indicating a sucessful or
  1181.   otherwise start or stop of the intelligent agent.  However, the IA
  1182.   responded to Enterprise manager on the client side so I can only
  1183.   assume that it is working.
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.   8.  Troubleshooting
  1190.  
  1191.   See below for various troubleshooting hints.
  1192.  
  1193.   8.1.  I cannot create a database when using Oracle 7.2.x.
  1194.  
  1195.   The files shipped by Oracle in the 7.2.x product are incorrect in
  1196.   assuming that you want to setup a parallel server configuration.  The
  1197.   shipped init.ora file has the following line in it:
  1198.  
  1199.  
  1200.        ______________________________________________________________________
  1201.        # define parallel server (multi-instance) parameters
  1202.        ifile = ora_system:initps.ora
  1203.        ______________________________________________________________________
  1204.  
  1205.  
  1206.  
  1207.  
  1208.   To fix the problem simply comment it out:
  1209.  
  1210.  
  1211.        ______________________________________________________________________
  1212.        # define parallel server (multi-instance) parameters
  1213.        #ifile = ora_system:initps.ora
  1214.        ______________________________________________________________________
  1215.  
  1216.  
  1217.  
  1218.  
  1219.   8.2.  I'm getting segmentation faults in svrmgrl  under version
  1220.   7.3.4.x.
  1221.  
  1222.   I've had this problem reported to me by a number of people.  Gerald
  1223.   Weber gerald_weber@master.co.at solved it:
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.   ______________________________________________________________________
  1256.   Hi Paul,
  1257.  
  1258.   first of all thanks for your help,but none of the possible problems you are
  1259.   thinking about were responsible for my problem.
  1260.   The problem is the iBCS-emulator itself.
  1261.   It seems that Oracle performs an sysconf-calls which isn't supported in the
  1262.   current version of iBCS.
  1263.   Look at the trace :
  1264.  
  1265.   <7>[22]615 sysconf(34)
  1266.   <7>iBCS2 unsupported sysconf call 34
  1267.   <7>[22]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>
  1268.   <7>[24]615 sysconf(34)
  1269.   <7>iBCS2 unsupported sysconf call 34
  1270.   <7>[24]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>
  1271.  
  1272.   Solution:  patching the iBCS-source.apply the following diff-pach :
  1273.  
  1274.  
  1275.   --- sysconf.c   Sun Apr 19 19:19:15 1998
  1276.   +++ sysconf.c.ori       Sun Apr 19 19:28:45 1998
  1277.   @@ -60,7 +60,6 @@
  1278.    #define _SC_JOB_CONTROL        5
  1279.    #define _SC_SAVED_IDS  6
  1280.    #define _SC_VERSION    7
  1281.   -#define _SC_HACK_FOR_ORACLE 34
  1282.  
  1283.    #define _SC_PAGESIZE   11
  1284.  
  1285.   @@ -97,11 +96,6 @@
  1286.                   case _SC_SAVED_IDS: {
  1287.                           return (1);
  1288.                   }
  1289.   -
  1290.   -               case _SC_HACK_FOR_ORACLE: {
  1291.   -                 return (1);
  1292.   -               }
  1293.   -
  1294.  
  1295.                   case _SC_PAGESIZE: {
  1296.                     return PAGE_SIZE;
  1297.   ______________________________________________________________________
  1298.  
  1299.  
  1300.  
  1301.  
  1302.   9.  Credits
  1303.  
  1304.   This document was based on a document written by Bob Withers,
  1305.   bwit@pobox.com.  Additional information taken from documents written
  1306.   by Georg Rehfeld, rehfeld@wmd.de and David Mansfield,
  1307.   david@claremont.com.
  1308.  
  1309.   Additional proof reading done by Bob Withers, Mark Watling,
  1310.   mwatling@mjw-ltd.demon.co.uk, Peter Sodhi, petersodhi@unn.unisys.com
  1311.   and Greg Hankins, greg.hankins@cc.gatech.edu.
  1312.  
  1313.   My thanks go to the tremendous support from all the people involved in
  1314.   this document and the research that has gone into it.  Particular
  1315.   thanks to Bob Withers and Mark Watling for the additional comments and
  1316.   help they have provided.
  1317.  
  1318.  
  1319.  
  1320.  
  1321.