Установка СУБД ORACLE 11gR2 на отдельно стоящий сервер под управлением ОС ORACLE Linux 6

В данной статье описана процедура установки СУБД ORACLE 11gR2 на stand-alone сервер под управлением ОС ORACLE Linux 6.


Предисловие


Если Вы это читаете, то я рекомендую Вам прекратить это. Обратите внимание на другие православные СУБД, такие как PostgreSQL и др. Так же можно рассмотреть дзеновские СУБД, относящиеся к NoSQL. Единственным оправданием для дальнейщего чтения может являться прижатый к виску пистолет (или что-нибудь в этом духе).
Так же считается, что используемый Вами продукт подкреплен соответствующей лицензией. Организация, в которой идёт эта установка, является счастливым обладателем Oracle Standard Edition лицензии, посему будет рассматриваться установка этой версии. Но разница при установке будет только на заключительных этапах.
Данная инструкция писалась в процессе установки СУБД для возможности повторить ее сотрудником с любой квалификацией. В связи с чем я постарался расписать все максимально подробно. Некоторые вещи могут показаться очевидными, что ни в коей мере не ставит под сомнение квалификацию хабражителей.

Предварительные требования к оператору


Понимать написанное здесь. Желательно быть зарегистрированным в Red Hat для полного доступа к документации, ибо ссылок здесь на нее не будет, так как доступна она тольк для подписчиков. Для примера: здесь для подписчиков доступен pdf с инструкцией по установке ORACLE на RHEL6.

Установка ОС ORACLE Linux 6


Устанавливаем ОС Linux ORACLE 6 с дистрибутива, скаченного с e-delivery (Можно использовать любой другой клон RHEL5, для других клонов нужно будет ручками доустановить oracle-rdbms-server-11gR2-preinstall.x86_64 oracleasm-support.x86_64, только для клонов RHEL5). При установке обратить внимание на следующее:
  1. Необходимо, чтобы сервер СУБД ORACLE имел FQDN. Для этого вносим соответствующую запись в свой сервер доменных имен. В нашем случае это будет oracleserver.kontora.ru.
  2. Язык установки для удобства выбираем русский, раскладку клавиатуры американскую.
  3. Разбитие жестких дисков (рекомендуется не использовать логические тома для дисков ASM, кроме всего прочего это дает бонусок в виде возможности использования правил udev вместо библиотеки ASMLib, что позволит оставить SELINUX включенным, но в виду ограниченности ресурсов я их использую):
    1. Раздел /boot, большинство дистрибутивов рекомендуют для него 512MB.
    2. Оставшееся дисковое пространство под PVM (физический раздел для создания группы томов).
    3. Создадим группу томов и присвоим ей имя “vg_oracleserver”. Создадим в ней следующие разделы:
      1. swap — для 64-битных систем равно ОЗУ при ОЗУ =< 32 ГБ, или равно 32 ГБ при ОЗУ большого размера (ссылка) с вероятностью близкой к 1 установка идет на данном типе оборудования. [на просторах интернета встречается мнение, что 250 рублей спасут отца Русской Демократии хватит 16 ГБ]
      2. temp — минимум 1 ГБ (можно больше).
      3. 640 КБ хватит всем 32 ГБ должно хватить для корневой директории (саму базу бдем держать в ASM), можно создать, разные блочные устройства для каждой директории, но они не будут отличаться по параметрам монтирования.
      4. Разделы для ASM будут созданы в процессе установки.

    4. Тип установки ‘Basic server’, выбираем настроить список пакетов сейчас:
      1. в базовых пакетах добавляем группу пакетов совместимости с прежними выпусками линукс и группу пакетов совеместимости с юниксами;
      2. в группе серверов выбираем пакеты администрирования и отмечаем пакеты, начинающиеся на oracle* (далее считается, что эти пакеты у Вас установлены, и соответствено связанные с ними параметры уже имеются, при установке на RHEL6 эти пакеты нужно будет доустановить вручную).



После перезагрузки подключиться к серверу через защищенную оболчку
$ ssh root@oracleserver

После установки добавить репозиторий EPEL (опционально, я его использую только из-за bash-completion). Обновить систему (обязательно)!!!
# yum install download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum -y upgrade

Пакет oracle-rdbms-server-11gR2-preinstall добавляет системных пользователей и настраивает параметры системы для запуска СУБД ORACLE, но НАМ этого не достаточно, поэтому делаем следующее:
  1. создадим группы пользователей
    # groupadd -g 54321 oinstall (уже есть!!!)
    # groupadd -g 54322 dba (уже есть!!!)
    # groupadd -g 54324 asmadmin
    # groupadd -g 54326 asmdba
    # groupadd -g 54327 asmoper

  2. создадим пользователей и определим их группы
    # usermod -G asmdba,dba oracle
    # useradd -u 54322 -g oinstall -G asmadmin,asmdba,asmoper,dba grid

  3. создадим пароли
    # passwd oracle
    # passwd grid

  4. зададим правила SELINUX
    # vim /etc/selinux/config
    заменим SELINUX=enabled
    на SELINUX=disabled
    Данное действие ужасно, но оно требуется официальной документацией ORACLE. Судя по документации RedHat, этот пункт можно обойти, если использовать udev вместо ASMlib (при наличии железа и времени проверю, но пока что работаем по документации ORACLE).

  5. зададим правла сетевого экрана
    # vim /etc/sysconfig/iptables
    закоментируем запрещающие строки и перезапустим
    # service iptables restart
    Опять же ужасное действие, и опять же требуемое документацией. Хотя после установки можно поэкспериментировать и добиться устойчивой работы.

  6. эти пакеты должны быть установлены (версии могут отличаться!!!):
    binutils-2.20.51.0.2-5.11.el6 (x86_64)
    compat-libcap1-1.10-1 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6 (x86_64)
    compat-libstdc++-33-3.2.3-69.el6.i686
    gcc-4.4.4-13.el6 (x86_64)
    gcc-c++-4.4.4-13.el6 (x86_64)
    glibc-2.12-1.7.el6 (i686)
    glibc-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6 (x86_64)
    glibc-devel-2.12-1.7.el6.i686
    ksh
    libgcc-4.4.4-13.el6 (i686)
    libgcc-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6 (x86_64)
    libstdc++-4.4.4-13.el6.i686
    libstdc++-devel-4.4.4-13.el6 (x86_64)
    libstdc++-devel-4.4.4-13.el6.i686
    libaio-0.3.107-10.el6 (x86_64)
    libaio-0.3.107-10.el6.i686
    libaio-devel-0.3.107-10.el6 (x86_64)
    libaio-devel-0.3.107-10.el6.i686
    make-3.81-19.el6
    sysstat-9.0.4-11.el6 (x86_64)

  7. устанавливаем пакеты unixODBC и unixODBC-devel обоих разрядностей

  8. устанавливаем и запускаем демона настройки профиля ОС:
    # yum install tuned
    # chkconfig tuned on
    # tuned-adm profile enterprise-storage

    Взято из файла, полученного по подписке Red Hat.

  9. настраиваем 'huge pages' для ORACLE

    1. находим размер одной страницы
      # grep Hugepagesize /proc/meminfo
      в моем случае это было 2048kB

    2. т.е. для создания набора страниц размером 1GB нам понадобится 512 страниц:
      # echo '# Number of hugepages to use' >> /etc/sysctl.conf
      # echo vm.nr_hugepages=512 >> /etc/sysctl.conf
      # echo >> /etc/sysctl.conf
      # sysctl -p

    3. так как статичные 'huge pages' зафиксированы в памяти и не могут быть перенесены в swap пользователям oracle и grid нужны права на использование этой памяти (далее для случая описанного выше в пункте 2):
      # echo '# hugepages access by oracle user' >> /etc/security/limits.conf
      # echo 'oracle hard memlock 1048576' >> /etc/security/limits.conf
      # echo 'oracle soft memlock 1048576' >> /etc/security/limits.conf
      # echo >> /etc/security/limits.conf
      # echo '# huge pages access by grid user.' >> /etc/security/limits.conf
      # echo 'grid hard memlock 1048576' >> /etc/security/limits.conf
      # echo 'grid soft memlock 1048576' >> /etc/security/limits.conf
      # echo >> /etc/security/limits.conf


  10. следующие параметры рекомендованы для контроля частоты обращений к памяти:
    # echo '# These parameters a recommended to control the rate at which virtual memory is reclaimed' >> /etc/sysctl.conf
    # echo vm.swappiness=0 >> /etc/sysctl.conf
    # echo vm.dirty_background_ratio=3 >> /etc/sysctl.conf
    # echo vm.dirty_ratio=15 >> /etc/sysctl.conf
    # echo vm.dirty_expire_centisecs=500 >> /etc/sysctl.conf
    # echo vm.dirty_writeback_centisecs=100 >> /etc/sysctl.conf
    # echo >> /etc/sysctl.conf
    # sysctl -p

  11. создадим ограничения оболочки для пользователя grid аналогично ограничениям оболочки пользователя oracle, созданного выбранными при установке пакетами
    # echo '# grid setting for nofile soft limit is 1024' >> /etc/security/limits.conf
    # echo 'grid soft nofile 1024' >> /etc/security/limits.conf
    # echo '# grid setting for nofile hard limit is 65536' >> /etc/security/limits.conf
    # echo 'grid hard nofile 65536' >> /etc/security/limits.conf
    # echo '# grid setting for nproc soft limit is 2047' >> /etc/security/limits.conf
    # echo 'grid soft nproc 2047' >> /etc/security/limits.conf
    # echo '# grid setting for nproc hard limit is 16384' >> /etc/security/limits.conf
    # echo 'grid hard nproc 16384' >> /etc/security/limits.conf
    # echo '# grid setting for stack soft limit is 10240KB' >> /etc/security/limits.conf
    # echo 'grid soft stack 10240' >> /etc/security/limits.conf
    # echo '# grid setting for stack hard limit is 32768KB' >> /etc/security/limits.conf
    # echo 'grid hard stack 32768' >> /etc/security/limits.conf
    # echo >> /etc/security/limits.conf

  12. оптимизируем параметры ядра для сети
    # echo '# Additional network parameters' >> /etc/sysctl.conf
    # echo 'net.ipv4.tcp_wmem = 262144 262144 262144' >> /etc/sysctl.conf
    # echo 'net.ipv4.tcp_rmem = 4194304 4194304 4194304' >> /etc/sysctl.conf
    # echo >> /etc/sysctl.conf
    # sysctl -p

  13. добавим в файл /etc/pam.d/login строку
    # echo 'session required pam_limits.so' >> /etc/pam.d/login

  14. создадим скрипт определяющий параметры оболочки
    # touch /etc/profile.d/oraclegrid.sh
    # echo '#!/bin/bash' > /etc/profile.d/oraclegrid.sh
    # echo 'if [ $USER = «oracle» ] || [ $USER = «grid» ]; then' >> /etc/profile.d/oraclegrid.sh
    # echo 'if [ $SHELL = "/bin/ksh" ]; then' >> /etc/profile.d/oraclegrid.sh
    # echo 'ulimit -p 16384' >> /etc/profile.d/oraclegrid.sh
    # echo 'ulimit -n 65536' >> /etc/profile.d/oraclegrid.sh
    # echo 'else' >> /etc/profile.d/oraclegrid.sh
    # echo 'ulimit -u 16384 -n 65536' >> /etc/profile.d/oraclegrid.sh
    # echo 'fi' >> /etc/profile.d/oraclegrid.sh
    # echo 'umask 022' >> /etc/profile.d/oraclegrid.sh
    # echo 'fi' >> /etc/profile.d/oraclegrid.sh
    # chmod +x /etc/profile.d/oraclegrid.sh


Создадим папки:

  1. Oracle Inventory
    # mkdir -p /u01/app/oraInventory
    # chown -R grid:oinstall /u01/app/oraInventory
    # chmod -R 775 /u01/app/oraInventory

  2. Grid Infrastructure Home
    # mkdir -p /u01/11.2.0/grid
    # chown -R grid:oinstall /u01/11.2.0/grid
    # chmod -R 775 /u01/11.2.0/grid

  3. Oracle Base Directory
    # mkdir -p /u01/app/oracle
    # mkdir /u01/app/oracle/cfgtoollogs
    # chown -R oracle:oinstall /u01/app/oracle
    # chmod -R 775 /u01/app/oracle

  4. Oracle RDBMS Home
    # mkdir -p /u01/app/oracle/product/11.2.0/db_1
    # chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
    # chmod -R 775 /u01/app/oracle/product/11.2.0/db_1


Продублируем FQDN в файле /etc/hosts

С общими параметрами системами все.

Настройка GRID


Установка Automatic Storage Management Library (ASM Lib) Driver.
Пакет oracleasm устанавливать не нужно, так как он включени в ядро Oracle Linux. Пакет oracleasm-support мы установили в процессе установки ОС, выбрав пакеты, начинающиеся на oracle*, если вдруг он не установлен мы можем установить его из публичного репозитория. Поэтому нам остается установить только oracleasmlib.
# yum -y install download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el6.x86_64.rpm

Настраиваем ASMLib
# /etc/init.d/oracleasm configure
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]

Создадим диски для ASM
  1. определим свободное дисковое пространство:
    # vgdisplay vg_oracleserver
    — Volume group — VG Name vg_oracleserver
    System ID
    Format lvm2
    Metadata Areas 1
    Metadata Sequence No 4
    VG Access read/write
    VG Status resizable
    MAX LV 0
    Cur LV 3
    Open LV 3
    Max PV 0
    Cur PV 1
    Act PV 1
    VG Size 930,38 GiB
    PE Size 4,00 MiB
    Total PE 238177
    Alloc PE / Size 12544 / 49,00 GiB
    Free PE / Size 225633 / 881,38 GiB
    VG UUID LvgSW2-ZILO-KOZf-ZwAY-8WBB-9X2u-lzaWuv

  2. размеры дисков определяются индивидуально. Я для Redo Logs оставил 80ГБ, остальное пространство разделил поровну между db files и FRA.
    # lvcreate -L81,37G -n lvasmredo vg_oracleserver
    # lvcreate -L400G -n lvasmfra vg_oracleserver
    # lvcreate -L400G -n lvasmdata vg_oracleserver


Создадим диски ASM
# oracleasm createdisk ASMDATA01 /dev/vg_oracleserver/lvasmdata
# oracleasm createdisk ASMFRA02 /dev/vg_oracleserver/lvasmfra
# oracleasm createdisk ASMREDO02 /dev/vg_oracleserver/lvasmredo

Проверим их
# oracleasm listdisks
ASMDATA01
ASMFRA02
ASMREDO02
# ls -ltr /dev/oracleasm/disks
итого 0
brw-rw---- 1 grid asmadmin 252, 7 Ноя 12 06:15 ASMDATA01
brw-rw---- 1 grid asmadmin 252, 8 Ноя 12 06:15 ASMFRA02
brw-rw---- 1 grid asmadmin 252, 6 Ноя 12 06:16 ASMREDO02
# oracleasm-discover ORCL:*
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
[ASM Library — Generic Linux, version 2.0.4 (KABI_V2)]
Discovered disk: ORCL:ASMDATA01 [838860800 blocks (429496729600 bytes), maxio 512]
Discovered disk: ORCL:ASMFRA02 [838860800 blocks (429496729600 bytes), maxio 512]
Discovered disk: ORCL:ASMREDO02 [170647552 blocks (87371546624 bytes), maxio 512]

Установим параметры оболочки пользователя grid
# echo 'ORACLE_HOME=/u01/11.2.0/grid' >> /home/grid/.bash_profile
# echo 'ORACLE_SID=+ASM' >> /home/grid/.bash_profile
# echo 'PATH=$ORACLE_HOME/bin:$PATH' >> /home/grid/.bash_profile
# echo 'export ORACLE_HOME' >> /home/grid/.bash_profile
# echo 'export ORACLE_SID' >> /home/grid/.bash_profile
# echo 'export PATH' >> /home/grid/.bash_profile

!!! ВАЖНО!!! Установщик ORACLE GRID вероятнее всего расчитан на SysV систему инициализации, в то время как 6-ая версия Enterprise Linux использует Upstart. В связи с этим установщик при попытке инициализации демона OHASD выдает ошибку и завершает работу некоректно. В связи с этим необходимо до начала установки создать следующий файл (дату и имя соответствено используйте свое):
# touch /etc/init/ohasd.conf
# echo '#start init.ohasd' > /etc/init/ohasd.conf
# echo '# What: oracle high-availability watchdog' >> /etc/init/ohasd.conf
# echo '# When 12_11_2012' >> /etc/init/ohasd.conf
# echo '# Who: Arthur' >> /etc/init/ohasd.conf
# echo 'start on runlevel [35]' >> /etc/init/ohasd.conf
# echo 'stop on runlevel [016]' >> /etc/init/ohasd.conf
# echo 'respawn' >> /etc/init/ohasd.conf
# echo 'exec /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null' >> /etc/init/ohasd.conf

!!! ВАЖНО!!! в определенный момент неопходимо будет вручную запустить этого демона, поэтому держим открытой вторую консоль с правами root.

Со своей рабочей станции идём на e-delivery, авторизуемся, соглашаемся с правилами. Выбираем продукт: “Oracle Database”, платформу: “Linux x86-64”. В появившейся табличке выбираем “Oracle Database 11g Release 2 (в моем случае 11.2.0.1.0) Media Pack for Linux x86-64” и нажимаем кнопку продолжить. Выбираем загрузить “Oracle Database 11g Release 2 Grid Infrastructure (в моем случае 11.2.0.1.0) for Linux x86-64”.

Копируем скачанный файл на сервер в домашнюю папку пользователя grid
$ scp V17531-01.zip grid@oracleserver:~/

Подключаемся к серверу под учетной записью grid (будем использовать так ныне нелюбимую сетевую прозрачность X-server’а)
$ ssh -Y grid@oracleserver

Разрешим доступ к X-приложениям с других компьютеров
$ xhost +
можете на свое усмотрение ограничить узлы, с которых возможно подключение.

Распакуем архив
$ unzip V17531-01.zip

Перейдем в папку ~/grid и запустим установщик
$ cd ~/grid/
$ ./runInstaller

Starting Oracle Universal Installer…

Checking Temp space: must be greater than 120 MB. Actual 955 MB Passed
Checking swap space: must be greater than 150 MB. Actual 16383 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-11-12_06-30-47PM. Please wait…

Далее установка пойдет в графическом режиме
  1. В первом окне выбираем “установка и настройка инфрастуктуры grid для одиночного сервера”


  2. во втором окне выбираем английский и русский языки


  3. В третьем окне выбираем диск для данный (надежность у нас обеспечивается благодаря RAID, поэтому выбираем external)


  4. создадим пароль для пользователей SYS и ASMSNMP


  5. может ругнуться на качество пароля (тут уж решаем менять пароль или игнорировать, на сложный пароль система позднее тоже может среагировать неадекватно)


  6. выберем группы пользователей


  7. выберем пути для файлов БД и Grid


  8. выберем путь для инвентори


  9. установщик проверит зависимости и матерно ругнется


  10. но мы его пошлем, поставив галочку “Ignore All” ибо все зависимости мы решили в начале установки

  11. сохраним файл-ответов. мы сможем использовать его при установке Oracle без графической среды


  12. Нажимаем кнопку “Готово” и наблюдаем процесс установки, до того момента, когда откроется следующее сообщение


  13. открываем новую безопасную оболочку с пользователем root (одна у нас уже есть, всего после этого открыто 2 оболочки с пользователем root и 1 под пользователем grid) и выполняем требуемые скрипты:
    # /u01/app/oraInventory/orainstRoot.sh
    Changing permissions of /u01/app/oraInventory.
    Adding read,write permissions for group.
    Removing read,write,execute permissions for world.

    Changing groupname of /u01/app/oraInventory to oinstall.
    The execution of the script is complete.

    # /u01/11.2.0/grid/root.sh
    Running Oracle 11g root.sh script…

    The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME= /u01/11.2.0/grid

    Enter the full pathname of the local bin directory: [/usr/local/bin]:
    Copying dbhome to /usr/local/bin…
    Copying oraenv to /usr/local/bin…
    Copying coraenv to /usr/local/bin…

    Creating /etc/oratab file…
    Entries will be added to the /etc/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of root.sh script.
    Now product-specific root actions will be performed.
    2012-11-12 21:11:43: Checking for super user privileges
    2012-11-12 21:11:43: User has super user privileges
    2012-11-12 21:11:43: Parsing the host name
    Using configuration parameter file: /u01/11.2.0/grid/crs/install/crsconfig_params
    Creating trace directory
    LOCAL ADD MODE
    Creating OCR keys for user 'grid', privgrp 'oinstall'…
    Operation successful.
    CRS-4664: Node oracleserver successfully pinned.
    Adding daemon to inittab

  14. в этот момент выполнение скрипта застопоривается ( пункт 3.h и 3.i), идем во вторую сессию root и выполняем
    # initctl start ohasd
    ohasd start/running, process 6933

  15. выполнение скрипта продолжится
    CRS-4123: Oracle High Availability Services has been started.
    ohasd is starting
    ADVM/ACFS is not supported on oraclelinux-release-6Server-3.0.2.x86_64

    oracleserver 2012/11/12 21:18:34 /u01/11.2.0/grid/cdata/oracleserver/backup_20121112_211834.olr
    Successfully configured Oracle Grid Infrastructure for a Standalone Server
    Updating inventory properties for clusterware
    Starting Oracle Universal Installer…

    Checking swap space: must be greater than 500 MB. Actual 16371 MB Passed
    The inventory pointer is located at /etc/oraInst.loc
    The inventory is located at /u01/app/oraInventory
    'UpdateNodeList' was successful.

  16. После этого идем и нажимаем в окошечке “OK”

  17. финита ля комедиа



Добавим остальные группы дисков ASM
  1. в сессии с пользователем grid вполним
    $ asmca

  2. в первом окне выберем кнопку “create”


  3. в сплывающем окне создадим группу FRA, отказоуйстойчивость внешняя (используем RAID), выбираем диск ASMFRA02


  4. делаем аналогичное для REDO


  5. в результате получаем


  6. За сим установка GRID завершена.


Установка ORACLE СУБД


Установим параметры оболочки пользователя oracle
# echo 'ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1' >> /home/oracle/.bash_profile
# echo 'ORACLE_SID=LOC11' >> /home/oracle/.bash_profile
# echo 'PATH=$ORACLE_HOME/bin:$PATH' >> /home/oracle/.bash_profile
# echo 'export ORACLE_HOME' >> /home/oracle/.bash_profile
# echo 'export ORACLE_SID' >> /home/oracle/.bash_profile
# echo 'export PATH' >> /home/oracle/.bash_profile

Со своей рабочей станции идём на e-delivery, авторизуемся, соглашаемся с правилами. Выбираем продукт: “Oracle Database”, платформу: “Linux x86-64”. В появившейся табличке выбираем “Oracle Database 11g Release 2 (в моем случае 11.2.0.1.0) Media Pack for Linux x86-64” и нажимаем кнопку продолжить. Выбираем загрузить “Oracle Database 11g Release 2 (в моем случае 11.2.0.1.0) for Linux x86-64 (Part 1 of 2)” и “Oracle Database 11g Release 2 (в моем случае 11.2.0.1.0) for Linux x86-64 (Part 2 of 2)”.

Копируем скачанный файл на сервер в домашнюю папку пользователя oracle
$ scp V17530-01_* oracle@oracleserver:~/

Подключаемся к серверу под учетной записью oracle (будем использовать так ныне нелюбимую сетевую прозрачность X-server’а)
$ ssh -Y oracle@oracleserver

Разрешим доступ к X-приложениям с других компьютеров
$ xhost +
можете на свое усмотрение ограничить узлы, с которых возможно подключение.

Распакуем архив
$ unzip V17530-01_1of2.zip
$ unzip V17530-01_2of2.zip

Перейдём в папку ~/database и запустим установщик
$ cd ~/database/
$ ./runInstaller

Starting Oracle Universal Installer…

Checking Temp space: must be greater than 120 MB. Actual 953 MB Passed
Checking swap space: must be greater than 150 MB. Actual 16383 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-11-20_06-30-25PM. Please wait…

Далее установка идёт в графическом режиме
  1. в первом окне откажемся получать обновления от тех. поддержки Оракл (рекомендация производителя используемого ПО)


  2. соглашаемся с предупреждением


  3. во втором окне выбираем только установить ПО базы данных


  4. в третьем окне выбираем установку одиночной базы данных


  5. в четвертом окне выбираем языки


  6. мы являемся счастливыми обладателями лицензии на Oracle Standard Edition, поэтому в следующем окне выбираем ее


  7. выбираем пути установки


  8. выбираем группы пользователей


  9. игнорируем всЁ!!! (авось взлетит)


  10. рекомендуется сохранить файл ответов и запустить установку


  11. как это выглядит


  12. необходимо будет выполнить скрипт, указанный во всплывающем окошке


    # /u01/app/oracle/product/11.2.0/db_1/root.sh
    Running Oracle 11g root.sh script…

    The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1

    Enter the full pathname of the local bin directory: [/usr/local/bin]:
    The file «dbhome» already exists in /usr/local/bin. Overwrite it? (y/n)
    [n]:
    The file «oraenv» already exists in /usr/local/bin. Overwrite it? (y/n)
    [n]:
    The file «coraenv» already exists in /usr/local/bin. Overwrite it? (y/n)
    [n]:

    Entries will be added to the /etc/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of root.sh script.
    Now product-specific root actions will be performed.
    Finished product-specific root actions.

  13. Поздравляю! Вы счастливый обладатель СУБД ORACLE.



Создание базы


Перед созданием базы необходимо:
  1. проверить права доступа к файлам и папкам:
    1. Oracle Inventory
      # chown -R grid:oinstall /u01/app/oraInventory
      # chmod -R 775 /u01/app/oraInventory

    2. Grid Infrastructure Home
      # chown -R grid:oinstall /u01/11.2.0/grid
      # chmod -R 775 /u01/11.2.0/grid

    3. Oracle Base Directory
      # chown -R oracle:oinstall /u01/app/oracle
      # chmod -R 775 /u01/app/oracle

    4. Oracle RDBMS Home
      # chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
      # chmod -R 775 /u01/app/oracle/product/11.2.0/db_1


  2. изменить права доступа на
    # cd /u01/11.2.0/grid/bin/
    # chmod 6751 oracle
    # ls -l oracle

    -rwsr-s--x 1 grid oinstall 184285623 Ноя 12 21:06 oracle

    # cd /u01/app/oracle/product/11.2.0/db_1/bin
    # chmod 6751 oracle
    # -l oracle

    -rwsr-s--x 1 oracle asmadmin 199650019 Ноя 20 20:24 oracle

Подключаемся к серверу под учетной записью oracle (будем использовать так ныне нелюбимую сетевую прозрачность X-server’а)
$ ssh -Y oracle@oracleserver

На всякий случай опять разрешим доступ к X-приложениям
$ xhost +
можете на свое усмотрение ограничить узлы, с которых возможно подключение.

Запускаем настройку базы данных
$ dbca

Дальше действуем по инструкции, прилагающимся к Вашему программному обеспечению. С этого этапа можно не боятся ошибок, в любой момент можно будет удалить «сломанную» базу и создать новую.

Спасибо за внимание!
Share post

Similar posts

Comments 37

    –1
    image
    это еще мягко сказано
      +2
      А каким еще может быть продукт, где в официальной документации предписывается отключить selinux и iptables?
      пожестче тегов не было :)
        +1
        Так kin9pin ниже и резюмировал:
        >> это еще мягко сказано
        :)
          +1
          я и говорю: жестче тегов не было :)
          +1
          Есть еще такие, где ASLR просят отключить.
            0
            о ужас!
            0
            Из документации по установки Грида:

            Starting with Oracle Database 11g Release 2 (11.2), the Security Enhanced Linux (SELinux) feature is supported for Oracle Linux 4, Red Hat Enterprise Linux 4, Oracle Linux 5, and Red Hat Enterprise Linux 5.

            Настройка/включение-выключение iptables также только на совести системного и базного администраторов. Приходилось отключать только в домашних целях, чтобы избежать лишнего геморроя при тестинге
              0
              Сейчас этого уже точно не помню, но по-моему именно ASMlib плохо работает с SELinux. Т.е. если его не использовать, то да, можно оставить SELinux включенным.
              У Red Hat есть рекомендации как обойтись без использования ASMlib, используя udev.
          +1
          oracle-validated избавит от части изменений в конфигурационных файлах и установки необходимых пакетов, правда один фиг .bash_profile писать надо. Да и в стандартной поставке OEL он присутствует =)
            +1
            в 6ке oracle-validated заменили на oracle-rdbms-server-11gR2-preinstall
              0
              да, oracle-validated был в пятерке… в шестом его нет.
                0
                oracle-validated работал лучше, и мне советовали из-за этого не мучатся и ставить на 5-ую версию. Но мы, как говорится, легких путей не ищем.
            +1
            Пункты 6-14 можно было заменить одним запуском
            # yum install oracle-rdbms-server-11gR2-preinstall

            Для 6й RHEL или OEL сертифицирован только патчсет 11.2.0.3. Он ставится нормально без ругани на зависимости от ksh и тд. Нашару оракл даёт всё ещё старый 11.2.0.1, но есть же и другие источники ;)

            Для сингл-инстанса заводить отдельного юзера grid нет необходимости.
              0
              Про другие источники, к сожалению, не знаю. Использовал то, что есть. А следовательно получилось с руганью.

              Пакет oracle-rdbms-server-11gR2-preinstall у меня установлен, но делает не все необходимые настройки. Во всяком случае у меня не делал. Я так и написал, что установка и настройка описывается исходя из того факта, что все эти пакеты oracle* установлены.

              Необходимости нет, но и не мешает. А так да, если отдельного юзверя не заводить, то настройка будет проще. Но я счел, что так все-таки будет лучше для понимания того, что и как работает.
              –1
              Графический установщик на сервере доставляет :)
              Ставил как-то раз oracle на ubuntu сервер для облегчения разработки… Если нужно будет повторить, то проще будет уволится.
              А вообще, статья — зло, оставляет ораклоидов без хлеба :-D
                0
                А вообще, статья — зло, оставляет ораклоидов без хлеба :-D

                И это хорошо :) Хотя, есть вероятность, что она увеличит их число.
                Графический установщик на сервере доставляет :)

                Это точно :) Существует правда возможность установки по файлу ответов. Если выполнить все как описано в статье, должна остаться парочка таких файлов, можно на досуге ковырять их. К тому же, у меня на сервере иксы не запущены, установка «графикой» идет с икс-сервера, запущенного на моей рабочей станцией, клиентом на сервере СУБД. Та самая сетевая прозрачность иксов, что с ней будет когда грянет Wayalnd?
                +2
                А еще есть замечательный oraToolKit.
                  0
                  А сам ORACLE в курсе? Одобряе?
                    0
                    Более того, там используется установка по сценарию, который ORACLE сам же и придумал. OTK всего лишь сборник скриптов, который помогает автоматизировать работу DBA.
                  0
                  >Раздел /boot, большинство дистрибутивов рекомендуют для него 512kB.
                  Вы уверены, что именно kB? Один initramfs от RHEL6 занимает примерно 15 мегабайт, ядро — ещё 4.
                    0
                    промахнулся с ответом. смотрите ниже :)
                    0
                    точно! сейчас исправлю. Спасибо, за замечание!
                      –2
                      Ужас. Чего то мне расхотелось устанавливать Oracle. Я уж лучше по православному, кратенько так, введу:
                      sudo apt-get install mysql-server
                      и пойду дальше заниматься своими делами.
                      А то, может и просто, через GUI менеджер пакетов поставлю.
                        0
                        На mysql не везде можно «проехать». Собственно статья не об этом.
                          +2
                            –1
                            ага, а потом партицирование там настройте
                              +3
                              В чем проблема то? партиционирование это ноу-хау какое-то?

                              Вот изменить тип колонки в oracle — это проблема, не транзакционные ddl в oracle — это тоже проблема.
                              limit, autoincrement… Строки в 2(4) тысячи… это что, ?:"%;?:, такое вообще???
                              sqlplus… ну это просто печаль.
                              0
                              Я и рекомендовал обратить внимание на эту СУБД в начале поста ;)
                              Установить PostgreSQL легко, но легкость довольно обманичива :) По умолчанию он идет с настройками, позволяющими ему взлететь на самых слабых машинах, при запуска на более мощных серверах зачастую прирост производительности небольшой. Оптимизация PostgreSQL тема для отдельного поста (возможно даже книги). Гугль по запросу «оптимизация postgresql» выводит довольно много полезной информации :)
                              Как вариант можно обратить внимание на VoltDB, судя по этому ее разрабатывал один из основателей PostgreSQL.
                                0
                                Вот именно для этого и должны существовать такие уважаемые люди как DBA — оптимизировать СУБД под конкретные задачи, давать рекомендации разработчикам и т.д.
                                А не сидеть и устанавливать СУБД пол дня.
                          0
                          Это уже 4 на моей памяти статья на хабре про установку оракла, при чем с минимальными различаями от того, что есть в официальной документации.
                            0
                            Чем хороши отличия от официальной документации? Я старался действовать максимально близко к рекомендациям производителя. Результат Вы можете видеть.
                            Я выложил его с тем, чтобы кто-нибудь мог взять этот мануал и сэкономить свое время. Конечно он не отменяет вдумчивого чтения официальной документации, но позволит получить первое впечатление, и поможет быстро разобораться, что к чему.
                              0
                              Если уж вспомнили про документацию, то Oracle крайне не рекомендует использовать ASM поверх LVM.
                                0
                                Я об этом написал. У меня не было достаточно ресурсов для отдлельных физических разделов под ASM, когда подойдет полка (если подойдет) все будет сделано согласно документации :)
                            0
                            Везде статьи пишут, как установить оракл в окнах… Вот кто нибудь бы написал нормальный мануал, чтобы можно было поставить его в silent mode через response file… а то, то одно выскакивает, то другое…
                              0
                              о дааа)
                              если вы вдруг уже нашли, киньте ссылку пожалуйста :)
                                0
                                Насчёт использования response файла: раньше был сторонний пакет OraToolKit, вот его страничка на SF:
                                sourceforge.net/projects/oratoolkit, но он не обновляется несколько лет, сайт производителя уже не жив.

                                Я получил этот пакет «в наследство» с шаблоном RHEL 6.9 у одного из моих заказчиков, пробовал с ним разобраться. Он задуман, как универсальное средство для подготовки ОС, проверки пререквизитов, исправления конфигурации, и, в итоге, установки самой СУБД через респонс-файл. Далее автоматизированы все типовые процессы: бэкап и восстановление и т.д.

                                Пакет реально работает, но на продуктиве использовать его я не рискнул, т.к. встретил его первый раз, а DBA как раз уволился… Было бы интересно, если Хабрасообщество поделилось реальным опытом использования этого пакета.
                                0
                                если кому интересно — могу добавить к инструкции как запускать RAC на Oracle VM shared дисках ну и добавлять ASM диски при необходимости…

                                Only users with full accounts can post comments. Log in, please.