В данном разделе описана процедура, которую нужно выполнить в случае возникновения ошибок репликации.
Пример восстановления данных на ecss2 на основе ecss1:
Не закрывайте соединения с мастер-базой. При закрытии соединения отключится режим только чтения, перейдет в режим чтения и запись.
Открыть еще одну shell сессию к этому же серверу.
Выполнить из нового окна следующую команду, для дампа необходимых данных:
на ecss1 в другом окне
sudo mysqldump --verbose --single-transaction --quote-names --complete-insert --extended-insert --routines --events --triggers -uroot -proot --opt --databases ecss_audit ecss_address_book ecss_calls_db ecss_statistics ecss_subscribers history_db web_conf > ecss1.mysql.dump
CODE
Снять режим чтения командой:
на ecss1
ecss1-mysql> UNLOCK TABLES;
CODE
Скопировать файл ecss1.mysql.dump на ecss2. После этого зайти в mysql ecss2 и выполнить команду:
на ecss2
sudo mysql-ecss2> STOP SLAVE;
CODE
Далее в shell ecss2 выполнить команду (может выполняться длительное время):
на ecss2 в другом окне
sudo mysql -uroot -p < ecss1.mysql.dump
CODE
Далее на слейве удалить все журналы от мастера и начать репликацию с момента, когда на мастере был сделан дамп:
Убедиться в том, что параметры Slave_IO_Running и Slave_SQL_Running установлены в значение Yes. Далее в mysql ecss2 выполнить:
Если после RESET SLAVE выдается ошибка, что relay-файл не найден, необходимо удалить все relay-файлы на этом хосте (sudo rm /var/lib/mysql/slave-mysql-relay-bin.*). Затем повторить RESET SLAVE.
Продолжаем на SLAVE:
Запомнить FILE и POSITION, в mysql ecss1 выполнить:
Убедиться в том, что параметры Slave_IO_Running и Slave_SQL_Running имеют значение Yes. Снять LOCK на ecss2 и запустить репликацию: