Showing posts with label Oracle Install. Show all posts
Showing posts with label Oracle Install. Show all posts

Monday, June 09, 2008

По установке Oracle 9i на Linux (Centos 4.6)

Решил протестить и задокументить на случай необходимости быстрой установки Oracle 9i на Linux.
Тест провел с установкой Oracle 9i на Centos 4.6.
В соотв-ии с Note:303859.1 (Requirements for Installing Oracle 9iR2 on RHEL 4)
ставим дополнительно те, которых не хватает в системе из списка:
Minimum Software Requirement:
=============================
* Required OS Components
- compat-db-4.1.25-9
- compat-gcc-32-3.2.3-47.3
- compat-gcc-32-c++-3.2.3-47.3
- compat-oracle-rhel4-1.0-3
- compat-libcwait-2.0-1
- compat-libgcc-296-2.96-132.7.2
- compat-libstdc++-296-2.96-132.7.2
- compat-libstdc++-33-3.2.3-47.3
- gnome-libs-1.4.1.2.90-44
- gnome-libs-devel-1.4.1.2.90-44
- libaio-devel-0.3.102-1
- libaio-0.3.102-1
- make-3.80-5
- openmotif21-2.1.30-11
- xorg-x11-deprecated-libs-devel-6.8.1-23.EL
- xorg-x11-deprecated-libs-6.8.1-23.EL
Учитывая зависимости, которые потребовались для этих пакетов, у меня получился след. полный список для доп.установки диска. Можно то, что ниже просто вставить в простой sh-скриптик и запустить.
---
cd /media/cdrom/CentOS/RPMS
rpm -Uvh compat-db-4.1.25-9.i386.rpm \
compat-libgcc-296-2.96-132.7.2.i386.rpm \
compat-libstdc++-296-2.96-132.7.2.i386.rpm \
compat-libstdc++-33-3.2.3-47.3.i386.rpm \
compat-gcc-32-3.2.3-47.3.i386.rpm \
compat-gcc-32-c++-3.2.3-47.3.i386.rpm \
gnome-libs-1.4.1.2.90-44.1.i386.rpm \
glib-devel-1.2.10-15.i386.rpm \
ORBit-devel-0.5.17-14.i386.rpm \
alsa-lib-devel-1.0.6-5.RHEL4.i386.rpm \
audiofile-devel-0.2.6-1.el4.1.i386.rpm \
esound-devel-0.2.35-2.i386.rpm \
freetype-devel-2.1.9-6.el4.i386.rpm \
fontconfig-devel-2.2.3-13.el4.i386.rpm \
xorg-x11-devel-6.8.2-1.EL.33.i386.rpm \
gtk+-devel-1.2.10-36.i386.rpm \
libjpeg-devel-6b-33.i386.rpm \
libtiff-devel-3.6.1-12.i386.rpm \
libungif-devel-4.1.3-1.el4.2.i386.rpm \
imlib-devel-1.9.13-23.i386.rpm \
gnome-libs-devel-1.4.1.2.90-44.1.i386.rpm \
libaio-0.3.105-2.i386.rpm \
libaio-devel-0.3.105-2.i386.rpm \
make-3.80-6.EL4.i386.rpm \
openmotif21-2.1.30-11.RHEL4.6.i386.rpm \
xorg-x11-deprecated-libs-6.8.2-1.EL.33.i386.rpm \
xorg-x11-deprecated-libs-devel-6.8.2-1.EL.33.i386.rpm
---

Конфигурирование Linux для установки Oracle (делаю как при установке Oracle 10)

1) Заведение групп oinstall, dba и пользователя oracle (copy-paste)
# /usr/sbin/groupadd -g 502 oinstall
# /usr/sbin/groupadd -g 503 dba
# /usr/sbin/useradd -m -u 501 -g dba -G oinstall oracle

Проверка id и gid
# id oracle uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)

Установка пароля passwd oracle через:
# passwd oracle

2) Создание директорий по OFA (copy-paste)
# mkdir /oracle
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle

3) Конфигурирование параметров ядра (через copy-paste) и shell-лимиты
(делаю как при установке Oracle 10)
Создать и запустить скриптик с таким содержимым
#/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
cp /etc/sysctl.conf /etc/sysctl.conf.ori
cat >> /etc/sysctl.conf << MYEOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
MYEOF
/sbin/sysctl -p
cp /etc/security/limits.conf /etc/security/limits.conf.ori
cat >> /etc/security/limits.conf <oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
MYEOF
cp /etc/pam.d/login /etc/pam.d/login.ori
cat >> /etc/pam.d/login <session required /lib/security/pam_limits.so
MYEOF
cp /etc/profile /etc/profile.ori
cat >> /etc/profile <if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF
cp /etc/csh.login /etc/csh.login.ori
cat >> /etc/csh.login << MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF
cp /etc/profile /etc/profile.ori
cat >> /etc/profile << MYEOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF

cp /etc/csh.login /etc/csh.login.ori
cat >> /etc/csh.login << MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF
---
В .bash_profile юзера oracle я добавил

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export ORACLE_SID=test9i
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin

По окончании установки при помощи runInstall в граф.окне получил
Ошибки
/oracle/jre/1.1.8/bin/../lib/i686/native_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM

Решение проблем (как и вообще установка с необходимыми патчами) хорошо описано в пошаговой инструкции от Terek’а
http://conrad2001.narod.ru/terek/oracle9204linux.htm
После накатки патчей и перелинковки пробелмы исчезают.

Также могут быть полезными ссылки
http://www.puschitz.com/InstallingOracle9i.shtml
http://download-east.oracle.com/docs/html/B13670_06/toc.htm
http://blogs.ittoolbox.com/database/david/archives/installing-oracle-9-on-rhel4-19572

Monday, May 28, 2007

Тест с установкой Oracle на CentOS 5

Пока есть время (в преддверии установки нового сервера для разработчиков) решил протестить установку Oracle 10gR2 на CentOS 5 (хотя как я понял 5-я версия RHEL еще не тестировалась Oracle). Первая грабля поджидает сразу после запуска runInstaller'а на сообщении
"Checking operating system version: must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2". Загляните в /etc/redhat-release и поменяйте версию. Подсказку нашел на одной из
ссылок по установке Oracle 10gR2 на Red Hat 5.
Следующая грабля связана с rawdevices, на базе которых поднимается Oracle ASM.
Я не нашел ни /etc/init.d/rawdevices, ни /etc/sysconfig/rawdevices. Помог FAQ How do I add raw device mapping in Red Hat Enterprise Linux 5?. Ну и ссылка на русскую доку по RHEL возможно пригодится
Установил Oracle и создал базу на базе ASM успешно. Все работает, но когда попробовал перелить несколько схем из другой БД при помощи impdp с network_link, но получил ошибки
ORA-31626: job does not exist
ORA-31650: timeout waiting for master process response

.....Думаю, тестировать далее нет смысла - если будет время продолжим тесты, но сейчас я откажусь от CentOS 5 в своих работах с Oracle 10gR2.

Wednesday, May 02, 2007

к установке Oracle ASM on MSA1000 на HP-UX 11.11

В HP-UX 11.11 после "нарезки" LUNs массива MSA1000 при помощи hpacucli, где каждому LUNу соответствует один физический диск, для того, чтобы при создании дисковых групп ASM с normal redundancy не ошибиться в определении failgroups, юзай команды
#ioscan
#insf
#ioscan -funC disk (информация об определенных в системе дисках) и эту ссылку Interpreting Hardware Paths.
Данная ссылка поможет определить разные пути к одному и тому же диску, которые c целью обеспечения failover можно будет оформить в виде масок разных failgroup's.
Например,
SQL> alter system set asm_diskstring='/dev/rdsk/c18t0*','/dev/rdsk/c20t1*';

System altered.

SQL> create diskgroup msa1000 normal redundancy
2 failgroup fg1 disk '/dev/rdsk/c18t0*'
3 failgroup fg2 disk '/dev/rdsk/c20t1*';
Diskgroup created.

После установки библиотеки клиента DP и интеграции c Oracle, проверить доступность ленточек можно через
#ioscan -funC tape

Wednesday, April 18, 2007

PHSS_32508 при установке Oracle 10g R2 на HP-UX PA-RISC (64-Bit)

По требованиям ораклинной доки для установки Oracle 10g R2 на HP-UX PA-RISC (64-Bit) необходимо установить патчи PHSS_32508 и др. Вы не сможете этого сделать, если в вашей системе не установлен платный C++ копилятор.
==
Что это за патчи?
PHSS_32508 - patch for ANSI C++ compiler
PHSS_32509 - patch for ANSI C compiler
PHSS_32510 - patch for the ANSI C/C++/fortran optimizer
PHSS_32731 - patch for Serviceguard
==
А и не надо их ставить (для PL/SQL Native вообще должно быть достаточно gcc 3.4.0) - просто игнорируйте
Checking for PHSS_32508; found Not found. Failed <<<<
Checking for PHSS_32509; found Not found. Failed <<<<
Checking for PHSS_32510; found Not found. Failed <<<<
Checking for PHSS_32731; found Not found. Failed <<<<
и продолжайте установку.

Saturday, November 18, 2006

По установке Oracle 10GR2 в Linux (John Smiley & Tim)

Step-by-step установки Oracle 10.2.0.2 [ 3 | 4 ] на Centos 4.2[4]. (или Enterprise Linux Unbreakable)
на основе
Installing Oracle Database 10g Release 2 on Linux x86, by John Smiley


Предполагается установка патчсета 10.2.0.2 [ 3 | 4 ] и создание новой базы данных, поэтому рассматривается установка без апргейда работающей в 10.2.0.1 БД.
ASM для новой базы данных сконфигурен без ASMlib, на rawdevices.

В примерах далее в выражениях "<<" My уберите кавычки.

Установка и настройка CentOS по дефолту со swap-разделом в 1,5 (или в 2, см.доку) объема RAM, достаточным количеством дискового пространства, c установкой X-ов, Gnome, sysstat, mc etc.
При дисковом пространстве на 12 Gb и RAM на 1024 Мб я выделил разделы след. образом: /boot - 100 мб swap - 1600 мб / - 7 Gb остальное оставил "сырым" под rawdevices.
Без выделения /usr, /var, /tmp , т.е. все будет "валиться" в корень /.
Сразу после установки CentOS в консоли сервера.

1) Т.к. мой сервер под Oracle находится в защищенной сетке для удобства сразу открываю ssh для root (в /etc/ssh/sshd_config раскомментировать строку PermitRootLogin yes), для нормального отображения системных шрифтов в mc правлю /etc/sysconfig/i18n удалением UTF-8 так, что остается LANG="en_US", SUPPORTED="en_US:en"

2) Для последующей установки Oracle через X разрешаю протокол XDMCP (если лень лезть в конфиги, то в GNOME достаточно просто включить галочку в "Applications-System Setting-Login Screen-XDMCP").
Если есть под рукой XManager, то можно не включать XDMCP, а подключаться через XStart XManager’а.

3) Далее удобнее работать в ssh-сессии через putty под root-ом.

Установить все необходимые пакеты (copy-paste).

# rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21

В моем случае не хватало libaio и openmotif21, о чем сообщил мне запрос
package libaio is not installed package openmotif21 is not installed и я их доустановил прямо из директории CentOS/RPMS дистрибутивного диска (copy-paste).

# rpm -Uvh openmotif21-2.1.30-11.RHEL4.6.i386.rpm libaio-0.3.105-2.i386.rpm

Также опыт показал, что во время установки Oracle возникает ошибка, если не установлен пакет compat-libstdc++ . Поэтому необходимо проверить ее наличие (copy-paste)

# rpm -ql compat-libstdc++-33-3.2.3-47.3

Если no installed, то установить из rpm-ов
# rpm -i compat-libstdc++-33-3.2.3-47.3.i386.rpm
(в Enterprise Linux 4.4 # rpm -Uvh compat-libstdc++-296-2.96-132.7.2.i386.rpm)

И удостовериться, что все доступно в системе
# rpm -ql compat-libstdc++-33-3.2.3-47.3 /usr/lib/libstdc++.so.5 /usr/lib/libstdc++.so.5.0.7

Конфигурирование Linux для установки Oracle

1) Заведение групп oinstall, dba и пользователя oracle (copy-paste)
# /usr/sbin/groupadd -g 502 oinstall
# /usr/sbin/groupadd -g 503 dba
# /usr/sbin/useradd -m -u 501 -g dba -G oinstall oracle

Проверка id и gid
# id oracle uid=501(oracle) gid=502(oinstall) groups=502(oinstall),503(dba)

Установка пароля passwd oracle через:
# passwd oracle

2) Создание директорий по OFA (copy-paste)
# mkdir /oracle
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle

3) Конфигурирование параметров ядра (через copy-paste)
# cat >> /etc/sysctl.conf
 <<
MYEOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
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.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
MYEOF
Проверить /sbin/sysctl -p

4) Установить Shell-лимиты для юзера oracle

#/bin/sh
cat >> /etc/security/limits.conf
 <<
MYEOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
MYEOF

# cat >> /etc/pam.d/login
 <<
MYEOF
session required /lib/security/pam_limits.so
MYEOF


# cat >> /etc/profile
 <<
MYEOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF

# cat >> /etc/csh.login
 <<
MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF


# cat >> /etc/profile
 <<
MYEOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
MYEOF

# cat >> /etc/csh.login
 <<
MYEOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
MYEOF


Установка Oracle из графического окна.
….

=====
По созданию ASM на базе Rawdevices (взял здесь )
# ls /dev/sd*
sda sda1 sda2 sdb sdc sdd
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305):
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#
====
После рестарта появился девайс /dev/sda4
# fdisk -l
Disk /dev/sda: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 778 6144862+ 83 Linux
/dev/sda3 1306 1566 2096482+ 82 Linux swap
/dev/sda4 779 1305 4233127+ 83 Linux

Partition table entries are not in disk order

Создаем директорию /dev/raw
# mkdir -p /dev/raw

и в файл /etc/sysconfig/rawdevices прописываем
/dev/raw/raw1 /dev/sda4
и делаем
# service rawdevices restart

Появился диск /dev/raw/raw1, к которому мы назначим хозяина и атрибуты
# chown oracle:dba /dev/raw/raw1
# chmod 660 /dev/raw/raw1

Также, чтобы после перезагрузки сервера атрибуты сохранились, добавим эти же строки в /etc/rc.local
# cat >> /etc/rc.local
 <<
My
chown oracle:dba /dev/raw/raw*
chmod 600 /dev/raw/raw*
My

Под рутом
# /oracle/product/10.2.0/db_1/bin/localconfig add

Затем создаем ASM-инстанс - для этого: ИЛИ запускаем GUI под юзером oracle, запускаем dbca и начинаем создание ASM-инстанса
Почему не вручную? Не вижу смысла создавать директории и файлы вручную, если так и так установка Oracle была из GUI.

Но ...
ИЛИ ВРУЧНУЮ на основе 2 статей Manually Creating an ASM Instance и Adventures in ASM (copy/paste)
# su - oracle
$ orapwd file=$ORACLE_HOME/dbs/orapw+asm password=my_passwd
$ mkdir -p $ORACLE_BASE/admin/+asm/bdump
$ mkdir -p $ORACLE_BASE/admin/+asm/cdump
$ mkdir -p $ORACLE_BASE/admin/+asm/hdump
$ mkdir -p $ORACLE_BASE/admin/+asm/pfile
$ mkdir -p $ORACLE_BASE/admin/+asm/udump

$ cat > $ORACLE_BASE/admin/+asm/pfile/init.ora
 <<
MY
*.background_dump_dest='/oracle/admin/+asm/bdump'
*.core_dump_dest='/oracle/admin/+asm/cdump'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='/oracle/admin/+asm/udump'
MY

$ ln -s $ORACLE_BASE/admin/+asm/pfile/init.ora $ORACLE_HOME/dbs/init+asm.ora

$ export ORACLE_SID=+asm
# sqlplus "/ as sysdba"

SQL> startup
ASM instance started

Total System Global Area 75497472 bytes
Fixed Size 777852 bytes
Variable Size 74719620 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: no diskgroups mounted

SQL> create spfile from pfile;
SQL> alter system set asm_diskstring = '/dev/raw/raw*' scope=both;
SQL> alter system set asm_diskgroups = 'ASM_DATA' scope=both;
SQL> create diskgroup asm_data external redundancy disk '/dev/raw/raw1';

Полезно добавить в SQLPATH скриптик login.sql
==================
login.sql
set serveroutput on size 1000000
set trimspool on
set long 5000
set linesize 900
set pagesize 9999
column plan_plus_exp format a80
column global_name new_value gname
set termout off
define gname=+asm
column global_name new_value gname
select lower(user) || '@' || substr(global_name,1,
decode( dot, 0, length(global_name), dot-1) ) global_name
from (select global_name, instr(global_name,'.') dot from global_name );
set sqlprompt '&gname> '
set termout on