6. Обновление СУБД Ред База Данных в кластере

6.1. Общий порядок обновления

Подсказка

Данный порядок может использоваться как для обновления узлов, так и для отката к предыдущей версии.

  1. Установить нужную версию Ред Базы Данных на узлах, которые сейчас остановлены, если таковые имеются

  2. Выбрать узел в состоянии slave

    cookctl nodes
    
    node0.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
    
  3. Остановить на нем сервис cookd

    systemctl stop cookd
    
  4. Удостовериться, что процесс rdbserver был остановлен

    ps aux|grep rdbserver
    
  5. Установить необходимую версию Ред Базы Данных (смотри процесс обновления или отката)

  6. Запустить сервис cookd

    systemctl start cookd
    
  7. Теперь этот узел работает на новой версии Ред Базы Данных

    cookctl nodes
    
    node0.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
    
  8. Повторять шаги 2-6 для каждого slave в кластере

  9. Выбрать активный master

  10. Перевести активный 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 nodes
    
    node0.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
    
  11. Повторить шаги для 2-6 для старого master, который теперь стал slave или остановлен. После этого весь кластер будет работать на новой версии Ред Базы Данных:

    cookctl nodes
    
    node0.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
    
  12. Если необходимо, перенести master обратно

6.2. Процесс обновления Ред Базы Данных на узле

  1. Сделать бэкап баз данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор

  2. Сделать бэкап файла cluster.yml

  3. Установить необходимую версию Ред Базы Данных

  4. Запретить автозапуск или удалить сервис firebird

    systemd disable firebird
    
  5. Установить владельца и права файлов и каталогов в /opt/RedDatabase

    cookctl fixpermissions firebird
    
  6. Восстановить базы данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор

  7. Восстановить файл cluster.yml

6.3. Процесс отката Ред Базы Данных на узле

  1. Восстановить бэкап баз данных, если версия, с которой выполняется откат предполагает бэкап/рестор

  2. Установить необходимую версию Ред Базы Данных

  3. Запретить автозапуск или удалить сервис firebird

    systemd disable firebird
    
  4. Установить владельца и права файлов и каталогов в /opt/RedDatabase

    cookctl fixpermissions firebird
    
  5. Восстановить базы данных, если версия, на которую необходимо обновиться предполагает бэкап/рестор

  6. Восстановить файл cluster.yml