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/ <= is name of cluster
[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.

5 комментариев:

  1. Анонимный5/9/08 1:32 PM

    "И я кажется забыл про базу данных ... неплохо ее переименовать"

    Дмитрий

    зачем переименовывать БД ?
    ведь в кластере ведь она у нас одна !
    Или Вы имели в виду переименование экземпляра ?

    ОтветитьУдалить
  2. В одном кластере - у нас 1 БД.
    Но когда у нас возникнет 10 кластеров у всех БД по прежнему будет называться одинакого - легко запутаться. Это не обязательный шаг

    ОтветитьУдалить
  3. Анонимный5/9/08 6:50 PM

    Понятно ...
    Спасибо!

    Этот способ подходит для добавления нового узла в уже существующий кластер ?

    ОтветитьУдалить
  4. Мне кажется подходит, но рекомендации лучших раководов использовать addnode.sh
    http://download.oracle.com/docs/cd/B19306_01/rac.102/b28759/addnodes2.htm

    ОтветитьУдалить
  5. 1. "И я кажется забыл про базу данных ? Действительно, было бы неплохо ее переименовать"
    не совсем понял - что именно переименовывать ?
    если в данном случае был склонирован только софт CRS
    на новое оборудование.
    БД еще не создана, да и её софт еще не склонирован даже + вспомните про отдельный хом для ASM
    Вот склонировать хом для ASM + DB,
    а потом уже создать БД, или восстановить из бекапа
    и зарегистрировать в OCR - эт уже другое дело

    2. "зачем переименовывать БД ?
    ведь в кластере ведь она у нас одна !"
    наличие одной БД в кластере - это идеальный случай dedicated кластера.
    Продумайте ситуацию когда идет проект консолидации
    нескольких БД на одном кластере

    ОтветитьУдалить