ЗАГРУЗКА ДАННЫХ С МАСТЕР-СЕРВЕРА (удалено)
Синтаксис
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, должен иметь привилегии для удаления и создания баз данных и таблиц, которые копируются.
© 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/