Spec-Zone .ru
спецификации, руководства, описания, API

14.2.9.6. Используя InnoDB memcached Плагин с Репликацией

Поскольку InnoDB плагин демона memcached поддерживает двоичный журнал MySQL, любые обновления, сделанные на главном сервере через интерфейс memcached, могут быть тиражированы для резервного копирования, балансируя интенсивные рабочие нагрузки чтения, и высокую доступность. Все memcached команды поддерживаются для binlogging.

Вы не должны установить InnoDB плагин memcached на ведомых серверах. В этой конфигурации основное преимущество увеличивается пропускная способность записи на ведущем устройстве. На скорость механизма репликации не влияют.

Следующие разделы показывают, как использовать binlog возможность, чтобы использовать InnoDB плагин memcached наряду с репликацией MySQL. Это предполагает, что Вы уже сделали основную установку, описанную в Разделе 14.2.9.3, "Начиная с InnoDB Плагин Memcached".

Включите InnoDB Двоичный Журнал Memcached с innodb_api_enable_binlog:

Тест с memcached интерфейсом telnet:

Чтобы протестировать сервер с вышеупомянутой установкой репликации, мы используем memcached интерфейс telnet, и также запрашиваем основные и ведомые серверы, используя SQL, чтобы проверить результаты.

В нашей конфигурации устанавливают SQL, одну таблицу в качестве примера demo_test создается в test база данных для использования memcached. Мы будем использовать эту таблицу значения по умолчанию для демонстраций:

В главном сервере можно видеть, что строка вставляется. c1 карты к ключу, c2 карты к значению, c3 флаг, c4 cas значение, и c5 истечение.

mysql> select * from test.demo_test;
c1 c2 c3 c4 c5
test1 t1 10 2 0
1 row in set (0.00 sec)

В ведомом сервере Вы будете видеть, что та же самая запись вставляется репликацией:

mysql> select * from test.demo_test;
c1 c2 c3 c4 c5
test1 t1 10 2 0
1 row in set (0.00 sec)
Connected to 127.0.0.1.Escape character is '^]'.set test1 10 0 3newSTORED

От ведомого сервера обновление тиражируется (заметьте cas оцените также обновленный):

mysql> select * from test.demo_test;
c1 c2 c3 c4 c5
test1 новый 10 3 0
1 row in set (0.00 sec)
Connected to 127.0.0.1.Escape character is '^]'.delete test1DELETED

Когда удаление тиражируется в ведомое устройство, запись на ведомом устройстве также удаляется:

mysql> select * from test.demo_test;Empty set (0.00 sec)

Во-первых, вставьте две записи telnetting к главному серверу:

Connected to 127.0.0.1.Escape character is '^]'set test2 10 0 5againSTOREDset test3 10 0 6again1STORED

В ведомом сервере подтвердите, что эти две записи тиражируются:

mysql> select * from test.demo_test;
c1 c2 c3 c4 c5
test2 снова 10 5 0
test3 again1 10 6 0
2 rows in set (0.00 sec)

Вызвать flush_all в telnet взаимодействуют через интерфейс, чтобы усечь таблицу:

Connected to 127.0.0.1.Escape character is '^]'.flush_allOK

Затем проверьте, что работа усечения тиражируется в ведомый сервер:

mysql> select * from test.demo_test;Empty set (0.00 sec)

Все memcached команды поддерживаются с точки зрения репликации.

Примечания для InnoDB Memcached Binlog:

Формат Binlog:

Транзакции: