Это рабочая инструкция укомплектованная всеми скриптами необходимыми для полноценной работы, в т.ч. для автостарта базы и дополнительных сервисов.
Инструкция не содержит непосредственного описания действий в OracleInstaller т.к. специалист устанавливающий данную конфигурацию уже явно знает, что делать.
Статья не моя, автору необходим инвайт, но по каким то причинам статья не постится в песочницу.
1. cоздаем пользователей и группы
делаем под рутом
# определимся с директориями для инсталяции
традиционно массивы или разделы для oracle
монтируют в корень
/u00
/u01
…
в нашем случае:
/u00 — раздел под БД Oracle
/u01 — раздел под http
/u02 — директория для самого Oracle
СУБД ставиться на /u02 а таблспейсы создаем на /u00
на остальные разделы кидаем только контролфайлы
2. Обманка инсталятора
делаем копию файла /etc/redhat-release
cp redhat-release redhat-release1
делаем обманку — иначе не запустится инсталятор
echo redhat-4 >redhat-release
3. Настройка лимитов
добавим в /etc/security/limits.conf
4. добавим в /etc/pam.d/login
session required /lib/security/pam_limits.so
5. доставим пакеты:
6. устанавливаем прараметры ядра
Добавим в /etc/sysctl.conf — #for oracle
kernel.shmmni = 4096
#semaphores: semmsl semmns semopm semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65535
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
проверим
# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
7. установить .bash_profile для пользователя oracle
предварительно заменить имя_базы — на SID
8. непосредственно инсталяция
заходим в Х под пользователем оracle и запускаем инсталяцию
/в данной инструкции не освещается работа в самом инсталяторе ибо она проста и прозрачна/
sh runInstaller
инсталируем
advanced
custom
…
выбираем компоненты
инсталируем
выполняем под рутом скрипты
готово.
9. Создание скриптов создания базы
если есть шаблоны базы для DBCA то их надо положить в
/assistants/dbca/templates
запустить в X-ах dbca
и создать скрипты генерации базы
Обращаю внимание:
надо установить верную кодировеку
те к примеру CL8MSWIN1251
и национальную AL16UTF16
10.для избежания ошибки проверим
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 — Production on Sun Jul 29 10:32:44 2007
Copyright © 1982, 2005, Oracle. All rights reserved.
SQL> conn sys as sysdba
Enter password:
oraclemerl: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
ERROR:
ORA-12547: TNS:lost contact
надо поставить
libaio-0.3.103-3.X86_64.RPM
или старше
11 запуск создания
11.1 запустить скрипты создания базы
11.2 проверить наличие файлов листенера
sqlnet.ora
tnsnames.ora
примеры файлов
sqlnet.ora
tnsnames.ora
имя_базы заменить на SID, ip_базы — ip интерфейса сервера с которого будет доступна база
если файлов нет — их можно создать ручками или мастером ./netmgr
12. делаем автостарт базы
12.1 cкопировать в /etc/ файл oratab и поправить в нем имя и путь к базе
пример файла oratab
12.2 скопировать файл oracle в /etc/init.d/
12.3 проверьте наличие dbstart (должен лежать в /bin/)
12.4 проверить команды serivce oracle start/stop
12.5 сделать линки:
ln -s /etc/init.d/oracle /etc/rc2.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc4.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle
12.6 проверить как стартует при загрузке/остановке сервера
логи смореть в /var/log/oracle
13. Oracle iSQL*plus
старт ручной — isqlplusctl start
стоп ручной — isqlplusctl stop
установка сервисом
скопировать файл oraisql в /etc/init.d/
управлять сервисом — service oraisql start|stop|restart
cмотреть на порту 5561
те имя_сервера:5561/isqlplus/ иhttp://имя_сервера:5561/isqlplus/dba.uix
автостарт-стоп сервиса
сделать линки
ln -s /etc/init.d/oraisql /etc/rc2.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc3.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc4.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc0.d/K01oraisql
ln -s /etc/init.d/oraisql /etc/rc6.d/K01oraisql
14. Oracle Enterprise Manager
старт ручной
emctl start dbconsole
стоп ручной
emctl stop dbconsole
установка сервисом
скопировать файл oraemc в /etc/init.d/
управлять сервисом — service oraemc start|stop|restart
cмотреть на имя_сервера:1158/em/
автостарт-стоп сервиса
сделать линки
ln -s /etc/init.d/oraemc /etc/rc2.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc3.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc4.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc0.d/K01oraemc
ln -s /etc/init.d/oraemc /etc/rc6.d/K01oraemc
Инструкция не содержит непосредственного описания действий в OracleInstaller т.к. специалист устанавливающий данную конфигурацию уже явно знает, что делать.
Статья не моя, автору необходим инвайт, но по каким то причинам статья не постится в песочницу.
1. cоздаем пользователей и группы
делаем под рутом
groupadd oinstall
useradd -g oinstall oracle
passwd oracle
# определимся с директориями для инсталяции
традиционно массивы или разделы для oracle
монтируют в корень
/u00
/u01
…
в нашем случае:
/u00 — раздел под БД Oracle
/u01 — раздел под http
/u02 — директория для самого Oracle
СУБД ставиться на /u02 а таблспейсы создаем на /u00
на остальные разделы кидаем только контролфайлы
mkdir -p /u02/app/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /u02
mkdir -p /u00/oradata
chown -R oracle.oinstall /u00
mkdir -p /u01/oradata
chown -R oracle.oinstall /u01
2. Обманка инсталятора
делаем копию файла /etc/redhat-release
cp redhat-release redhat-release1
делаем обманку — иначе не запустится инсталятор
echo redhat-4 >redhat-release
3. Настройка лимитов
добавим в /etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
4. добавим в /etc/pam.d/login
session required /lib/security/pam_limits.so
5. доставим пакеты:
compat-db-4.2.52-5.1.i386.rpm
compat-db-4.2.52-5.1.x86_64.rpm
compat-gcc-34-3.4.6-4.x86_64.rpm
"compat-gcc-34-c++-3.4.6-4.x86_64.rpm"
"compat-libstdc++-33-3.2.3-61.i386.rpm"
"compat-libstdc++-33-3.2.3-61.x86_64.rpm"
gcc-4.1.2-14.el5.x86_64.rpm
glibc-2.5-18.i686.rpm
glibc-2.5-18.x86_64.rpm
libaio-0.3.106-3.2.i386.rpm
libaio-0.3.106-3.2.x86_64.rpm
libXp-1.0.0-8.1.el5.i386.rpm
libXp-1.0.0-8.1.el5.x86_64.rpm
make-3.81-1.1.x86_64.rpm
openmotif22-2.2.3-18.i386.rpm
openmotif22-2.2.3-18.x86_64.rpm
setarch-2.0-1.1.x86_64.rpm
6. устанавливаем прараметры ядра
Добавим в /etc/sysctl.conf — #for oracle
kernel.shmmni = 4096
#semaphores: semmsl semmns semopm semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65535
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
проверим
# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
7. установить .bash_profile для пользователя oracle
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
ORACLE_HOME=/u02/app/oracle/product/10.2.0/db_1 ; export ORACLE_HOME
ORACLE_BASE=/u00/oradata ; export ORACLE_BASE
ORACLE_TERM=xterm ; export ORACLE_TERM
ORACLE_SID=имя_базы ; export ORACLE_SID
TNS_ADMIN=$ORACLE_HOME/network/admin ; export TNS_ADMIN
ORACLE_DOC=$ORACLE_HOME/doc ; export ORACLE_DOC
ORACLE_SID=имя_базыl ; export ORACLE_SID
NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 ; export NLS_LANG
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:ORACLE_HOME/lib
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export PATH
unset USERNAME
предварительно заменить имя_базы — на SID
8. непосредственно инсталяция
заходим в Х под пользователем оracle и запускаем инсталяцию
/в данной инструкции не освещается работа в самом инсталяторе ибо она проста и прозрачна/
sh runInstaller
инсталируем
advanced
custom
…
выбираем компоненты
инсталируем
выполняем под рутом скрипты
готово.
9. Создание скриптов создания базы
если есть шаблоны базы для DBCA то их надо положить в
/assistants/dbca/templates
запустить в X-ах dbca
и создать скрипты генерации базы
Обращаю внимание:
надо установить верную кодировеку
те к примеру CL8MSWIN1251
и национальную AL16UTF16
10.для избежания ошибки проверим
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 — Production on Sun Jul 29 10:32:44 2007
Copyright © 1982, 2005, Oracle. All rights reserved.
SQL> conn sys as sysdba
Enter password:
oraclemerl: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
ERROR:
ORA-12547: TNS:lost contact
надо поставить
libaio-0.3.103-3.X86_64.RPM
или старше
11 запуск создания
11.1 запустить скрипты создания базы
11.2 проверить наличие файлов листенера
sqlnet.ora
tnsnames.ora
примеры файлов
sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES)
tnsnames.ora
имя_базы =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip_базы)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = имя_базы)
)
)
имя_базы заменить на SID, ip_базы — ip интерфейса сервера с которого будет доступна база
если файлов нет — их можно создать ручками или мастером ./netmgr
12. делаем автостарт базы
12.1 cкопировать в /etc/ файл oratab и поправить в нем имя и путь к базе
пример файла oratab
имя_базы:/u02/app/oracle/product/10.2.0/db_1:Y
12.2 скопировать файл oracle в /etc/init.d/
12.3 проверьте наличие dbstart (должен лежать в /bin/)
12.4 проверить команды serivce oracle start/stop
12.5 сделать линки:
ln -s /etc/init.d/oracle /etc/rc2.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc4.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle
ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle
12.6 проверить как стартует при загрузке/остановке сервера
логи смореть в /var/log/oracle
13. Oracle iSQL*plus
старт ручной — isqlplusctl start
стоп ручной — isqlplusctl stop
установка сервисом
скопировать файл oraisql в /etc/init.d/
управлять сервисом — service oraisql start|stop|restart
cмотреть на порту 5561
те имя_сервера:5561/isqlplus/ иhttp://имя_сервера:5561/isqlplus/dba.uix
автостарт-стоп сервиса
сделать линки
ln -s /etc/init.d/oraisql /etc/rc2.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc3.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc4.d/S99oraisql
ln -s /etc/init.d/oraisql /etc/rc0.d/K01oraisql
ln -s /etc/init.d/oraisql /etc/rc6.d/K01oraisql
14. Oracle Enterprise Manager
старт ручной
emctl start dbconsole
стоп ручной
emctl stop dbconsole
установка сервисом
скопировать файл oraemc в /etc/init.d/
управлять сервисом — service oraemc start|stop|restart
cмотреть на имя_сервера:1158/em/
автостарт-стоп сервиса
сделать линки
ln -s /etc/init.d/oraemc /etc/rc2.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc3.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc4.d/S99oraemc
ln -s /etc/init.d/oraemc /etc/rc0.d/K01oraemc
ln -s /etc/init.d/oraemc /etc/rc6.d/K01oraemc