Задание 3: Управление узлами кластера
Получение статуса узла
[student@srv1 ~]$ sudo su - postgres
===============================================================
You are connected to Pangolin Cluster (Pobeda)
- Hostname : srv1
- IP Address : <IP-Address1>
---------------------------------------------------------------
- node ( master ) : <IP-Address2>
- node ( replica ) : <IP-Address1>
- arbiter : <IP-Address3>
- Manager version : 2.1.13
- Pangolin version : 6.7.0
===============================================================
Выведите текущий статус узлов:
[postgres@srv1 ~]$ list
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Sync Standby | streaming | 5 | 0 |
| <IP-Address2> | <IP-Address2>:5433 | Leader | running | 5 | |
+---------------+--------------------+--------------+-----------+----+-----------+
Определите, какой узел является лидером с помощью индивидуального запроса:
[postgres@srv1 ~]$ pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml dsn $CLNAME -r leader
host=<IP-Address2> port=5433
Выполните переключение мастера на узел srv2
Проверьте исправность кластера:
[postgres@srv1 ~]$ health
member 54ec0c37709f3054 is healthy: got healthy result from https://<IP-Address1>:2379
member 8c95e735c5b6384c is healthy: got healthy result from https://<IP-Address2>:2379
member c80310d8dc193330 is healthy: got healthy result from https://<IP-Address3>:2379
cluster is healthy
[postgres@srv1 ~]$ pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml switchover --leader <IP-Address2> --candidate <IP-Address1> $CLNAME
Current cluster topology
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Sync Standby | streaming | 5 | 0 |
| <IP-Address2> | <IP-Address2>:5433 | Leader | running | 5 | |
+---------------+--------------------+--------------+-----------+----+-----------+
When should the switchover take place (e.g. 2026-09-09T13:19 ) [now]:
Are you sure you want to switchover cluster Pobeda, demoting current leader <IP-Address2>? [y/N]: y
2026-09-09 12:19:34.17822 Successfully switched over to "<IP-Address1>"
+ Cluster: Pobeda (7683495148262105741) -------+---------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+---------+---------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 5 | |
| <IP-Address2> | <IP-Address2>:5433 | Replica | stopped | | unknown |
+---------------+--------------------+---------+---------+----+-----------+
Подождите несколько секунд и снова запросите статус узлов кластера:
[postgres@srv1 ~]$ list
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 6 | |
| <IP-Address2> | <IP-Address2>:5433 | Sync Standby | streaming | 6 | 0 |
+---------------+--------------------+--------------+-----------+----+-----------+
Перезагрузка узлов
Перезагрузите узлы:
[postgres@srv1 ~]$ pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml reload $CLNAME
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 6 | |
| <IP-Address2> | <IP-Address2>:5433 | Sync Standby | streaming | 6 | 0 |
+---------------+--------------------+--------------+-----------+----+-----------+
Are you sure you want to reload members <IP-Address2>, <IP-Address1>? [y/N]: y
Reload request received for member <IP-Address2> and will be processed within 10 seconds
Reload request received for member <IP-Address1> and will be processed within 10 seconds
Рестарт узлов
Сделайте restart узлов:
[postgres@srv1 ~]$ pangolin-manager-ctl -c /etc/pangolin-manager/postgres.yml restart $CLNAME
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 6 | |
| <IP-Address2> | <IP-Address2>:5433 | Sync Standby | streaming | 6 | 0 |
+---------------+--------------------+--------------+-----------+----+-----------+
When should the restart take place (e.g. 2026-09-09T13:20) [now]:
Are you sure you want to restart members <IP-Address2>, <IP-Address1>? [y/N]: y
Restart if the PostgreSQL version is less than provided (e.g. 9.5.2) []:
Success: restart on member <IP-Address2>
Success: restart on member <IP-Address1>
Получите статус узлов:
[postgres@srv1 ~]$ list
+ Cluster: Pobeda (7683495148262105741) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 6 | |
| <IP-Address2> | <IP-Address2>:5433 | Sync Standby | streaming | 6 | 0 |
+---------------+--------------------+--------------+-----------+----+-----------+
Подведем итоги
Вопрос 1
Вопрос 1: Выполнена команда:
[postgres@srv1 ~]$ list
+ Cluster: Pobeda (7573658613746808767) ------------+-----------+----+-----------+
| Member | Host | Role | State | TL | Lag in MB |
+---------------+--------------------+--------------+-----------+----+-----------+
| <IP-Address1> | <IP-Address1>:5433 | Leader | running | 7 | |
| <IP-Address2> | <IP-Address2>:5433 | Sync Standby | streaming | 7 | 0 |
+---------------+--------------------+--------------+-----------+----+-----------+
На каком узле кластера работает процесс wal sender?
Вопрос 2
Вопрос 2: Какую команду утилиты управления кластером Pangolin следует использовать для запланированной остановки узла кластера?