Установка Oracle 11g R2 на Debian Lenny

Хотя Oracle официально не поддерживает установку своей СУБД на Debian Linux, установка возможна, и ниже по тексту описан процесс установки Oracle 11g R2 на Debian Lenny.

Начнем с начала, установим зависимости. Для их установки должны быть активированы contrib и non-free репозитории.

root@localhost:~$ apt-get install gcc make binutils libmotif3 lesstif2 rpm elfutils \
libelf1 libelfg0 libelfg0-dev glibc-source libaio1 libaio-dev libstdc++6-4.1-dev sysstat \
numactl libdb4.6 gawk x11-utils

Делаем Debian немного RHEL:

root@localhost:~$ ln -s /usr/bin/awk /bin/awk
root@localhost:~$ ln -s /usr/bin/rpm /bin/rpm
root@localhost:~$ ln -s /usr/bin/basename /bin/basename

Создаем пользователя из-под которого будет работать СУБД:

root@localhost:~$ groupadd dba
root@localhost:~$ useradd -g dba -s /bin/bash -d /home/oracle oracle
root@localhost:~$ mkdir /home/oracle
root@localhost:~$ chown oracle:dba /home/oracle
root@localhost:~$ passwd oracle

Настраиваем параметры ядра (для сервера с 1 Гб ОЗУ), добавим в /etc/sysctl.conf:

vm.swappiness=0
vm.dirty_background_ratio=3
vm.dirty_ratio=15
vm.dirty_expire_centisecs=500
vm.dirty_writeback_centisecs=100
vm.min_free_kbytes=1024

kernel.shmmax=536870912
kernel.shmmni=4096
kernel.shmall=262144

kernel.sem=250 32000 100 142

net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=262144

net.ipv4.tcp_rmem=4096 262144 4194304
net.ipv4.tcp_wmem=4096 262144 262144

net.ipv4.ip_local_port_range=1024 65000
fs.file-max = 6553600

Применим эти параметры:

root@localhost:~$ sysctl -p

Настроим ограничения ОС, добавив в /etc/security/limits.conf следующие строки:

oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536

После этого убеждаемся, что использование pam_limits.so не закомментировано в конфигах:

  • /etc/pam.d/su
  • /etc/pam.d/login
  • /etc/pam.d/sshd

Скачиваем дистрибутив с edelivery.oracle.com, загружаем на сервер и распаковываем.

Далее настраиваем переменные окружения пользователя oracle и устанавливаем СУБД, предварительно переключившись под интересующего нас пользователя:

root@localhost:~$ su - oracle

Создаем .profile пользователя с близким содержанием:

ORACLE_BASE=/u00/app/oracle
ORACLE_HOME=/u00/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=test
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_BASE ORACLE_SID ORACLE_HOME LD_LIBRARY_PATH PATH

Впоследствии, инсталлятору нужно будет указать эти же значения. Так как инсталлятор у данной СУБД графический, а иксы на серверах встречаются редко, экспортируем адрес удаленного X-сервера, например 192.168.0.2:

root@localhost:~$ export DISPLAY=192.168.0.2:0.0

После этого запускаем инсталлятор (из распакованного дистрибутива):

root@localhost:~$ ./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB.   
Actual 4184 MB    Passed
Checking swap space: must be greater than 150 MB.   
Actual 2000 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    
Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2010-10-07_07-58-56PM. 
Please wait ...

Скриншоты этапов установки:

Oracle Install Step 1

Oracle Install Step 2

Oracle Install Step 3

Oracle Install Step 4

Oracle Install Step 5

Oracle Install Step 6

Oracle Install Step 7

Oracle Install Step 8

Oracle Install Step 9

Oracle Install Step 10

Oracle Install Step 11

Если вы дошли до 11-го слайда — СУБД Oracle установлена :)

А теперь делаем так, чтобы наша БД запускалась месте со стартом системы и корректно останавливалась при перезагрузке, для этого создадим скрипт /etc/init.d/oracle:

#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME="/u00/app/oracle/product/11.2.0/dbhome_1"
ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
        echo "Oracle startup: cannot start"
        exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
    start)
        # Oracle listener and instance startup
        echo -n "Starting Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
        touch /var/lock/oracle
        echo "OK"
        ;;
    stop)
        # Oracle listener and instance shutdown
        echo -n "Shutdown Oracle: "
        su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
        su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
        rm -f /var/lock/oracle
        echo "OK"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 start|stop|restart|reload"
        exit 1
esac
exit 0
root@localhost:~$ chmod +x /etc/init.d/oracle
root@localhost:~$ update-rc.d oracle defaults

Редактируем /etc/oratab:

test:/u00/app/oracle/product/11.2.0/dbhome_1:Y

Вот и все, теперь можно заняться настройкой и наполнение БД.

16 комментариев “Установка Oracle 11g R2 на Debian Lenny”

Комментирование закрыто.