Назад | Перейти на главную страницу

Постоянный tmpdir MySQL на ведомом устройстве: использовать только tmpdir или slave_load_tmpdir?

При настройке реплицированной базы данных MySQL я посмотрел руководство по tmpdir и был несколько сбит с толку насчет двух переменных. tmpdir и slave_load_tmpdir. Я знаю, что ведомому устройству нужны постоянные данные между перезапусками, но я не уверен, что только установка slave_load_tmpdir достаточно, или если оба должны быть установлены в постоянный каталог:

Около tmpdir, в руководстве говорится:

Каталог, используемый для временных файлов и временных таблиц. [...]

Если сервер MySQL действует как подчиненный сервер репликации, вы не должны устанавливать tmpdir так, чтобы он указывал на каталог в файловой системе на основе памяти или на каталог, который очищается при перезапуске хоста сервера. Подчиненному устройству репликации нужны некоторые из его временных файлов, чтобы выжить после перезапуска компьютера, чтобы он мог реплицировать временные таблицы или операции LOAD DATA INFILE. Если файлы в каталоге временных файлов теряются при перезапуске сервера, репликация завершается ошибкой. Вы можете установить временный каталог подчиненного устройства, используя переменную slave_load_tmpdir. В этом случае ведомое устройство не будет использовать общее значение tmpdir, и вы можете установить tmpdir в непостоянное местоположение.

Около slave_load_tmpdir, в руководстве говорится:

Имя каталога, в котором ведомое устройство создает временные файлы. По умолчанию эта опция равна значению системной переменной tmpdir. Когда подчиненный поток SQL реплицирует оператор LOAD DATA INFILE, он извлекает загружаемый файл из журнала реле во временные файлы, а затем загружает их в таблицу. [...]

Каталог, указанный этой опцией, должен находиться в файловой системе на диске (а не в файловой системе на основе памяти), потому что временные файлы, используемые для репликации LOAD DATA INFILE, должны выдерживать перезагрузку машины. Каталог также не должен очищаться операционной системой в процессе запуска системы.

Таким образом, ведомому устройству требуется постоянный временный каталог для «репликации временных таблиц или операций ЗАГРУЗКИ ДАННЫХ INFILE», но slave_load_tmpdir ничего не говорит о временных таблицах, только LOAD DATA INFILE (также отражено в его названии). С другой стороны, в руководстве говорится, что если slave_load_tmpdir настойчивый, tmpdir может находиться в непостоянном месте. Кто-нибудь знает об этом?