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

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

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

 [email protected]:~$ 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:

 [email protected]:~$ ln -s /usr/bin/awk /bin/awk [email protected]:~$ ln -s /usr/bin/rpm /bin/rpm [email protected]:~$ ln -s /usr/bin/basename /bin/basename 

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

 [email protected]:~$ groupadd dba [email protected]:~$ useradd -g dba -s /bin/bash -d /home/oracle oracle [email protected]:~$ mkdir /home/oracle [email protected]:~$ chown oracle:dba /home/oracle [email protected]:~$ 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 

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

 [email protected]:~$ 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 и устанавливаем СУБД, предварительно переключившись под интересующего нас пользователя:

 [email protected]:~$ 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:

 [email protected]:~$ export DISPLAY=192.168.0.2:0.0 

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

 [email protected]:~$ ./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 
 [email protected]:~$ chmod +x /etc/init.d/oracle [email protected]:~$ update-rc.d oracle defaults 

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

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

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