Установка MySQL Slave с большим количеством баз данных

Я обычно обращаюсь к этому с коротким сценарием обертки крона:

#!/bin/bash
[ -r $HOME/.bashrc ] && . $HOME/.bashrc
[ -r $HOME/.profile ] && . $HOME/.profile
exec "$@"

Затем просто снабдите префиксом команду в crontab с Вашей оберткой:

* * * * 1-5 ~/scripts/cron-wrapper ~/scripts/myscript.sh
* * * * 1-5 ~/scripts/cron-wrapper ~/scripts/myotherscript.sh

Некоторые версии крона позволяют Вам устанавливать переменные непосредственно в crontab. К сожалению, я не добираюсь для использования тех, которые на работе.

1
задан 2 June 2011 в 15:54
2 ответа

Я создал сценарий удара, который инкрементно выводит базы данных от ведущего устройства и загружает их в ведомое устройство при отслеживании replicate_do_db.

Domas Mituzas спасибо для этого сообщения, которое позволило мне обновлять replicate_do_db на лету. Я также вытягиваю master_log_file, и master_log_pos от выведенного sql для издания ЗАПУСКАЮТ ВЕДОМОЕ УСТРОЙСТВО ДО и ВЫБИРАЮТ MASTER_POS_WAIT для загрузки данных в корректной точке.

Более позднее Редактирование: Для этого для работы, поскольку ожидаемая ПОСТРОЧНАЯ РЕПЛИКАЦИЯ - необходимость.

0
ответ дан 4 December 2019 в 10:25

Является Вашей базой данных MySQL просто InnoDB, или это также включает MyISAM? Если это - InnoDB, можно использовать mysqldump с опцией "-единственной транзакцией - основные данные" для получения надежного дампа для ведомого устройства репликации.

Если у Вас есть MyISAM, к сожалению, для получения надежного дампа, он должен заблокировать - все-транзакции на сервере, пока целое резервное копирование не завершено.. и то время зависит от комбинации размера базы данных в ГБ и количестве общего количества строк.

0
ответ дан 4 December 2019 в 10:25

Теги

Похожие вопросы