Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Successful Oracle install under Linux - My recipe

Successful Oracle install under Linux - My recipe

From: Bob Withers <bwit_at_pobox.com>
Date: 1997/11/15
Message-ID: <MPG.ed781eeaa4926eb9896bb@news.swbell.net>

The following is a procedure I put together for installing the SCO version of
Oracle on Linux. The version of Oracle CD I installed was:

                        SCO Unix
                        Release 7.3.2.1.0
                        Open Server 5.0

The version of Linux I installed it on was:

                        Slackware 3.3
                        Linux kernel 2.0.30

The machine I'm using is:

                        HP Pavilion 7330Z
                        166 Mhz Pentium
                        32MB Ram
                        2.5G Hard drive

This procedure resulted in a fully functional (as far as I can tell) Oracle
installation including all utilities and SQL*Net for IPC and TCP/IP protocols.
I have not been able to develop applications for Oracle because the Linux version of ld does not understand the SCO coff format object files in the Oracle libraries. If anyone could help with this I would be most appreciative.

Please feel free to contact me with comments and/or questions. If you can't
get this procedure to work for you I will do my best to help out but, basically this information is worth exactly what you paid for it, and I can't
promise it will work for you.

Good luck,
Bob Withers
bwit_at_pobox.com

                            Install the Database

  1. Login as root.
  2. Create the oracle Linux user ID in group dba. Specify the ORACLE_HOME directory (/usr/oracle/7.3.2.1.0) as the home directory.
            groupadd dba
            adduser

3) Create a home directory for user oracle. This will also be the value

    assigned to ORACLE_HOME.

            mkdir /usr/oracle
            mkdir /usr/oracle/7.3.2.1.0
            chown -R oracle:dba /usr/oracle

4) Edit /etc/profile and add/modify the following:

        Add:
            export ORACLE_HOME=/usr/oracle/7.3.2.1.0
            export ORACLE_SID=orcl
            export ORACLE_TERM=vt100

        Modify export PATH to add $ORACLE_HOME/bin

5) Login as user oracle.

6) Copy all install CD files to the oracle home directory.

            cp -r /cdrom/* .

7) Uncompress all CD files just copied.

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

8) Mark the oracle shadow process to run setuid 'oracle'

            chmod u+s $ORACLE_HOME/bin/oracle

9) Make a copy of init.ora for the orcl SID and modify it:

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

        Add the following line:

            db_name = orcl

        Find the line "ifile = ora_system:initps.ora" and comment it out
        by placing a # at the beginning.

  1. Create a script file for database creation in the oracle home directory called makedb.sql.
        connect internal
        set echo on
        spool makedb.log
        create database orcl
            maxinstances 1
            maxlogfiles 8
            datafile '/usr/oracle/7.3.2.1.0/dbs/sysorcl.dbf' size 20M 
reuse
            logfile
                '/usr/oracle/7.3.2.1.0/dbs/redo01orcl.dbf' size 4M reuse,
                '/usr/oracle/7.3.2.1.0/dbs/redo02orcl.dbf' size 4M reuse,
                '/usr/oracle/7.3.2.1.0/dbs/redo03orcl.dbf' size 4M reuse;
        @rdbms/admin/catalog.sql
        create rollback segment r0 tablespace system
            storage (initial 16k next 16k minextents 2 maxextents 20);
        alter rollback segment r0 online;
        create tablespace users
            datafile
                '/usr/oracle/7.3.2.1.0/dbs/usersorcl.dbf' size 40M reuse
            default storage
            (
                initial 1M
                next    1M
                pctincrease 0
                minextents  9
                maxextents  50
            );
        create rollback segment r1 tablespace users
            storage (optimal 9M);
        alter rollback segment r1 online;
        connect system/manager
        @rdbms/admin/catdbsyn.sql
        connect internal
        @rdbms/admin.catproc.sql
        connect system/manager
        @sqlplus/admin/pupbld.sql
        spool off

  1. Start svrmgrl and create the database.
            cd
            svrmgrl
            connect internal
            startup nomount
            @makedb
            exit

        A log of all activity will be placed in $ORACLE_HOME/makedb.log

  1. Connect to SQL*Plus and create a user:
            sqlplus system/manager
            create user <user> identified by <psw> default tablespace 
users;
            exit

        Supply your own <user> and <psw>.

  1. Login as root and change the owner and persmissions of the Oracle ulimit increase utility:
            chown root:root $ORACLE_HOME/bin/osh
            chmod u+s $ORACLE_HOME/bin/osh

  1. To save space I have removed the contents of the following directories under $ORACLE_HOME. I'm not sure what they are all for but, so far, I haven't noticed any adverse affects. The disk space recovered by this was about 170M.
                $ORACLE_HOME/guicommon2
                $ORACLE_HOME/md
                $ORACLE_HOME/orainst
                $ORACLE_HOME/ows

  1. The Pro* precompilers (Pro*C, Pro*Ada, Pro*Fortran, and Pro*Cobol can be removed from the bin directory if you don't plan to use them. This results in a saving of about 17M.
                rm $ORACLE_HOME/bin/pro*

  1. The development libraries can be removed if they are not going to be used for a savings of about 30M.
                       Configuring SQL*Net for TCP/IP

  1. Create a listener.ora file in $ORACLE_HOME/network/admin. Following is an example.

LISTENER =
  (ADDRESS_LIST =
(ADDRESS =

          (PROTOCOL=tcp)
          (HOST=rebel)                  #<--  Use YOUR machines HOST NAME
          (PORT=1521)
          (COMMUNITY=UK_SUP_TCPIP)
        )

(ADDRESS=
(PROTOCOL=ipc) (KEY=700) (COMMUNITY=UK_SUP_IPC) )

  )

# This tells the listener of DEDICATED services it can connect you to #
SID_LIST_LISTENER=
  (SID_LIST=
(SID_DESC=

          (SID_NAME=orcl)
          (ORACLE_HOME=/usr/oracle/7.3.2.1.0) #<-- Put YOUR $ORACLE_HOME
        )

  )

# These parameters control TRACE and LOG output - Set them to suit you #
TRACE_LEVEL_LISTENER = OFF #<-- Set to ADMIN for tracing #TRACE_DIRECTORY_LISTENER = /tns_admin/log #<-- Trace output goes here TRACE_FILE_LISTENER = "listener"
#LOG_DIRECTORY_LISTENER = /tns_admin/log #<-- Log output goes here LOG_FILE_LISTENER = "listener"

# Miscellaneous parameters
#
CONNECT_TIMEOUT_LISTENER = 10 #<-- Allow 10 seconds new connects

STOP_LISTENER            = YES
DBA_GROUP                = dba           #<-- Put your DBA group here
# PASSWORDS_LISTENER     = manager       #<-- Uncomment for a password
# -----------------------------------------------------------------------
-

2) Create a tnsnames.ora file in $ORACLE_HOME/network/admin. Following

    is an example:

orcl =

    (

        DESCRIPTION =

(ADDRESS=(PROTOCOL=IPC) (KEY=700))
(CONNECT_DATA=(SID=orcl) (SERVER=DEDICATED)) )

# Sample TCP/IP Aliases
#
orcl =

    (

        DESCRIPTION =

(ADDRESS=(PROTOCOL=TCP) (HOST=rebel) (PORT=1521)) #<-- Put your
HOST
(CONNECT_DATA=(SID=orcl) (SERVER=DEDICATED))
    )

3) Start the Oracle TNS listener:

        lsnrctl start

4) Configure your client machine tnsnames.ora file to have an entry for your

    Linux box. The entry for my Win95 box looks like this:

rebel.world =
  (DESCRIPTION =
    (ADDRESS_LIST =
(ADDRESS =

          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = rebel)
          (Port = 1521)
        )

    )
    (CONNECT_DATA = (SID = ORCL)
    )
  )

5) You can start and stop the Oracle listener with the commands:

            lsnrctl start
            lsnrctl stop

    For some reason the listener takes a few minutes to start, I'm             
    not sure why. You can find out about other lsnrctl commands by     entering:

            lsnrctl help

                     Starting and Stopping the Database

There are utilities to start ans stop the database in the $ORACLE_HOME/bin
directory called dbstart and dbshut. I have not been able to get them to work. These utilities require a file, /etc/oratab, that looks like this:

orcl:/usr/oracle/7.3.2.1.0:Y

As shipped these files don't work properly because they rely on the presence
of sqldba to determine the version of Oracle installed. You can fix them as
follows:

        vi $ORACLE_HOME/bin/dbstart

            Find:  "VERSION="5" and change it to "VERSION="7"
            Find:   "sqldba <<EOF" and change it to "svrmgrl <<EOF"

        vi $ORACLE_HOME/bin/dbshut

            Find:   "sqldba <<EOF" and change it to "svrmgrl <<EOF"

These scripts will not work to start and stop the database. Even with these
scripts working I chose to create my own which I called startora and stopora.

startora:

        svrmgrl <<EOF
        connect internal
        startup
        exit
        EOF
        lsnrctl start

stopora:

        lsnrctl stop
        svrmgrl <<EOF
        connect internal
        shutdown
        exit
        EOF

Don't forget to chmod +x startora stopora.

-- 

Bob Withers              Do or do not, there is no try.
bwit_at_pobox.com                                  Yoda
Received on Sat Nov 15 1997 - 00:00:00 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US