mariadb, Восстановление репликации путём полного копирования каталоговОригинальная инструкция: https://mariadb.com/kb/en/mariadb/setting-up-replication/ Грубый метод восстановления репликации, основанный на подмене всех файлов slave-сервера на файлы с master-сервера. Оба сервера в примере на CentOS 7. * * * 1. Останавливаем приложения, обращающиеся к базам 2. На master-сервере MariaDB выводим текущую позицию в bin-логе и сразу останавливаем службу MariaDB. Позицию и имя лога выписываем. # mysql -u root -p -e "show master status;" && systemctl stop mariadb.service 3. На slave-сервере останавливаем службу MariaDB # systemctl stop mariadb.service 4. На slave-сервере можно предварительно посмотреть права на файлы в каталоге MariaDB и выписать эту информацию куда-нибудь # ls -lZ /var/lib/mysql/ 5. На slave-сервере удаляем файлы из каталога MariaDB # rm -rf /var/lib/mysql/* 6. На slave-сервере копируем файлы с master-сервера # scp -r -p root@192.168.0.1:/var/lib/mysql/* /var/lib/mysql/ 7. На slave-сервере удаляем файл с UUID, так как он должен быть уникален # rm /var/lib/mysql/auto.cnf 8. На slave-сервере возвращаем владельца на файлы и каталоги # chown -R mysql.mysql /var/lib/mysql/* 9. На slave-сервере восстанавливаем SELinux-права на файлы и каталоги # restorecon -R -Fvv /var/lib/mysql/* 10. Запускаем на master-сервере службу MariaDB # systemctl start mariadb.service 11. Запускаем slave-сервере службу MariaDB # systemctl start mariadb.service 12. Slave-сервер в sql-консоли настраиваем на master-сервер MASTER_LOG_FILE и MASTER_LOG_POS указываем те, что выписали в пункте №2.
# mysql -u root -p MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='master.domain.com', MASTER_USER='replication_user', MASTER_PASSWORD='bigs3cret', MASTER_PORT=3306, MASTER_LOG_FILE='mariadb-bin.000096', MASTER_LOG_POS=568, MASTER_CONNECT_RETRY=60; 13. Slave-серверу в sql-консоли посылаем команду начать репликацию MariaDB [(none)]> START SLAVE; Готово * * * Проверка На master-сервере sql> SHOW MASTER STATUS \G; На slave-сервере sql> SHOW SLAVE STATUS \G; или sql> SHOW ALL SLAVES STATUS \G; На обоих серверах для проверки состояния Semisynchronous-репликации есть команда sql> SHOW STATUS LIKE 'Rpl_semi_sync%'; 2019-08-20 22:02:56
|