17.2.1.5 Инициализация группы
Процесс запуска группы в первый раз называется инициализацией. Для инициализации группы используется системная переменная group_replication_bootstrap_group. Инициализацию должна выполнить только одна серверная установка, которая запускает группу, и только один раз. Именно поэтому значение параметра group_replication_bootstrap_group не сохраняется в файле конфигурации. Если он сохраняется в файле конфигурации, при перезапуске сервера автоматически инициализируется вторая группа с тем же именем. В результате получится две разные группы с одинаковым именем. Та же логика применяется к остановке и перезапуску плагина с этим параметром, установленным в значение ON. Поэтому для безопасной инициализации группы подключитесь к серверу s1 и выполните следующую команду:
mysql> SET GLOBAL group_replication_bootstrap_group=ON;
mysql> START GROUP_REPLICATION;
mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
После того, как команда START GROUP_REPLICATION вернёт результат, группа будет запущена. Вы можете проверить, что группа создана и содержит одного участника:
mysql> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
| group_replication_applier | ce9be252-2b71-11e6-b8f4-00212844f856 | s1 | 3306 | ONLINE |
+---------------------------+--------------------------------------+-------------+-------------+---------------+
Информация в этой таблице подтверждает, что в группе есть участник с уникальным идентификатором ce9be252-2b71-11e6-b8f4-00212844f856, что он ONLINE и находится в режиме s1, прослушивая подключения клиентов на порту 3306.
Для демонстрации того, что сервер действительно находится в группе и может обрабатывать нагрузку, создайте таблицу и добавьте в неё данные.
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL);
mysql> INSERT INTO t1 VALUES (1, 'Luis');
Проверьте содержимое таблицы t1 и бинарного журнала.
mysql> SELECT * FROM t1;
+----+------+
| c1 | c2 |
+----+------+
| 1 | Luis |
+----+------+
mysql> SHOW BINLOG EVENTS;
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
| binlog.000001 | 4 | Format_desc | 1 | 123 | Server ver: 5.7.44-log, Binlog ver: 4 |
| binlog.000001 | 123 | Previous_gtids | 1 | 150 | |
| binlog.000001 | 150 | Gtid | 1 | 211 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:1' |
| binlog.000001 | 211 | Query | 1 | 270 | BEGIN |
| binlog.000001 | 270 | View_change | 1 | 369 | view_id=14724817264259180:1 |
| binlog.000001 | 369 | Query | 1 | 434 | COMMIT |
| binlog.000001 | 434 | Gtid | 1 | 495 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:2' |
| binlog.000001 | 495 | Query | 1 | 585 | CREATE DATABASE test |
| binlog.000001 | 585 | Gtid | 1 | 646 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:3' |
| binlog.000001 | 646 | Query | 1 | 770 | use `test`; CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 TEXT NOT NULL) |
| binlog.000001 | 770 | Gtid | 1 | 831 | SET @@SESSION.GTID_NEXT= 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa:4' |
| binlog.000001 | 831 | Query | 1 | 899 | BEGIN |
| binlog.000001 | 899 | Table_map | 1 | 942 | table_id: 108 (test.t1) |
| binlog.000001 | 942 | Write_rows | 1 | 984 | table_id: 108 flags: STMT_END_F |
| binlog.000001 | 984 | Xid | 1 | 1011 | COMMIT /* xid=38 */ |
+---------------+-----+----------------+-----------+-------------+--------------------------------------------------------------------+
Как видно выше, объекты базы данных и таблицы были созданы, а соответствующие операторы DDL были записаны в бинарный журнал. Кроме того, данные были вставлены в таблицу и записаны в бинарный журнал. Важность записей бинарного журнала проиллюстрирована в следующем разделе, когда группа расширяется и выполняется распределенное восстановление, так как новые члены пытаются догнать и стать активными.
© 2025 Oracle
Licensed under the GPLv2 License.