четверг, 1 марта 2018 г.

Переконфигурация сбойного узла в кластере.



Имеется двухнодовый кластер (узлы host01 и host02)

Необходимо переконфигурировать узел host02

1. Удалить сбойный узел host02 из кластера.


Удалить ПО RDBMS из inventory работающего узла host01.
(Оставить только host01)

oracle@host01# ./runInstaller -updateNodeList ORACLE_HOME=$RDBMS_HOME "CLUSTER_NODES={host01}" LOCAL_NODE=host01


Удалить ПО GI из inventory работающего узла host01.
(Оставить только host01)

oracle@host01# ./runInstaller -updateNodeList ORACLE_HOME=$GRID_HOME "CLUSTER_NODES={host01}" CRS=TRUE -silent


Удалить сбойный узел host02 из OCR (реестра кластера).

root@host01# crsctl delete node -n host02


Удалить VIP на хосте host02.

root@host01# srvctl config vip -node host02
VIP exists: network number 1, hosting node host02
VIP Name: host02-vip
VIP IPv4 Address: 192.168.1.101
VIP IPv6 Address:
VIP is enabled.
VIP is individually enabled on nodes:
VIP is individually disabled on nodes:

root@host01# srvctl stop vip -vip host02-vip -force
root@host01# srvctl remove vip -vip host02-vip
Please confirm that you intend to remove the VIPs host02-vip (y/[n]) y



Удалить экземпляр orcl2.

root@host01# srvctl remove instance -db orcl -instance orcl2
Remove instance from the database orcl? (y/[n]) y


На данный момент плохой узел host02 больше не является частью кластера.


2. Переходим на host02 и очистим остатки некоторых файлов конфигурации GI и RDBMS на этом узле


oracle@host02$ rm -rf /u01/app/oracle/product/12.1.0.2/
root@host02# rm -rf /u01/grid/crs12.1.0.2/*
root@host02# rm /var/tmp/.oracle/*
oracle@host02$ rm -rf /tmp/*
root@host02# rm /etc/oracle/ocr*
root@host02# rm /etc/oracle/olr*
root@host02# rm -rf /pkg/oracle/app/oraInventory
root@host02# rm -rf /etc/oracle/scls_scr



3. Добавляем узел host02 обратно в кластер



oracle@host01$ cd $GRID_HOME/addnode

oracle@host01$ ./addnode.sh -ignoreSysPrereqs -ignorePrereq -silent "CLUSTER_NEW_NODES={host02}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={host02-vip}"


Это приведет к клонированию  GI_HOME с host01 на host02.
В конце будет предложено запустить root.sh на host02.
Запуск этого скрипта приведет к подключению GI к OCR и Voting disks и запуску clusterware stackvting.

Но вначале запустим.

root@host02# cd $GRID_HOME/crs/install
root@host02# ./rootcrs.sh -verbose -deconfig -force


root@host02# cd $GRID_HOME
root@host02# ./root.sh



host02 теперь входит в состав кластера, а GI работает.
Проверяем

root@host02# crs_stat -t
root@host02# olsnodes -n



Также проверяем VIP.

root@host02# srvctl status vip -vip host02-vip
VIP host02-vip is enabled
VIP host02-vip is running on node: host02



Запустим клонирование RDBMS_HOME с host01 на host02.

oracle@host01]$ cd $RDBMS_HOME/addnode
oracle@host01]$ ./addnode.sh "CLUSTER_NEW_NODES={host02}"


Это запустит OUI. Проходим мастер, чтобы завершить процесс клонирования.


4. Добавим экземпляр обратно на узел host02.


oracle@host01$ srvctl add instance -db orcl -instance orcl2 -node host02
Если все пойдет хорошо, экземпляр запустится.

Проверяем:

oracle@host01$ srvctl start instance -db orcl -instance orcl2

oracle@host01$ srvctl status database -d orcl
Instance orcl1 is running on node host01
Instance orcl2 is running on node host02

SQL> select inst_id,status from gv$instance;

INST_ID STATUS
---------- ------------
 1 OPEN
 2 OPEN


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

srvctl modify service -db orcl -service my_svc -modifyconfig -preferred "orcl1,orcl2"
srvctl start service -db orcl -service my_svc -node host02
srvctl status service -db orcl


Все работает.