FreeBSD handboek
Terug | Hoofdstuk 11. Linux® binaire compatibiliteit | Volgende

# 11.6. Oracle® installeren

Bijgedragen door Marcel Moolenaar.

## 11.6.1. Voorwoord

Hieronder wordt het installatieproces van Oracle® 8.0.5 en Oracle 8.0.5.1 Enterprise Edition voor Linux® op een FreeBSD-machine beschreven.

## 11.6.2. De Linux®-omgeving installeren

Uit de Portscollectie dienen `emulators/linux_base` en `devel/linux_devtools` geïnstalleerd te zijn. Als er problemen zijn met deze ports, kan het zijn dat de pakketten of oudere versies uit de Portscollectie gebruikt moeten worden.

Om de intelligente agent te draaien, moet ook het Red Hat Tcl package geïnstalleerd worden: `tcl-8.0.3-20.i386.rpm`. Het algemene commando om pakketten te installeren met de officiële RPM port (`archivers/rpm`) is:

    # rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm package

De installatie van het `package` hoort foutloos te verlopen.

## 11.6.3. De Oracle-omgeving creëren

Voordat Oracle geïnstalleerd kan worden, moet een juiste omgeving opgezet worden. Dit document beschrijft alleen welke speciale dingen gedaan moeten worden om Oracle voor Linux op FreeBSD te draaien, en niet wat beschreven staat in de Oracle installatiehandleiding.

### 11.6.3.1. Kerneloptimalisatie

Zoals beschreven staat in de Oracle installatiehandleiding moet de maximale grootte van het gedeelde geheugen ingesteld worden. Op FreeBSD moet `SHMMAX` niet gebruikt worden. `SHMMAX` wordt slechts uit `SHMMAXPGS` en `PGSIZE` berekend. Daarom dient `SHMMAXPGS` gedefinieerd te worden. Alle andere opties kunnen gebruikt worden zoals in de handleiding staat beschreven. Bijvoorbeeld:

    options SHMMAXPGS=10000
    options SHMMNI=100
    options SHMSEG=10
    options SEMMNS=200
    options SEMMNI=70
    options SEMMSL=61

Deze opties kunnen naargelang het gebruik van Oracle ingesteld worden.

Ook de volgende opties dienen in het kernelinstellingenbestand te staan:

    options SYSVSHM #SysV gedeeld geheugen
    options SYSVSEM #SysV semaforen
    options SYSVMSG #SysV interprocescommunicatie

### 11.6.3.2. Oracle account

Creeër een `oracle` account op dezelfde manier als elk ander account. Het `oracle` account is alleen bijzonder in het opzicht dat het een Linux shell moet hebben. Dat kan door `/compat/linux/bin/bash` toe te voegen aan `/etc/shells` en de shell voor het `oracle` account in te stellen op `/compat/linux/bin/bash`.

### 11.6.3.3. Omgeving

Naast de normale Oracle variabelen als `ORACLE_HOME` en `ORACLE_SID` moeten de volgende omgevingsvariabelen ingesteld worden:

Variabele | Waarde
--- | ---
`LD_LIBRARY_PATH` | `$ORACLE_HOME/lib`
`CLASSPATH` | `$ORACLE_HOME/jdbc/lib/classes111.zip`
`PATH` | `/compat/linux/bin; /compat/linux/sbin; /compat/linux/usr/bin; /compat/linux/usr/sbin; /bin; /sbin; /usr/bin; /usr/sbin; /usr/local/bin; $ORACLE_HOME/bin`

Het is aan te raden om alle omgevingsvariabelen in `.profile` in te stellen. Een volledig voorbeeld is:

    ORACLE_BASE=/oracle; export ORACLE_BASE
    ORACLE_HOME=/oracle; export ORACLE_HOME
    LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export LD_LIBRARY_PATH
    ORACLE_SID=ORCL; export ORACLE_SID
    ORACLE_TERM=386x; export ORACLE_TERM
    CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
    export CLASSPATH
    PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
    PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
    PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
    export PATH

## 11.6.4. Oracle installeren

Wegens een kleine inconsistentie in de Linux emulator moet de map `.oracle` aangemaakt worden in `/var/tmp` voordat het installatieprogramma wordt gestart. De gebruiker `oracle` moet de eigenaar van deze map zijn. Nu hoort Oracle zonder problemen te installeren. Bij problemen dienen eerst de Oracle distributie en/of de instellingen gecontroleerd te worden! Nadat Oracle is geïnstalleerd, moeten de patches uit de volgende twee secties geïnstalleerd worden.

Een veelvoorkomend probleem is dat de adapter voor het TCP-protocol niet goed is geïnstalleerd. De consequentie daarvan is dat er geen TCP-listeners gestart kunnen worden. De volgende acties helpen om dit probleem op te lossen:

    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk ntcontab.o
    # cd $ORACLE_HOME/lib
    # ar r libnetwork.a ntcontab.o
    # cd $ORACLE_HOME/network/lib
    # make -f ins_network.mk install

Hierna dient `root.sh` nogmaals te draaien!

### 11.6.4.1. `root.sh` patchen

Als Oracle geïnstalleerd wordt, worden sommige acties die als `root` moeten worden uitgevoerd geregistreerd in een shellscript met de naam `root.sh`. Dit script komt in de map `orainst` te staan. De volgende patch dient uitgevoerd te worden op `root.sh` om het de juiste locatie van `chown` te laten gebruiken of als alternatief kan het script onder een originele Linux shell gedraaid worden

    *** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
    --- orainst/root.sh Mon Dec 28 15:58:53 1998
    ***************
    *** 31,37 ****
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/bin/chown
    #
    # Define variables to be used in this script
    --- 31,37 ----
    # This is the default value for CHOWN
    # It will redefined later in this script for those ports
    # which have it conditionally defined in ss_install.h
    ! CHOWN=/usr/sbin/chown
    #
    # Define variables to be used in this script

Als Oracle niet vanaf een CD-ROM wordt geïnstalleerd, kan de broncode van `root.sh` aangepast worden. Die heet `rthd.sh` en staat in de map `orainst` in de broncodestructuur.

### 11.6.4.2. genclntsh patchen

Het script `genclntsh` wordt gebruikt om é´n enkele gedeelde bibliotheek voor de cliënt aan te maken. Het wordt gebruikt tijdens het maken van de demonstraties. Met de volgende patch wordt de definitie van `PATH` uitgecommentarieerd:

    *** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
    --- bin/genclntsh Tue Dec 22 15:36:49 1998
    ***************
    *** 32,38 ****
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst
    --- 32,38 ----
    #
    # Explicit path to ensure that we're using the correct commands
    #PATH=/usr/bin:/usr/ccs/bin export PATH
    ! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
    #
    # each product MUST provide a $PRODUCT/admin/shrept.lst

## 11.6.5. Oracle draaien

Als de instructies worden gevolgd, draait Oracle als op Linux zelf.

Terug | Begin | Volgende
MATLAB® installeren | Omhoog | Gevorderde onderwerpen