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

16.3.2. Используя Репликацию с Различными Основными и Ведомыми Механизмами Хранения

Не имеет значения для процесса репликации, вводят ли исходная таблица на ведущем устройстве и тиражированная таблица на ведомом использовании различный механизм. Фактически, default_storage_engine и storage_engine системные переменные не тиражируются.

Это предоставляет много преимуществ в процессе репликации, в котором можно использовать в своих интересах различные типы механизма для различных сценариев репликации. Например, в типичном сценарии масштаба (см. Раздел 16.3.3, "Используя Репликацию для Масштаба"), Вы хотите использовать InnoDB таблицы на ведущем устройстве, чтобы использовать в своих интересах транзакционную функциональность, но использование MyISAM на ведомых устройствах, где поддержка транзакции не требуется, потому что данные только читаются. При использовании репликации в среде регистрации данных можно хотеть использовать Archive механизм хранения на ведомом устройстве.

Конфигурирование различных механизмов на ведущем устройстве и ведомом устройстве зависит от того, как Вы устанавливаете начальный процесс репликации:

Если Вы уже выполняете решение для репликации и хотите преобразовать Ваши существующие таблицы в другой тип механизма, следовать за этими шагами:

  1. Мешайте ведомому устройству выполнить обновления репликации:

    mysql> STOP SLAVE;

    Это позволит Вам изменить типы механизма без прерываний.

  2. Выполнитесь ALTER TABLE ... ENGINE='engine_type' для каждой таблицы, которая будет изменена.

  3. Запустите ведомый процесс репликации снова:

    mysql> START SLAVE;

Хотя default_storage_engine переменная не тиражируется, знать это CREATE TABLE и ALTER TABLE операторы, которые включают спецификацию механизма, будут правильно тиражированы в ведомое устройство. Например, если у Вас есть таблица CSV, и Вы выполняетесь:

mysql> ALTER TABLE csvtable
        Engine='MyISAM';

Вышеупомянутый оператор будет тиражирован в ведомое устройство, и тип механизма на ведомом устройстве будет преобразован в MyISAM, даже если Вы ранее изменили табличный тип на ведомом устройстве механизма кроме CSV. Если Вы хотите сохранить различия в механизме на ведущем устройстве и ведомом устройстве, следует делать все возможное использовать default_storage_engine переменная на ведущем устройстве, составляя новую таблицу. Например, вместо:

mysql> CREATE TABLE tablea (columna int)
        Engine=MyISAM;

Используйте этот формат:

mysql> SET
        default_storage_engine=MyISAM;mysql> CREATE TABLE tablea
        (columna int);

Когда тиражировано, default_storage_engine переменная будет проигнорирована, и CREATE TABLE оператор выполнится на ведомом устройстве, используя механизм значения по умолчанию ведомого устройства.