Clusterware Cloning
О том, что поставить кластер не очень просто я уже писал ранее. А вот что делать, если нужно их поставить скажем десяток-другой ?
- Можно ставить их все через Universal Installer, не забывая затем накатывать все полагающие патчи (10.2.0.4, CPU)
- Можно записать responce file. Будет чуть проще чем предыдущий вариант, но патчи все равно накатывать вручную придется.
- Можно использовать Provisioning Pack из состава Oracle Enterprise Manager. Если Вы его купили.
- Можно использовать clone.pl. Об этом способе и пойдет дальше речь.
Итак, нам необходимо
1. Установить Clusterware и накатить все патчи.
2. Остановить его
crsctl stop crs
3. Почистить от мусора
[root@node1 crs]# rm –rf ./log/
[root@node1 crs]# find . -name '*.ouibak' -exec rm {} \;
[root@node1 crs]# find . -name '*.ouibak.1' -exec rm {} \;
[root@node1 crs]# rm –rf ./cdata/*
[root@node1 crs]# rm –rf root.sh*
[root@node1 crs]# cd cfgtoollogs
[root@node1 cfgtoollogs]# find . -type f -exec rm -f {} \;
4. Свернуть (tar+gzip) и развернуть на узлах нового кластера. Версия и патчи OS конечно же должны совпадать с оригинальным кластером. Также должны быть заведен пользователь oracle и все необходимые группы.
5. Запустить clone.pl У clone.pl всего 11 параметров - 3 переменные окружения и 8 параметров которые передаются инсталлеру.
ORACLE_BASE=/opt/oracle
E01=ORA_CRS_HOME=/opt/oracle/product/10gR2/crs
E02=ORACLE_HOME=${ORA_CRS_HOME}
E03=ORACLE_HOME_NAME=OraCrs10g
#C00="-O'-debug'"
C01="-O's_clustername=crscluster'"
C02="-O'INVENTORY_LOCATION=/opt/oracle/oraInventory'"
C03="-O'sl_tableList=\"{node1:node1int:node1vip:N:Y,node2:node2int:node2vip:N:Y}\"'"
C04="-O'ret_PrivIntrList=\"{eth0:144.25.212.0:1,eth1:10.10.10.0:2}\"'"
if [ ${VOTEMIRROR} -eq 0 ]; then
C05="-O'n_storageTypeVDSK=2'"
C06="-O's_votingdisklocation=/dev/sdc1'"
else
C05="-O'n_storageTypeVDSK=1'"
C06="-O's_votingdisklocation=/dev/sdc1' -O's_OcrVdskMirror1RetVal=/dev/sdd1'
-O's_VdskMirror2RetVal=/dev/sde1'"
fi
if [ ${OCRMIRROR} -eq 0 ]; then
C07="-O'n_storageTypeOCR=2'"
C08="-O's_ocrpartitionlocation=/dev/sdc2'"
else
C07="-O'n_storageTypeOCR=1'"
C08="-O's_ocrpartitionlocation=/dev/sdc2' -O's_ocrMirrorLocation=/dev/sdd2'"
fi
perl $ORA_CRS_HOME/clone/bin/clone.pl $E01 $E02 $E03 $C01 $C02 $C03 $C04 $C05 $C06 $C07 $C08
6. Дальше нам нужно на всех узлах запустить /opt/oracle/oraInventory/orainstRoot.sh
7. Дальше $ORA_CRS_HOME/root.sh
8. $ORA_CRS_HOME/cfgtoollogs/configToolAllCommands
И все было бы волшебно, но описанный в документации метод вызова clone.pl для платформы Windows не вполне правильный. Читайте Note:444617.1
И я кажется забыл про базу данных ? Действительно, было бы неплохо ее переименовать - см Note:464922.1. И не забудьте внести изменения в listener.ora.
Я также уверен что database control не переживет таких изменений. Вам придется пересоздать репозиторий. Хотя конечно, управлять несколькими кластерами следует через Database Grid Control.
Spatial Thanks to Philip Newlan, Oracle Corp, RAC PACK team.
"И я кажется забыл про базу данных ... неплохо ее переименовать"
ОтветитьУдалитьДмитрий
зачем переименовывать БД ?
ведь в кластере ведь она у нас одна !
Или Вы имели в виду переименование экземпляра ?
В одном кластере - у нас 1 БД.
ОтветитьУдалитьНо когда у нас возникнет 10 кластеров у всех БД по прежнему будет называться одинакого - легко запутаться. Это не обязательный шаг
Понятно ...
ОтветитьУдалитьСпасибо!
Этот способ подходит для добавления нового узла в уже существующий кластер ?
Мне кажется подходит, но рекомендации лучших раководов использовать addnode.sh
ОтветитьУдалитьhttp://download.oracle.com/docs/cd/B19306_01/rac.102/b28759/addnodes2.htm
1. "И я кажется забыл про базу данных ? Действительно, было бы неплохо ее переименовать"
ОтветитьУдалитьне совсем понял - что именно переименовывать ?
если в данном случае был склонирован только софт CRS
на новое оборудование.
БД еще не создана, да и её софт еще не склонирован даже + вспомните про отдельный хом для ASM
Вот склонировать хом для ASM + DB,
а потом уже создать БД, или восстановить из бекапа
и зарегистрировать в OCR - эт уже другое дело
2. "зачем переименовывать БД ?
ведь в кластере ведь она у нас одна !"
наличие одной БД в кластере - это идеальный случай dedicated кластера.
Продумайте ситуацию когда идет проект консолидации
нескольких БД на одном кластере