6. Обновление СУБД Ред База Данных в кластере
6.1. Общий порядок обновления
Подсказка
Данный порядок может использоваться как для обновления узлов, так и для отката к предыдущей версии.
Установить нужную версию Ред Базы Данных на узлах, которые сейчас остановлены, если таковые имеются
Выбрать узел в состоянии slave
cookctl nodesnode0.cook.red-soft.ru (master) API URL http://node0.cook.red-soft.ru:5030, RDB 3.0.10.0 on 3050 and AUX 3060 (node0.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 1:0 node0.cook.red-soft.ru/3050:testdb1 node1.cook.red-soft.ru (slave) API URL http://node0.cook.red-soft.ru:5030, RDB 3.0.10.0 on 3050 and AUX 3060 (node1.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 1:0 node1.cook.red-soft.ru/3050:testdb1
Остановить на нем сервис cookd
systemctl stop cookd
Удостовериться, что процесс rdbserver был остановлен
ps aux|grep rdbserver
Установить необходимую версию Ред Базы Данных (смотри процесс обновления или отката)
Запустить сервис cookd
systemctl start cookd
Теперь этот узел работает на новой версии Ред Базы Данных
cookctl nodesnode0.cook.red-soft.ru (master) API URL http://node0.cook.red-soft.ru:5030, RDB 3.0.10.0 on 3050 and AUX 3060 (node0.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 1:0 node0.cook.red-soft.ru/3050:testdb1 node1.cook.red-soft.ru (slave) API URL http://node1.cook.red-soft.ru:5030, RDB 3.0.11.0 on 3050 and AUX 3060 (node1.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 1:0 node1.cook.red-soft.ru/3050:testdb1
Повторять шаги 2-6 для каждого slave в кластере
Выбрать активный master
Перевести активный master на другой узел или остановить его и дождаться появления в кластере нового master
cookctl promote <node>
или
systemctl stop cookd
Например:
cookctl promote node1.cook.red-soft.ru
Asking cluster to promote node node1.cook.red-soft.ru
cookctl nodesnode0.cook.red-soft.ru (slave) API URL http://node0.cook.red-soft.ru:5030, RDB 3.0.10.0 on 3050 and AUX 3060 (node0.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 2:0 node0.cook.red-soft.ru/3050:testdb1 node1.cook.red-soft.ru (master) API URL http://node1.cook.red-soft.ru:5030, RDB 3.0.11.0 on 3050 and AUX 3060 (node1.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 2:0 node1.cook.red-soft.ru/3050:testdb1
Повторить шаги для 2-6 для старого master, который теперь стал slave или остановлен. После этого весь кластер будет работать на новой версии Ред Базы Данных:
cookctl nodesnode0.cook.red-soft.ru (slave) API URL http://node0.cook.red-soft.ru:5030, RDB 3.0.11.0 on 3050 and AUX 3060 (node0.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 2:0 node0.cook.red-soft.ru/3050:testdb1 node1.cook.red-soft.ru (master) API URL http://node1.cook.red-soft.ru:5030, RDB 3.0.11.0 on 3050 and AUX 3060 (node1.cook.red-soft.ru/3050), failover enabled, priority 0 testdb1 /db/database1.fdb 2:0 node1.cook.red-soft.ru/3050:testdb1
Если необходимо, перенести master обратно
6.2. Процесс обновления Ред Базы Данных на узле
Сделать бэкап баз данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор
Сделать бэкап файла cluster.yml
Установить необходимую версию Ред Базы Данных
Запретить автозапуск или удалить сервис firebird
systemd disable firebird
Установить владельца и права файлов и каталогов в /opt/RedDatabase
cookctl fixpermissions firebird
Восстановить базы данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор
Восстановить файл cluster.yml
6.3. Процесс отката Ред Базы Данных на узле
Восстановить бэкап баз данных, если версия, с которой выполняется откат предполагает бэкап/рестор
Установить необходимую версию Ред Базы Данных
Запретить автозапуск или удалить сервис firebird
systemd disable firebird
Установить владельца и права файлов и каталогов в /opt/RedDatabase
cookctl fixpermissions firebird
Восстановить базы данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор
Восстановить файл cluster.yml