Installing Oracle 11g Release 2 on Fedora 13

Embed Size (px)

Citation preview

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    1/10

    Installing Oracle 11g Release 2 on Fedora 13

    Installing Oracle 11g Release 2 on

    Fedora 13Finnbarr P. Murphy

    ([email protected])

    Oracle Database 11g Release 2 is not certified to run on Fedora 13 (Goddard) but I wanted to use

    it to debug a problem with a particular application which used this database. I checked on the

    Internet for details about how to install this version of the Oracle database on Fedora 13 but did

    not come across comprehensive instructions. I therefore decided to write this post as a guide for

    others who may also wish to install this database on Fedora 13.

    First of all you need to add a number of kernel parameters to /etc/sysctl.confif they do not already

    exist in this file or have values less then what is shown here. These are minimum required values

    by the way; they can be higher.

    fs.aio-max-nr = 1048576

    fs.file-max = 6815744

    kernel.shmall = 2097152

    kernel.shmmax = 536870912

    kernel.shmmni = 4096

    # semaphores: semmsl, semmns, semopm, semmni

    kernel.sem = 250 32000 100 128

    net.ipv4.ip_local_port_range = 9000 65500

    net.core.rmem_default=262144

    net.core.rmem_max=4194304

    net.core.wmem_default=262144

    net.core.wmem_max=1048586

    Compared to Sybase ASE which only requires kernel.shmmax, an Oracle database requires

    significantly more kernel parameter tweeking.

    The current value of a kernel parameter can be displayed using the following command:

    # /sbin/sysctl -a | grep

    If you do not want to reboot your system, just execute the following command to update the kernel

    with the new parameters:

    # /sbin/sysctl -p

    You need to install a number of software packages on your system if the packages are not already

    installed. If you have installed the Development Tools package group, the majority of the

    necessary packages will already be installed. Install the Development Tools package group and the

    following packages if not already installed:

    binutilsq

    libaio, libaio-develq

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 1/10

    http://blog.fpmurphy.com/2010/08/installing-oracle-11g-release-2-on-fedora-13.htmlhttp://blog.fpmurphy.com/2010/08/installing-oracle-11g-release-2-on-fedora-13.htmlhttp://www.oracle.com/index.htmlhttp://fedoraproject.org/http://blog.fpmurphy.com/2010/07/installing-sybase-ase-15-5-on-fedora-13.htmlhttp://blog.fpmurphy.com/2010/07/installing-sybase-ase-15-5-on-fedora-13.htmlhttp://fedoraproject.org/http://www.oracle.com/index.htmlhttp://blog.fpmurphy.com/2010/08/installing-oracle-11g-release-2-on-fedora-13.htmlhttp://blog.fpmurphy.com/2010/08/installing-oracle-11g-release-2-on-fedora-13.html
  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    2/10

    Installing Oracle 11g Release 2 on Fedora 13

    kshq

    sysstatq

    unixODBC, unixODBC-develq

    compat-libstdc++-33q

    Next, you need to modify PAM (Plugable Authentication Module) to increase session limits for the

    oracle user which we will create later on. Add the following line to /etc/pam.d/login if it does not

    already exist:

    session required pam_limits.so

    and add the following lines to /etc/security/limits.conf:

    oracle soft nproc 2047

    oracle hard nproc 16384

    oracle soft nofile 1024

    oracle hard nofile 65536

    Note that this file may not currently exist on your system. You may have to create it.

    Now create a number of new users and groups as follows:

    groupadd oinstall

    groupadd dba

    groupadd oper

    groupadd asmadmin

    useradd -g oinstall -G dba,oper,asmadmin oracle

    and set a password for the new oracle user.

    You must disable Secure Linux (SELINUX) while installing the database. Edit /etc/selinux/config as

    follows:

    SELINUX=disabled

    and execute setenforce off.

    Edit the /etc/redhat-release file replacing the current release information Fedora release 13

    (Goodwin) with the following:

    redhat release 5

    You must create the directories in which the Oracle database software will be installed. In our

    example, the directory is /app/oracle and the SID is dbhome_1.

    mkdir -p /app/oracle/product/11.2.0/dbhome_1

    chown -R oracle:oinstall /app

    chmod -R 775 /app

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 2/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    3/10

    Installing Oracle 11g Release 2 on Fedora 13

    The remaining steps require that you are logged in as oracle. As user oracle, download Oracle

    Database 11g R2 from Oracle and place the two files you downloaded into the same subdirectory.

    I placed them in ~oracle/tmp but you are free to choose any subdirectory. Then unzip both files.

    # unzip linux.x64_11gR2_database_1of2.zip

    # unzip linux.x64_11gR2_database_2of2.zip

    # ls -d */database/

    #

    A single subdirectory called database is created. This subdirectory contains the unzipped files.

    Assuming that the user oracle is using the bash shell, add the following lines to the oracle users

    .bash_profile file, changing ORACLE_HOSTNAME, ORACLE_HOME, etc. as required to suit your

    particular requirements:

    # Oracle Settings

    TMP=/tmp; export TMP

    TMPDIR=$TMP; export TMPDIR

    ORACLE_HOSTNAME=ultra.xfpmurphy.com; export ORACLE_HOSTNAME

    ORACLE_UNQNAME=dbhome_1; export ORACLE_UNQNAME

    ORACLE_BASE=/app/oracle; export ORACLE_BASE

    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME

    ORACLE_SID=dbhome_1; export ORACLE_SID

    ORACLE_TERM=xterm; export ORACLE_TERM

    PATH=/usr/sbin:$PATH; export PATH

    PATH=$ORACLE_HOME/bin:$PATH; export PATH

    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

    CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

    if [ $USER = "oracle" ]; then

    if [ $SHELL = "/bin/ksh" ]; then

    ulimit -p 16384

    ulimit -n 65536

    else

    ulimit -u 16384 -n 65536

    fi

    fi

    If you are using a different shell, you will need to set up these enviromental variables and limits

    using the appropriate shell syntax and shell initialization file. You may also need to set the

    NLS_LANG environmental variable to match your country, language and desired character set, e.g.germany_germany.we8iso8859p1 .

    Oracle databases are installed using the Oracle Universal Installer (OUI) which is GUI-based and

    uses the X Window system. There is no equivalent command line installer. You may need to set the

    your DISPLAY environmental variable and use the xhost utility to configure server access. Start

    OUI by issuing the runInstallercommand in the ~oracle/tmp/database directory.

    If OUI cannot determine your IP address because it is not in /etc/hosts then you will get the

    following error:

    [INS-06101] IP address of localhost could not be determined

    If you see an error message similar to one of the following: Failed to connect to server,

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 3/10

    http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmlhttp://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    4/10

    Installing Oracle 11g Release 2 on Fedora 13

    Connection refused by server or Cant open display, then you have a problem with X Windows,

    either with permissions or the DISPLAY variable. I am going to assume you know how to fix such

    problems.

    After answering a few basic questions, you should see the following Typical Install Configuration

    screen:

    Check the settings carefully before proceeding further.

    Next OUI checks that the installed software development and runtime packages are correct:

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 4/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    5/10

    Installing Oracle 11g Release 2 on Fedora 13

    Fedora 13 will fail all these checks. Just tick the check box Ignore All on the top right hand to

    ignore these errors. So long as you have the latest version of each of these packages installed, all

    will be fine. Note that you do not need to install pdksh (Public Domain Korn Shell) if you have ksh

    installed.

    During the installation, OUI will popup a dialog window advising you that an error has occurred

    with ins_emagent.mk. See below:

    This error is due to a change in the GCC linker in Fedora 13. The announcement is here. The fix is

    to edi t $ORACLE_HOME/sysman/ l ib / ins_emagent .mk, search for the l ine

    $(MK_EMAGENT_NMECTL) and replace the line with $(MK_EMAGENT_NMECTL) -lnnz11 as

    shown above.

    After saving the changed file, select the Retryoption, and the install should successfully continue.

    Eventually you should see the Database Configuration Assistant screen as shown below:

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 5/10

    http://docs.fedoraproject.org/en-US/Fedora/13/html/Release_Notes/sect-Release_Notes-The_GCC_Compiler_Collection.htmlhttp://docs.fedoraproject.org/en-US/Fedora/13/html/Release_Notes/sect-Release_Notes-The_GCC_Compiler_Collection.html
  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    6/10

    Installing Oracle 11g Release 2 on Fedora 13

    Do not ignore the Password Management button; press it and change the passwords for SYS and

    SYSTEM.

    At this stage I suggest you reboot your system and perform the following basic smoketest of the

    installed database software.

    $ iduid=502(oracle) gid=501(oinstall) groups=501(oinstall),502(dba),503(oper),504(asmadmin)

    $ cd $ORACLE_HOME

    $ lsnrctl start

    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-AUG-2010 20:47:56

    Copyright (c) 1991, 2009, Oracle. All rights reserved.

    Starting /app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

    TNSLSNR for Linux: Version 11.2.0.1.0 - Production

    System parameter file is /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

    Log messages written to /app/oracle/diag/tnslsnr/ultra/listener/alert/log.xml

    Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ultra.xxxxxxxxxx.com)(PORT=1521)))

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

    STATUS of the LISTENER

    ------------------------

    Alias LISTENER

    Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

    Start Date 06-AUG-2010 20:47:58

    Uptime 0 days 0 hr. 0 min. 0 sec

    Trace Level off

    Security ON: Local OS Authentication

    SNMP OFF

    Listener Parameter File /app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

    Listener Log File /app/oracle/diag/tnslsnr/ultra/listener/alert/log.xmlListening Endpoints Summary...

    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ultra.xxxxxxxxxx.com)(PORT=1521)))

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 6/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    7/10

    Installing Oracle 11g Release 2 on Fedora 13

    The listener supports no services

    The command completed successfully

    $

    $ emctl start dbconsole

    Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0

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

    https://ultra.xxxxxxxxxxx.com:1158/em/console/aboutApplication

    Starting Oracle Enterprise Manager 11g Database Control ...... started.

    ------------------------------------------------------------------

    Logs are generated in directory /app/oracle/product/11.2.0/dbhome_1/ultra.xxxxxxxxxx.com_o

    rcl/sysman/log

    $

    $ sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on Fri Aug 6 20:50:12 2010

    Copyright (c) 1982, 2009, Oracle. All rights reserved.

    Connected to an idle instance.

    SQL> startup

    ORACLE instance started.

    Total System Global Area 839282688 bytes

    Fixed Size 2217992 bytes

    Variable Size 524290040 bytes

    Database Buffers 306184192 bytes

    Redo Buffers 6590464 bytes

    Database mounted.

    Database opened.

    SQL> exit

    Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc

    tionWith the Partitioning, OLAP, Data Mining and Real Application Testing options

    $

    If you have got this far with your installation of Oracle 11g, all is well. The core Oracle 11g

    database software is installed and working. You may have some tweaking to do for your particular

    requirements but that is outside the scope of this post. Note the listener supports no services

    message; we will address this shortly.

    First, as root, we need to fix up a couple of files. Edit the /etc/oratab file setting the restart flag for

    each instance to Y:

    DBHOME_1:/app/oracle/product/11.2.0/dbhome_1:Y

    Edit the /etc/redhat-release file to restore the original release information:

    Fedora release 13 (Goodwin)

    At this stage you should be able to invoke the Oracle sqldeveloperGUI by invoking

    $ORACLE_HOME/sqldeveloper/sqldeveloper/bin/sqldeveloper. Once you have configured a valid

    connection, you should see a screen similar to this:

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 7/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    8/10

    Installing Oracle 11g Release 2 on Fedora 13

    If you configure listener.ora you can also access the Oracle Enterprise Console via the Web as

    shown here:

    Here is what is in my listener.ora:

    $ cat $ORACLE_HOME/admin/listener.ora

    LISTENER =(DESCRIPTION_LIST =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = ultra.xfpmurphy.com)(PORT = 1521))

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 8/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    9/10

    Installing Oracle 11g Release 2 on Fedora 13

    )

    )

    SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

    (GLOBAL_DBNAME = DBHOME)

    (ORACLE_HOME = /app/oracle/product/11.2.0/dbhome_1)

    (SID_NAME = dbhome_1))

    )

    ADR_BASE_LISTENER = /app/oracle

    $

    You will obviously have to use different values for HOSTand possibly SID_NAME, ORACLE_HOME

    and GLOBAL_DBNAME.

    To automatically start and shop the Oracle database during system startup and shutdown you

    need to place an appropriate script in the /etc/rc.d/init.d directory and symbolically link it to the

    appropriate rc directories. Here is a script to start or stop the Oracle database using dbinit:

    #!/bin/bash

    #

    # init file for starting and stopping Oracle 11g database using dbstart/dbstop

    #

    # chkconfig: 35 80 30

    # description: Oracle database startup and shutdown script

    #

    . /etc/rc.d/init.d/functions

    ORACLE_BASE=/app/oracle

    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

    ORACLE_SID=dbhome_1

    case "$1" in

    start)

    echo -n $"Starting Oracle DB:"

    su - oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

    echo "OK"

    ;;

    stop)

    echo -n $"Stopping Oracle DB:"

    su - oracle -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"

    echo "OK"

    ;;

    *)

    echo $"Usage: $0 {start|stop}"

    esac

    and here is an alternative script to start and stop the Oracle database using Oracle Enterprise

    Manager Database Control:

    #!/bin/bash

    #

    # init file for starting and stopping Oracle 11g database using emctl

    #

    # chkconfig: 35 80 30

    # description: Oracle database startup and shutdown script using Enterprise manager consol

    e#

    . /etc/rc.d/init.d/functions

    ORACLE_BASE=/app/oracle

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 9/10

  • 8/7/2019 Installing Oracle 11g Release 2 on Fedora 13

    10/10

    Installing Oracle 11g Release 2 on Fedora 13

    ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

    ORACLE_SID=dbhome_1

    case "$1" in

    start)

    echo -n $"Starting Oracle Enterprise Manager Database Console:"

    su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"

    echo "OK"

    ;;

    stop)echo -n $"Stopping Oracle Enterprise Manager Database Console:"

    su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"

    echo "OK"

    ;;

    *)

    echo $"Usage: $0 {start|stop}"

    esac

    I assume that you know how to install a new init script so I am not going to describe the process

    here.

    Please let me know if I left out anything important that you feel would of been of help to you ininstalling Oracle 11g on Fedora 13 and I will add it to this post.

    03-02-2011 Copyright 2004-2011 Finnbarr P. Murphy. All rights reserved. 10/10