27.05.2014 19:32
OlegON
 
Решил записать последовательность действий и некоторые нюансы установки Oracle RAC, поскольку происходит инсталляция достаточно редко и все свежезабитое в голову теряется со временем.
Подчеркну, что в качестве дистрибутива Linux использовался Oracle Linux, который, например, содержит драйверы ASM в своем репозитории.
Создаем две ноды. Чтобы не было недоразумений, следует отметить, что по софту они должны быть зеркальными. Т.е. места установки софта, его версии и битность, все должно совпадать.
О хранилище. В моем случае хранилищем была один из lun массива, по оптике подключенный к обеим нодам. Обратите внимание, что необходимо предусмотреть место для архивлогов таким образом, чтобы они были видны с обеих нод. Это может быть и отдельная, общая шара, а может быть и тот же ASM.
Начать следует с настройки DNS. Она была описана в PDF по инсталляции RAC, я его благополучно уже куда-то посеял, но найду позднее - прикреплю. Картинка оттуда следующая.



картинку необходимо пояснить.
SCAN - имя, разрешаемое в несколько IP по Round robin. Подчеркну, это не адреса нод. Т.е. даете админу домена в зубы имя и резервируете под него несколько адресов. Для двухнодового кластера это минимум три адреса.
Далее, у каждой ноды обязательно должно быть три интерфейса. Один публичный, т.е. обычно как раз тот адрес, по которому вы подключаетесь к ноде. Его так же забиваем в DNS через зубы админа домена (см. выше). Второй - vip, в той же подсети, что и публичный. Третий интерфейс - приватный, в другой подсети, по которому осуществляется interconnect между нодами. Этим и объясняется наличие адресов *-priv на рисунке. Можете не пытаться халявить, мастер создания кластера потребует два интерфейса. Один приватный, другой публичный.
Вот адреса priv в DNS пробивать совсем не обязательно. Более того, был какой-то глюк, связанный с необходимостью пробивать эти адреса в hosts на каждой ноде. Я не заморачиваюсь и сразу пробиваю в hosts.
Резюмирую. На две ноды - три адреса SCAN, два публичных адреса, два vip и два приватных.
27.05.2014 20:51
OlegON
 
Далее, готовим систему. Для RAC требуется grid, который находится в 3 архиве дистрибутивов 11.2.0.4
В самом начале рекомендую проверить синхронизацию времени и часовой пояс.
Обратите внимание, что среди опций ntpd в /etc/sysconfig/ntpd должна быть -x, инсталлятор это проверяет.
Его рекомендуется ставить под отдельным пользователем, которого я, не мудрствуя, называю grid.
Установка Oracle 11g на Oracle Linux содержит перечень пакетов, которые почему-то в Oracle Linux не ставятся по умолчанию, но должны быть. Для того, чтобы можно было использовать ASM, необходимо доставить еще несколько пакетов
Код:
yum install oracleasm kmod-oracleasm oracleasm-support
и поставить пакет
Код:
rpm -ivh cvuqdisk.rpm
который лежит в самом инсталляторе в каталоге rpm. Не помешает yum update и перезагрузка.
Создаем пользователя на обеих нодах, причем с одинаковым паролем
Код:
/usr/sbin/useradd -u 1100 -g oinstall -G dba grid
passwd grid
Обращаю внимание на структуру каталогов. В зависимости от того, куда вы ставите, необходимо выделить каталог для oracle, для grid и для oraInventory (общий), соответственно, права на них должны быть вида user:oinstall и chmod -R 775.
Далее настраиваем драйвер ASM
Код:
oracleasm configure -i
в небольшом вопроснике выдаем права для grid:dba и отвечаем y на оба последующих вопроса.
Инициализируем драйвер
Код:
oracleasm init
Если еще не успели до этого, каким-нибудь менеджером разделов вроде gdisk или fdisk необходимо создать раздел на общем для нод диске (с одной ноды, конечно). И далее - создать ASM-диск на этом разделе. У меня рейд на полке, поэтому диск один и имя устройства у него /dev/mapper/mpathcp1
Код:
oracleasm createdisk DISK1 /dev/mapper/mpathcp1
Можно сделать
Код:
oracleasm listdisks
чтобы увидеть, что диск появился.
на второй ноде этот диск тоже должен подхватиться, что выполняется командой
Код:
oracleasm scandisks
в дальнейшем при перезагрузке это будет происходить автоматом.
После этого можно запускать инсталлятор.
Собственно, в нем ничего особо интересного нет, но необходимо обратить внимание на возможность автоматически настроить доступ по ключу через SSH для обеих нод. В окошке, где добавляете ноды, слева кнопочка раскрывает мастер, где можно сначала ввести общий для пользователя пароль, нажать setup, потом test. Это обязательное условие. Дальше, если вы внимательно читали этот опус, пройдете через настройку интерфейсов и подключите диски. Обратите внимание, каким образом настроена избыточность дисков. У меня external, поскольку рейд железный, а диск один. Почему-то не диски не виделись до изменения discovery path на /dev/oracleasm/disks/, так и не поборол эту досадную неприятность. До сих пор не знаю причину. Ну и ладно, указал и указал.
Обратите внимание, что под конец надо будет выполнить скрипты из под root на обеих нодах. Вот нюанс в том, что одновременно их лучше не запускать.
После инсталляции можете проверить состояние кластера
Код:
...../grid/bin/crsctl check crs
...../grid/bin/crsctl status resource -w "TYPE co ’ora’" -t
Сами RDBMS и база ставится достаточно долгим мастером, уже под oracle. Если вы хоть раз ставили базу, то никаких вопросов у вас это не вызовет. Мастер сам определит, что под ним кластерварь, поставит все на одну ноду, скопирует на другую и заведет. Ничего дополнительно допиливать не пришлось.
28.05.2014 08:53
OlegON
 
Как обещал, добавляю PDF.
Вложения
Тип файла: 7z Oracle RAC 11g installation.7z (831.2 Кб, 489 просмотров)
20.06.2014 11:40
OlegON
 
Обратите внимание, что TZ, т.е. таймзона в случае RAC устанавливается в $GRID_HOME/crs/install/s_crsconfig_<nodename>_env.txt
У меня по умолчанию была GMT, поэтому sysdate при подключении через сеть была кривая.
На всякий случай приведу команды проверки переменных окружения
Код:
srvctl getenv database -d <dbname>
srvctl getenv nodeapps -n <nodename>
-- If you are 11.2, then use 'getenv listener' instead of 'getenv nodeapps':
srvctl getenv listener
и установки переменных окружения
Код:
srvctl setenv database -d <dbname> -t 'TZ=<the TZ you want>'
srvctl setenv nodeapps -n crmnode1 -t 'TZ=<the TZ you want>'
-- If you are 11.2, then use 'setenv listener' instead of 'setenv nodeapps':
srvctl setenv listener -l <listenername> -t 'TZ=<the TZ you want>'
которые все равно требуют рестарта. Я правил прямо в файле редактором.
Рекомендуемые для прочтения ноты
NOTE:227334.1 - Dates & Calendars - Frequently Asked Questions
NOTE:373303.1 - How to Check the Environment Variables for an Oracle Process
NOTE:1209444.1 - How To Change Timezone for 11gR2 Grid Infrastructure
NOTE:1531653.1 - How to use multiple timezones with one Oracle RAC database
И, собственно, Incorrect SYSDATE shown when connected via Listener in RAC (Doc ID 1390015.1)
05.12.2014 15:27
OlegON
 
Цитата:
oracleasm deletedisk DISK1
Clearing disk header: failed
Unable to clear disk "DISK1"
лечится только
Цитата:
dd if=/dev/zero of=/dev/oracleasm/disks/DISK1 bs=1024 count=100
за ногу его
08.12.2014 14:52
OlegON
 
PRVF-5149 : WARNING: Storage "..." is not shared on all nodes

приседаний было много. Правильным было
Цитата:
/etc/init.d/oracleasm restart
08.12.2014 16:21
OlegON
 
Цитата:
PRVF-9802 : Attempt to get udev information from node failed
Можно игнорировать...
Часовой пояс GMT +3, время: 19:06.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.