Spec-Zone .ru
спецификации, руководства, описания, API
|
Не имеет значения для процесса репликации, вводят ли исходная таблица на ведущем устройстве и тиражированная
таблица на ведомом использовании различный механизм. Фактически, default_storage_engine
и storage_engine
системные переменные не тиражируются.
Это предоставляет много преимуществ в процессе репликации, в котором можно использовать в своих интересах
различные типы механизма для различных сценариев репликации. Например, в типичном сценарии масштаба (см. Раздел 16.3.3, "Используя Репликацию для Масштаба"),
Вы хотите использовать InnoDB
таблицы на ведущем устройстве, чтобы использовать в
своих интересах транзакционную функциональность, но использование MyISAM
на ведомых
устройствах, где поддержка транзакции не требуется, потому что данные только читаются. При использовании
репликации в среде регистрации данных можно хотеть использовать Archive
механизм
хранения на ведомом устройстве.
Конфигурирование различных механизмов на ведущем устройстве и ведомом устройстве зависит от того, как Вы устанавливаете начальный процесс репликации:
Если бы Вы использовали mysqldump, чтобы создать снимок базы данных на Вашем ведущем устройстве, то Вы могли бы отредактировать текст файла дампа, чтобы изменить тип механизма, используемый на каждой таблице.
Другая альтернатива для mysqldump должна отключить типы механизма, которые
Вы не хотите использовать на ведомом устройстве перед использованием дампа, чтобы создать данные на
ведомом устройстве. Например, можно добавить --skip-innodb
опция на Вашем ведомом устройстве, чтобы отключить
InnoDB
механизм. Если определенный механизм не будет существовать для
таблицы, которая будет создаваться, то MySQL будет использовать тип механизма значения по умолчанию,
обычно MyISAM
. (Это требует что NO_ENGINE_SUBSTITUTION
Режим SQL не включается.), Если Вы хотите
отключить дополнительные механизмы таким образом, можно хотеть полагать, что создание специального
двоичного файла используется на ведомом устройстве, которое только поддерживает механизмы, которые
Вы хотите.
Если Вы будете использовать файлы необработанных данных (двоичное резервное
копирование), чтобы установить ведомое устройство, то Вы будете неспособны изменить начальный формат
таблицы. Вместо этого используйте ALTER
TABLE
чтобы изменить табличные типы после, ведомое устройство было запущено.
Поскольку новая основная/ведомая репликация устанавливает, где нет в настоящий момент никаких таблиц на ведущем устройстве, избегают определять тип механизма, составляя новые таблицы.
Если Вы уже выполняете решение для репликации и хотите преобразовать Ваши существующие таблицы в другой тип механизма, следовать за этими шагами:
Мешайте ведомому устройству выполнить обновления репликации:
mysql> STOP SLAVE;
Это позволит Вам изменить типы механизма без прерываний.
Выполнитесь ALTER TABLE ... ENGINE='
для каждой таблицы, которая будет
изменена. engine_type
'
Запустите ведомый процесс репликации снова:
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
оператор выполнится на ведомом устройстве, используя механизм
значения по умолчанию ведомого устройства.