Установка Oracle СУБД на Debian Linux 6 squeeze

Unix > Установка Oracle СУБД на Debian Linux 6 squeeze
08.02.2013 16:36:44


Наиболее часто встречающиеся слова в статье:

[style="font-size] [font-family] [Courier] [lang="EN-US"] [/strong] [LsdException] [Locked="false"] [class="MsoNormal"] [background] [line-height]


Статья:

Хотя Oracle официально не поддерживает установку своей СУБД на Debian Linux, установка возможна, и ниже по тексту описан процесс установки Oracle 11g R2 на Debian 6.
Начнем с начала, установим зависимости. Для их установки должны быть активированы contrib и non-free репозитории. типа строки deb http://ftp.us.debian.org/debian/ squeeze main non-free
добавить в /etc/apt/sources.list

root@localhost:~$ aptitude install

sun-java6-jdk gcc make binutils libmotif3 lesstif2 rpm elfutils \

libelf1 libelfg0 libelfg0-dev eglibc libaio1 libaio-dev libstdc++6-4.4-dev sysstat \

numactl libdb4.6 gawk

Делаем 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 не закомментировано в конфигах:

o /etc/pam.d/su

o /etc/pam.d/login

o /etc/pam.d/sshd

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

Создать папки u00 по иеархии /u00 /u00/app /u00/app/oralnventory /u00/app/oradata /u00/app/oracle/product/ /u00/app/oracle/product/11.2.0/ /u00/app/oracle/product/11.2.0/dbhome_1

Далее настраиваем переменные окружения пользователя 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 ...

Не забываем в самом конце запустить от рута  2  предложенных скрипта, диалог появится  в самом конце

А теперь делаем так, чтобы наша БД запускалась месте со стартом системы и корректно останавливалась при перезагрузке, для этого создадим скрипт /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

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

Конфигуратор если надо: netca

dbca

Запуск oracle instance

sqlplus / as sysdba

и набрать startup

Подробнее:

Запуск базы данных можно осуществить и средствами командной строки SQL*Plus. Для этого надо подключится к SQL*Plus с привилегиями SYSOPER или SYSDBA.

[oracle@test bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Fri Apr 10 12:43:16 2009
Copyright (c) 1982, 2008, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area  845348864 bytes
Fixed Size                  1316656 bytes
Variable Size             473958608 bytes
Database Buffers          364904448 bytes
Redo Buffers                5169152 bytes
Database mounted.
Database opened.
SQL>

Остановка базы данных Oracle
SHUTDOWN NORMAL

Опция SHUTDOWN NORMAL является опцией по умолчанию и используется если не указаны иные опции. При такой остановке базы данных следует знать:

  • Во время выполнения SHUTDOWN NORMAL  не позволены никакие новые соединения пользователей с базой данных
    Oracle будет ждать пока все пользователи завершат свои сеансы подключения к базе данных, и только после этого продолжит процесс остановки
  • Поскольку Oracle ожидает завершения всех пользовательских сеансов, вы можете определить пользователей подключенных к базе данных самостоятельно. Так же можно определить неактивных пользователей, не выполняющих никаких действий с БД в течение продолжительного времени и принудительно завершить их
  • Такой способ остановки называется «чистым», потому что в случае такой остановки не потребуется восстановление и все проходит в штатном режиме.
SHUTDOWN TRANSACTIONAL

Транзакционный способ производит остановку базы данных в несколько более агрессивном режиме, чем NORMAL. Характеристики транзакционного способа остановки:

  • Во время выполнения SHUTDOWN TRANSACTIONAL  не позволены никакие новые соединения пользователей с базой данных
  • С момента запуска SHUTDOWN TRANSACTIONAL не позволены никакие транзакции
  • Oracle ждет завершения текущих транзакций, существующие подключения к базе данных разрываются

Такой способ остановки позволяет клиентам перед отключением завершить текущие транзакции, таким образом не потерять их и не потерять проделанную работу. Этот тип остановки также называется чистым, поскольку все проходит в штатном режиме.

SHUTDOWN IMMEDIATE

Является следующим по агрессивности шагом. Опция SHUTDOWN IMMEDIATE характеризуется следующим:

  • Во время выполнения SHUTDOWN IMMEDIATE не позволены новые подключения к базе данных
  • Все незавершенные транзакции откатываются. Т.е. если транзакция пользователя в процессе исполнения, то он теряет проделанную работу (в рамках транзакции)
  • Oracle не ожидает завершения транзакций, откатывает их, и разрывает существующие подключения к базе данных

Этот тип остановки удобен когда требуется оставить Oracle без присмотра и требуется быть уверенным, что база данных остановится и пользователи будут отключены. Остановку таким способом можно считать чистой, после такой остановки не требуется восстановления базы данных.

SHUTDOWN ABORT

SHUTDOWN ABORT самый агрессивный способ остановки базы данных, характеризуется следующим:

  • Во время исполнения SHUTDOWN ABORT новые подключения не позволены
  • Прекращается исполнение любых SQL команд, независимо от состояния
  • Незавершенные транзакции не откатываются
  • Oracle разрывает все существующие подключения немедленно, как выпущена команда SHUTDOWN ABORT

Старайтесь не использовать SHUTDOWN ABORT. Используйте только в тех случаях, когда другие опции остановки не удались, или ваш опыт позволяет использовать эту опцию в данной ситуации. SHUTDOWN ABORT не является чистой остановкой базы данных, и после ее запуска может потребоваться восстановление.

Остановка базы данных средствами SQL*plus

Для остановки базы данных подключаемся к sqlplus в командной строке пользователем SYS или другим имеющим привилегии на запуск и остановку базы данных, и выполняем:

[oracle@test bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Fri Apr 10 12:45:05 2009
Copyright (c) 1982, 2008, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>