Spec-Zone.ru › MariaDB

ЗАГРУЗКА ДАННЫХ С МАСТЕР-СЕРВЕРА (удалено)

Синтаксис

LOAD DATA FROM MASTER

Описание

Эта функция была удалена из последних версий MariaDB.

Поскольку текущая реализация LOAD DATA FROM MASTER и LOAD TABLE FROM MASTER очень ограничена, эти операторы устарели в версиях MySQL 4.1 и выше. В будущей версии мы представим более продвинутый метод (называемый "онлайн-бэкап"), который будет совместим с большим количеством движков хранения.

Для MySQL 5.1 и более ранних версий рекомендуемая альтернатива LOAD DATA FROM MASTER или LOAD TABLE FROM MASTER — использование mysqldump или mysqlhotcopy. Последний требует Perl и двух модулей Perl (DBI и DBD:mysql) и работает только с таблицами MyISAM и ARCHIVE. С помощью mysqldump можно создать дампы SQL на мастер-сервере и передать (или скопировать) их в клиент mysql на сервере-следующем. Это преимущество работы со всеми движками хранения, но может быть довольно медленным, так как оно работает с помощью SELECT.

Этот оператор создаёт моментальную копию мастер-сервера и копирует её на сервер-следующий. Он обновляет значения MASTER_LOG_FILE и MASTER_LOG_POS так, чтобы сервер-следующий начал репликацию с правильной позиции. Любые правила исключения таблиц и баз данных, указанные с параметрами --replicate-*-do-* и --replicate-*-ignore-* учитываются. --replicate-rewrite-db не учитывается, так как пользователь может использовать этот параметр для настройки не уникального отображения, такого как --replicate-rewrite-db="db1->db3" и --replicate-rewrite-db="db2->db3", что сбивает с толку сервер-следующий при загрузке таблиц с мастер-сервера.

Использование этого оператора ограничено следующими условиями:

  • Он работает только с таблицами MyISAM. Попытка загрузить таблицу, не являющуюся MyISAM, приводит к следующей ошибке: ERROR 1189 (08S01): Net error reading from master
  • Он приобретает глобальную блокировку чтения на мастер-сервере во время создания моментальной копии, что предотвращает обновления на мастер-сервере во время операции загрузки.

Если вы загружаете большие таблицы, вам может потребоваться увеличить значения net_read_timeout и net_write_timeout на серверах как мастер, так и следующего. См. Системные переменные сервера.

Обратите внимание, что LOAD DATA FROM MASTER не копирует никакие таблицы из базы данных mysql. Это упрощает использование разных пользователей и привилегий на мастер- и сервере-следующем.

Для использования LOAD DATA FROM MASTER, учетная запись репликации, используемая для подключения к мастер-серверу, должна иметь привилегии RELOAD и SUPER на мастер-сервере и привилегию SELECT для всех таблиц мастер-сервера, которые вы хотите загрузить. Все таблицы мастер-сервера, для которых у пользователя нет привилегии SELECT, игнорируются LOAD DATA FROM MASTER. Это потому, что мастер-сервер скрывает их от пользователя: LOAD DATA FROM MASTER вызывает SHOW DATABASES для определения баз данных мастер-сервера для загрузки, но SHOW DATABASES возвращает только базы данных, для которых у пользователя есть какие-либо привилегии. На стороне сервера-следующего пользователь, который выполняет LOAD DATA FROM MASTER, должен иметь привилегии для удаления и создания баз данных и таблиц, которые копируются.

Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительную проверку MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/load-data-from-master-removed/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API