Oracle mechanics

28.07.2008

Особенности установки Oracle 10.2.0.4 RAC, OEL 5.1 x86_64, EMC Powerpath

Filed under: Oracle — Игорь Усольцев @ 15:39
Tags: ,

Процесс установки Oracle Real Application Clusters на Red Hat/Oracle Enterprise Linux (RHEL/OEL) хорошо описан в документации по установке в следующих комбинациях: 10g на RHEL4, 11g на RHEL5. Здесь описаны только проблемы, варианты решений и вопросы, возникающие при установке Oracle 10g Clusterware и RDBMS на OEL 5.1 (RHEL 5.*) x86_64 при использовании EMC Powerpath (multipath) driver для резервированного доступа к разделяемым дисковым разделам. Описываемые конфигурации ПО и оборудования сертифицированы Oracle.

Установка производится в соответствии с Oracle Clusterware and Oracle Real Application Clusters Installation Guide в следующем порядке:

  1. 10.2.0.1 Clusterware
  2. 10.2.0.1 RDBMS Standard Edition — Software only
  3. 10.2.0.4 Patchset
  4. Создание ASM и БД с помощью Database Configuration Assistant ( dbca ), либо SQL*Plus

Список требуемых пакетов rpm можно найти в 421308.1 Requirements For Installing Oracle10gR2 On RHEL/OEL 5 (x86_64).

Для установки 10.2.0.1 Standard Edition RAC рекомендованным методом расположения database and recovery файлов является ASM (который и используем), а для Clusterware файлов (и ASM spfile) — только raw partition (по крайней мере, во время установки), поскольку OCFS недоступна в Standard Edition по лицензионным ограничениям. Далее нужно учесть, что EMC Powerpath устройства — блочного типа ( block devices ) и напрямую для Clusterware использованы быть не могут, поскольку Oracle Universal Installer (OUI) 10.2 «признаёт» только raw devices (в OUI 11g ситуация исправлена и можно использовать block devices для shared clusterware files при установке ). И напоследок напомню, что в RHEL/OEL 5 механизм raw device уже не одобряется (deprecated), но всё ещё поддерживается — см. 357492.1 Linux 2.6 Kernel Deprecation Of Raw Devices. В соответствии с рекомендациями 564580.1 Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5/OEL5, 465001.1 Configuring raw devices (singlepath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5/OEL5 для установки ПО была использована конфигурация raw device через /etc/rc.local :

#####
# Oracle Cluster Registry (OCR) devices
#####
raw /dev/raw/raw1 /dev/emcpowerX1
sleep 2
chown root:oinstall /dev/raw/raw1
chmod 660 /dev/raw/raw1
#####
# Oracle Cluster Voting disks
#####
raw /dev/raw/raw2 /dev/emcpowerY1
sleep 2
chown oracle:oinstall /dev/raw/raw2
chmod 660 /dev/raw/raw2
#####
# Oracle ASM spfile disks
#####
raw /dev/raw/raw3 /dev/emcpowerZ1
sleep 2
chown oracle:dba /dev/raw/raw3
chmod 660 /dev/raw/raw3

Замечания по процессу установки

Вероятно, в связи с тем, что redhat-5 не прописан в первоначальном списке поддерживаемых ОС, следующие команды не выдают никакой полезной информации:

./runcluvfy.sh comp sys -n node1,node2 -p crs -osdba crs -orainv oinstall -r 10gR2 -verbose
./runcluvfy.sh comp sys -n node1,node2 -p database -osdba crs -orainv oinstall -r 10gR2 -verbose

В файле /etc/sysconfig/oracleasm желательно указать требуемый порядок сканирования ASM дисков, чтобы задействовать в первую очередь устройства Powerpath:

ORACLEASM_SCANORDER=»emcpower sd»

, либо полностью исключить не-Powerpath ( /dev/sd* ) устройства из ASM сканирования:

ORACLEASM_SCANEXCLUDE=»sd»

В случае ошибки выполнения oracleasm createdisk, следует добавлять ASM диски следует командой (см. 469163.1 Oracleasm Createdisk Fails: Device ‘/dev/emcpoweraxx Is Not A Partition [Failed]):

/usr/sbin/asmtool -C -l /dev/oracleasm -n DISK_N -s /dev/emcpowerN1 -a force=yes

В случае использования для VIP интерфейсов IP адресов из диапазонов: 172.16.x.x — 172.31.x.x, 192.168.x.x, 10.x.x.x, получим ошибку при выполнении команды:

./runcluvfy.sh stage -pre crsinst -n node1,node2

Could not find a suitable set of interfaces for VIPs

, которую в соответствии с 338924.1 CLUVFY Fails With Error: Could not find a suitable set of interfaces for VIPs можно игнорировать.

Во избежание проблем с поддержкой redhat-5 в OUI 10.2.0.1, запускать установку можно так:

$ export SKIP_ROOTPRE=TRUE
$ ./runInstaller -ignoreSysPrereqs &

При проверке требований возникают предупреждения:

«Checking operating system requirements …
Expected result: One of redhat-3,redhat-4,SuSE-9
Actual Result: redhat-Enterprise Linux Enterprise Linux Server release 5.1 (Carthage)»
«Checking operating system package requirements …
Check complete. The overall result of this check is: Not executed <<<<
OUI-18001: The operating system ‘Linux Version redhat-Enterprise Linux Enterprise Linux Server release 5.1 (Carthage)’ is not supported.»
«Checking kernel parameters
Check complete. The overall result of this check is: Not executed <<<<
OUI-18001: The operating system ‘Linux Version redhat-Enterprise Linux Enterprise Linux Server release 5.1 (Carthage)’ is not supported.»
«Checking Recommended glibc version
Check complete. The overall result of this check is: Not executed <<<<
OUI-18001: The operating system ‘Linux Version redhat-Enterprise Linux Enterprise Linux Server release 5.1 (Carthage)’ is not supported.»
«Checking available swap space requirements …
Expected result: 24126MB
Actual Result: 8001MB»

, которые по очевидным причинам (redhat-5) стоит проигнорировать (поставить checkbox «user verified»). Последнее предупреждение не относится к версии ОС и исходит из стандартных требований Oracle к размеру swap на системе с 32 GB RAM. Игнорирую я его потому, что на тестовой системе не предполагается запускать никаких других приложений, кроме Oracle (даже X отключен id:3:initdefault:), а по опыту известно, что сервер БД с используемым на 1 GB swap становится заметно заторможенным — даже не хочется представлять себе сервер с 10 G использованного swap пространства.

При выполнении root.sh (Running vipca(silent) for configuring nodeapps) получаем ошибки вида:

java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
Error 0(Native: listNetInterfaces:[3])

Для решения проблемы (см. 577298.1 VIPCA cannot be run under RHEL/OEL 5), рекомендовано на каждом ноде:

«удалить установку переменной LD_ASSUME_KERNEL из файлов $ORA_CRS_HOME/bin/vipca, $ORA_CRS_HOME/bin/srvctl»

, добавление произвести командами:

$ORA_CRS_HOME/bin/srvctl add nodeapps -n node1 -o $ORA_CRS_HOME -A node1-vip-iface/255.255.255.0/eth0

Если при запусках DBCA возникают проблемы соединения с ASM instance:

DBCA could not startup the ASM instance configured on this node. To process with ASM diskgroup
management you need the ASM instance to be up and running. Do you want to recreate the ASM
instance on this node?

, нужно проверить конфигурацию и состояние LISTENER на нодах — команда lsnrctl status должна показать, что ASM instance зарегистрирован на LISTENER’е, и содержимое файла oratab — на присутствие записи об ASM — см. 467756.1 Can Not Use Existing ASM For New Database.

При конфигурации ASM с помощью DBCA возможны проблемы идентификации предварительно созданных ASM дисков, которые решаются, например, установкой discovery path (там же, в DBCA) в значение «/dev/oracleasm/disks/*«, см. подробное описание — 457369.1 ASM is Unable to Detect ASMLIB Disks/Devices.

Во время создания БД (Standard Edition) можно игнорировать связанные с выбранной редакцией ошибка DBCA типа:

ORA-00439 materialized view rewrite — feature not enabled

При появлении в alert.log созданной с использованием DBCA БД ошибок вида:

ORA-00604: error occurred at recursive SQL level 1
ORA-12663: Services required by client not available on the server
ORA-36961: Oracle OLAP is not available.
ORA-06512: at «SYS.OLAPIHISTORYRETENTION», line 1

следует отключить системные триггеры, испльзующие Oracle OLAP опцию ( см. 266728.1 10G: ORA-6512 AT SYS.OLAPIHISTORYRETENTION on Standard Edition ):

ALTER TRIGGER SYS.OLAPISTARTUPTRIGGER DISABLE;
ALTER TRIGGER SYS.OLAPISHUTDOWNTRIGGER DISABLE;

Проблемы и решения

После успешной установки и создания БД было замечено, что Oracle CRS периодически не может корректно стартовать. Например, при (почти) одновременном корректном перезапуске обеих нод ( # init 6 ) один из нодов рестартовал нормально, включая CRS и кластерные сервисы, в то время как второй не мог запустить CRS после 1-го рестарта и перестартовывал дважды (второй раз — без ошибок)! Также периодически было невозможно перезапустить CRS ( #crsctl stop crs; crsctl start crs ) на любом из серверов кластера.

/var/log/messages:
node1 kernel: ocssd.bin[11554]: segfault at 00000000000000a8 rip 00000000004454e1 rsp 0000000043c041f0 error 4

$ORA_CRS_HOME//log/node1/crsd/crsd.log
[ CSSCLNT][2901703136]clsssInitNative: connect failed,rc 9
[ CRSRTI][2901703136]0CSS is not ready. Received status 3 from CSS. Waiting for good status ..
[ COMMCRS][1084229952]clsc_connect: (0x1500dcf0) no listener at ADDRESS = (PROTO=ipc) (KEY=OCSSD_LL_node1_sk10crs))

ocssd.log:
[ CSSD] [1126189376] >ERROR: clssnmvDiskKillCheck: voting disk corrupted (0x00000000, 0x00000000)
(0//dev/raw/raw2)
[ CSSD] [1136679232] >ERROR: clssnmDiskPMT: Aborting, 1 of 1 voting disks unavailable

При этом, в случае ошибок при перезапуске CRS, проблема решалась простым перевыполнением команд raw из /etc/rc.local для Voting disk device (уточню, что проблема не имела отношение к правам доступа):

raw /dev/raw/raw2 /dev/emcpowerY1
chown oracle:oinstall /dev/raw/raw2
chmod 660 /dev/raw/raw2

Попытка использовать механизм udev (465001.1 Configuring raw devices (singlepath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5/OEL5, 414897.1 How to Setup UDEV Rules for RAC OCR & Voting devices on SLES10, RHEL5, OEL5) не изменила результат, что и понятно, — «в новой обёртке» используется та же команда raw. В этом месте был заведён SR на Oracle support site (Metalink).

Из пользовательских форумов Oracle:

«Luckily, Oracle fully supports to have the OCRs and Voting Disks on block devices (starting with 10.2.0.2 and some additional patches or using 10.2.0.3 as far as I know).»

Подозрение, что проблема может быть связана с использование RAW device для Clusterware, подтверждилась. При добавлении Voting disk (block device) к существующему Voting disk (raw device), проблему воспроизвести не удалось:

# crsctl stop crs (all cluster nodes)
# ls -l /u01/oradata/crs/block/vdisk02
lrwxrwxrwx 1 root root 15 Jul 24 18:09 /u01/oradata/crs/block/vdisk02 -> /dev/emcpowerp1
# crsctl add css votedisk /u01/oradata/crs/block/vdisk02 -force
# crsctl query css votedisk
0. 0 /dev/raw/raw2
1. 0 /u01/oradata/crs/block/vdisk02
located 2 votedisk(s).

Уверенности добавил официальный документ 401132.1 How to install Oracle Clusterware with shared storage on block devices (для Oracle Server Version: 10.2, Linux Itanium, x86-64, x86), последняя фраза которого гласила: «It is important to note that EMC powerpath devices are block devices and therefore the (OUI) will complain they are not shareable. In order to use block devices, the above steps needs to be completed.»

Успешно заменив расположение Votedisk: raw -> block devices, возникла незначительная проблема простого перемещения OCR device:

# ocrconfig -replace ocr /u01/oradata/crs/block/ocr01
PROT-16: Internal Error

Официальное описание ошибки 444757.1 ‘ocrconfig -replace ocr’ Fails With PROT-16, вероятно, описывает другую проблему — «The OCR size of the new file/raw device is not acceptable.» , т.к. попытки использования устройств большего размера не изменили ситуацию. Тем не менее, в документе предлагается совершенно правильная последовательность действий:

# ocrconfig -replace ocrmirror /u01/oradata/crs/block/ocr02
# ocrconfig -replace ocr /u01/oradata/crs/block/ocr01

— таким образом становится понятно, что ocrconfig не может заменить ocr раздел пока в наличии нет ocrmirror. Видимо, под PROT-16 скрывается другая ошибка PROT-1, описанyю в 467216.1 Failure In Replacing Ocr Device.

После того, как я изложил в Service Request (всё ещё в режиме монолога) предложения по решению (заменой raw-> block device для shared Oracle CRS разделов), из Oracle Support пришёл долгожданный ответ:

Sorry for the delay.
One of the last updates indicated that the problem was no longer occurring since using block deveices.
Please review the following note…
— далее перечисление некоторых из вышеперечисленных Metalink notes.

Итоговая конфигурация для использования block devices для Oracle clusterware — /etc/rc.local:

#####
# Oracle Cluster Registry (OCR) devices
#####
chown  root:oinstall /dev/emcpowera1
chmod 660 /dev/emcpowera1
ln -s /dev/emcpowera1  /u01/oradata/crs/block/ocr01
chown root:oinstall /dev/emcpowerb1
chmod 660  /dev/emcpowerb1
ln -s /dev/emcpowerb1 /u01/oradata/crs/block/ocr02
#####
#  Oracle Cluster Voting disks
#####
chown oracle:oinstall /dev/emcpowerc1
chmod  660 /dev/emcpowerc1
ln -s /dev/emcpowerc1 /u01/oradata/crs/block/vdisk02
chown oracle:oinstall /dev/emcpowerd1
chmod 660 /dev/emcpowerd1
ln -s /dev/emcpowerd1 /u01/oradata/crs/block/vdisk03
chown oracle:oinstall /dev/emcpowere1
chmod 660 /dev/emcpowere1
ln -s /dev/emcpowere1 /u01/oradata/crs/block/vdisk04

наконец-то сегодня одобрена Oracle support.

1 комментарий »

  1. По поводу поддежки блочных устройств, на текущий момент уже описано в документации http://download.oracle.com/docs/cd/B19306_01/install.102/b14203/storage.htm#CDEEHEGJ
    и появилось это относительно недавно.

    комментарий от Юрий — 20.05.2009 @ 21:57 | Ответить


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: