ВНИМАНИЕ !
Эта статья будет перенесена на sysadminwiki.ru,
где вы можете принять участие в её улучшении!
Здесь она обновляться больше не будет.
Если хотите развить тему, то можете перенисти её самостоятельно.

Установка БД Oracle 9.2.0.4.0 и
Oracle Application Server 10g
на RED HAT Enterprise Linux AS 2.1
(Пошаговая инструкция)

2005.05.30
версия 1.0
24pm@mail.ru

Данный документ основан на фирменных документациях по инсталляции баз данных Oracle9.2.0.4, а также инструкции от Terek
!! Устанавливаем экземпляр oracle с именем prod, заменить на своё !!

Установка БД Oracle 9.2.0.4.0

Шаг 1.

Минимальные требования к оборудованию согласно официальной документации:

Физическая память 512 MB
Swap space (раздел подкачки) 1 GB (дисковый раздел, создается при инсталляции Linux)
Disk Space in /tmp 400 MB (раздел для временных файлов)
Disk space for software files 2,5 GB (минимальный объем дискового пространства для программных файлов)
Disk space for database files 1,2 GB (минимальный объем дискового пространства для файлов баз данных)

При инсталляции Linux на сервере одним SCSI-диском на 17 Gb я создал следующие разделы:

/dev/sda1 /boot
46 Mb
/dev/sda2 /swap
1992 Mb
/dev/sda3 /
15551 Mb

Выбираем тип инсталляции – Сервер, устанавливаем пакеты по максимуму, кроме мультимедии, игр и дополнений к ядру

Шаг 2.

- Создаем группы и пользователей:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle
oinstall -> первичная группа
dba -> вторичная группа
- Проверяем существование пользователя oracle:
# id oracle
- Создаем рабочие директории (-p создает недостающие родительские каталоги):
# mkdir -p /oracle/ora92
# mkdir -p /oradata/prod
# mkdir /orapp

# cd /oradata/prod
# mkdir arc bdump cdump ctl dbf log trace udump
- Назначаем права пользователю oracle и группе oinstall на созданные директории:
# chown -R oracle:oinstall /oracle /oradata
- Назначаем разрешения:
# chmod -R 775 /oracle /oradata

Шаг 3.

Конфигурирование параметров ядра(см.рекомендованные параметры):

Parameter

Value

File

semmsl
semmns
semopm
semmni

100
32000
100
100

/proc/sys/kernel/sem

shmall

2097152

/proc/sys/kernel/shmall

shmmax

Half the size of RAM ( 536 870 912 )

/proc/sys/kernel/shmmax

shmmni

4096

/proc/sys/kernel/shmmni

file-max

65536

/proc/sys/fs/file-max

ip_local_port_range

1024 65000

/proc/sys/net/ipv4/ip_local_port_range

Выполните следующие команды для проверки параметров ядра:

Parameter

Command

semmsl, semmns,
semopm, and
semmni

# /sbin/sysctl -a | grep sem
This command displays the value of the semaphore
parameters in the order listed.

shmall, shmmax,
and shmmni

# /sbin/sysctl -a | grep shm

file-max

# /sbin/sysctl -a | grep file-max

ip_local_port_range

# /sbin/sysctl -a | grep ip_local_port_range
This command displays a range of port numbers.

The parameters in the following table are the minimum values required to run Oracle9 i with a single-database instance on Linux

Если значения не совпадают с рекомендованными, то используя любой текстовый редактор создайте или отредактируйте файл /etc/sysctl.conf :

kernel.sem = 100 32000 100 100
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
net.ipv4.ip_local_port_range = 1024 65000

Затем перезагрузите систему. Поверьте еще раз параметры ядра командой:
# /sbin/sysctl –p

Kernel Parameter

Setting

Purpose

SEMMNI

100

Defines the maximum number of semaphore sets in the entire system.

SEMMNS

256

Defines the maximum semaphores on the system. This setting is a minimum recommended value, for initial installation only.
The SEMMNS parameter should be set to the sum of the PROCESSES parameter for each Oracle database, adding the largest one twice, and then adding an additional 10 for each database.

SEMOPM

100

Defines the maximum number of operations for each semop call.

SEMMSL

100

Defines the minimum recommended value, for initial installation only.

SHMMAX

2147483648

Defines the maximum allowable size of one shared memory segment.
2 GB for SMP kernel. The recommended size is half the RAM size.

SHMMIN

1

Defines the minimum allowable size of a single shared memory segment.

SHMMNI

100

Defines the maximum number of shared memory segments in the entire system.

SHMSEG

4096

Defines the maximum number of shared memory segments one process can attach.

SHMVMX

32767

Defines the maximum value of a semaphore.

Шаг 4.

- Теперь зайдём пользователем oracle с его профайлом (-)
# su - oracle
- Установим переменную DISPLAY. (The DISPLAY variable specifies the name, server number, and screen number of the system where the Oracle Universal Installer displays)
$ DISPLAY=127.0.0.1:0.0
$ export DISPLAY
- следующее необходимо запускать из X’ов, в терминале
$ xhost +127.0.0.1
Добавим следующие строки в файл пользовательского окружения переменных /home/oracle/.bash_profile:

umask 022 # если команда umask выдаёт не 022
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/ora92
export ORACLE_SID=prod # имя экземпляра
export NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
export PATH=$ORACLE_HOME/bin:$PATH

- Проверим переменную PATH
$ echo $PATH
среди прочего должны быть $ORACLE_HOME/bin, /usr/bin, /bin, /usr/bin/X11/ и, если существует /usr/local/bin

Шаг 5.

Запускаем runInstaller
Отвечаем на экране File Locations:
Name: ora92
Path: /oracle/ora92
Available Products: Database
Installation Types: Enterprise Edition
Database Configuration: Software Only (т.к. БД будем создавать скриптом)

В Summary проверяем наличие языка Russian и жмём Install.

Шаг 6.

После завершения устанавливаем patch 9.2.0.4
На экране Available Products выбираем Oracle Universal Installer 2.2.0.18.0
По завершению обновления нажимаем Next Install и затем Exit.
Запускаем обновлённый инсталлятор (тот же пусковой файл).
На экране Available Products выбираем Oracle9iR2 Patch Set 3 9.2.0.4.0

Шаг 7.

- Пользователем oracle создаём файл паролей:
$ orapwd file=/oracle/ora92/dbs/orapwprod password=WELCOME entries=5
- Создаём файл /oracle/ora92/dbs/ initprod.ora следующего содержания:

aq_tm_processes=1
background_dump_dest='/oradata/prod/bdump'
compatible='9.2.0.0.0'
control_files='/oradata/prod/ctl/control01.ctl','/oradata/prod/ctl/control02.ctl','/oradata/prod/ctl/control03.ctl'
core_dump_dest='/oradata/prod/cdump'
cpu_count=2
db_block_size=8192
db_cache_size=33554432
db_domain=''
db_file_multiblock_read_count=8
db_name='prod'
dispatchers='(PROTOCOL=TCP) (SERVICE=prodXDB)'
fast_start_mttr_target=300
hash_join_enabled=TRUE
instance_name='prod'
java_pool_size=20971520
job_queue_processes=4
large_pool_size=5242880
#log_archive_dest_1='LOCATION=/oradata/prod/arc MANDATORY REOPEN'
log_archive_start=FALSE #TRUE
max_enabled_roles=100
nls_territory='cis'
open_cursors=1000
oracle_trace_collection_path='/oradata/prod/trace'
oracle_trace_facility_path='/oradata/prod/trace'
pga_aggregate_target=25165824
processes=350
query_rewrite_enabled='FALSE'
remote_login_passwordfile='EXCLUSIVE'
resource_manager_plan='SYSTEM_PLAN'
shared_pool_size=80000000
sort_area_size=1048576
star_transformation_enabled='FALSE'
timed_os_statistics=1
timed_statistics=TRUE
trace_enabled=FALSE
undo_management='AUTO'
undo_retention=10800
undo_tablespace='UNDOTBS1'
user_dump_dest='/oradata/prod/udump'

- Запускаем слушателя
$ lsnrctl start
- Корректируем пути, имя экземпляра и если нужно кодировку (CHARACTER SET), но учитывая что она должна совпадать с переменной NLS_LANG в файле /home/oracle/.bash_profile. Возможные варианты: CL8MSWIN1251, CL8KOI8R, CL8ISO8859P5.
- Запускаем oracl’ом скрипт создания базы данных crt_prod_db.sql, сохраняя все сообщения в соответствующий лог файл:
$ cd /home/oracle
$ sqlplus /nolog @crt_prod_db.sql | tee crt_prod_db.log
-
Если во время запуска скрипта произошёл сбой, то
1) останавливаем экземпляр
SQL> shutdown abort
SQL> exit

2) удаляем все файлы в подкаталогах /oradata/prod
$ rm -rf /oradata/prod
$ mkdir /oradata/prod
$ cd /oradata/prod
$ mkdir arc bdump cdump ctl dbf log trace udump

3) правим что нужно и запускаем снова скрипт. Отчёт об ошибках можно посмотреть в алерт-логе:
$ less /oradata/prodaq/bdump/alert_prod.log
Возможно придётся заново создать файл паролей:
$ orapwd file=/oracle/ora92/dbs/orapwprod password=WELCOME entries=5

Шаг 8.

- Теперь, если слушатель не поднимается, то запускаем ассистент по его настройке:
$ $ORACLE_HOME/bin/netca
и настраиваем по очереди
1. Listener configuration
2. Local Net Service Name configuration

Установка Oracle Application Server 10g

Шаг 1.

Запускаем runInstaller
Отвечаем на экране File Locations:
Name: as10g
Path: /oracle/as10g
Instance Name: prodas
Outgoing Mail Server: 10.0.0.2
По окончании установки запоминаем порты, которые будет прослушивать наш сервер. По умолчанию это:
7777 – для клиента
1810 – для администратора

Шаг 2.

Проверяем запущен ли http-сервер:
$ ps –ax | grep opmn
если нет, то запускаем:
$ /oracle/as10g/opmn/bin/opmnctl start

Шаг 3.

Теперь к серверу можно обращаться по адресу, но лучше создать DNS имя, например: prod.mydomain.ru
Проверяем доступ к стартовой странице сервера приложений. На клиентском месте в браузере набираем:
http://prod.mydomain.ru:7777

 

Создаём пакетные файлы запуска и останова.

Все файлы создаём пользователем oracle в группе oinstall.
# su - oracle
$ mkdir appadmin
$ cd appadmin
- Создаём файл /home/oracle/appadmin/fullstart.sh:

#/bin/sh

export DISPLAY=:0.0
xclock&

. /home/oracle/.bash_profile
$ORACLE_HOME/bin/namesctl start
$ORACLE_HOME/bin/lsnrctl start
$ORACLE_HOME/bin/sqlplus -s /nolog <<EOF
connect / as sysdba
startup
exit
EOF

. /home/oracle/.as10g_profile
$ORACLE_HOME/Apache/Apache/bin/apachectl start

- Создаём файл /home/oracle/appadmin/fulldown.sh:

#!/bin/sh

. /home/oracle/.as10g_profile
$ORACLE_HOME/Apache/Apache/bin/apachectl stop

. /home/oracle/.bash_profile
$ORACLE_HOME/bin/sqlplus -s /nolog <<EOF
connect / as sysdba
shutdown immediate
exit
EOF

$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/namesctl stop < /home/oracle/appadmin/yes

- Создаём файл для автоматического согласия на параметры /home/oracle/appadmin/yes:

yes

-  Делаем скрипты исполняемыми:
$ chmod +x fulldown.sh fullstart.sh
если нужно изменить группу:
$ chown -R oracle.oinstall *

Обсудить, спросить
на форуме
Новую версию этого документа можно получить на одном из зеркал сайта:
pm4u.opennet.ru, pm4u.narod.ru