Данный скрипт, написанный на bash-е, несет собой цель демонстрации алгоритма потабличного восстановления/создания mysql-репликации без даунтайма. В данном конкретном примере подразумевается наличие всех необходимых реквизитов для доступа к master-а и slave-у, а так-же минимальная настройка — наличие учетной записи для репликации на мастере + включенный bin-log. #!/bin/bash MASTER_HOST=’master-mysql.domain’ SLAVE_HOST=’slave-mysql.domain’ DATABASE=’database_name’ echo «[i] сбрасываем slave» mysql -h…
Метка: replication
Восстановление данных с помощью mysqlbinlog из binlog format=row
Эта строчка на bash-е поможет извлечь из binlog все изменения данных для последующего их применения к данной базе: Допустим что логи лежат в /var/lib/mysql/ , тогда mysqlbinlog —verbose /var/lib/mysql/mysqld-bin.[0-9]* | egrep ‘^### ‘ | sed -e ‘s/^### //g’ -e ‘s/^INSERT/;\nINSERT/g’ -e ‘s/^UPDATE/;\nUPDATE/g’ -e ‘s/^DELETE/;\nDELETE/g’ > dump.sql ; echo «;» >> dump.sql выгрузит лог всех операций в…
Репликация mysql: Повышение производительности slave
В большинстве случаев репликация mysql проблем не вызывает, но что делать, если данные master обновляются настолько часто, что slave не успевает за ними? Вероятная причина кроется в алгоритме синхронизации InnoDb Ситуацию исправит innodb_flush_log_at_trx_commit=0 дефолтом значение ключа =1, суть в том , что дефолтом (при значении равном 1) flush и буффер лога реплики сбрасывается на диск…