Большое спасибо! Помогло.
Ниже напиши инструкцию. Надо бы ее в wiki добавить.
________________________________________________________________________________________
Репликация Master-Slave с учетом постоянно активных таблиц auth_now и auth_log. -"это нужно для того что бы от reset master; и до UNLOCK TABLES; не производилось никаких записей в мастер":
ДЕЛАЕМ на МАСТЕР:
Шаг 1: Включаем репликацию на центральном сервере(Master):
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Рас комментируем:
server-id = 1 - цифра должна быть уникальной. На мастере 1, на слейве 2 и т.д.
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = nodeny - указываем БД резерва.можно за комментировать, чтобы резервировать все базы
binlog_do_db = example1 - указываем БД1 резерва.можно за комментировать, чтобы резервировать все базы
bind-address = 217.10.20.1- надо указывать адрес внешнего интерфейса, инача не откроется порт наружу(в интернет)
/etc/init.d/mysql restart
Шаг 2: Права на репликацию
Далее необходимо создать профиль пользователя, из под которого будет происходить репликация. Для этого запускаем консоль:
mysql -u root --password='hardpass'
Далее создаем и назначаем права пользователю для реплики:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
# даем права пользователю slave_user с паролем password
Перезагружаем Мастер БД:
Блокируем изменения в БД:
USE nodeny;
FLUSH TABLES WITH READ LOCK;
Смотрим статус Мастера:
Шаг 3: Дамп базы
Заходим через другую консоль, делаем дамп БД архивируем:
По умолчанию переносится только таблица и структура, для переноса процедур и тригеров надо добавить -R
cd /var/backups &&
mysqldump -R -u root --password='hardpass' nodeny > nodeny.sql &&
tar -czvf nodenyBD_280418.tar.gz nodeny.sql &&
cp nodenyBD_280418.tar.gz /usr/local/nodeny/htdocs/
ДЕЛАЕМ на СЛЕЙВ:
Шаг 4. Настройка Слейва
nano /etc/mysql/mysql.conf.d/mysqld.cnf
Раскоментируем:
server-id = 2 - цыфра должна быть уникальной. На местере 1, на слейве 2 и т.д.
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = nodeny - указываем БД резерва.можно за комментировать, чтобы резервировать все базы
binlog_do_db = example1 - указываем БД1 резерва.можно за комментировать, чтобы резервировать все базы
Шаг 5:
Качаем БД с мастера на слейв и разархивируем:
wget my-sayt.net/htdocs/nodenyBD_280418.tar.gz &&
tar -xvf nodenyBD_280418.tar.gz -C /path/to/folder
Шаг 5.1: Создание базы на слейве
В консоли mysql на Слейве создаем базу с таким же именем, как и на Мастере:
mysql -u root --password='hardpass'
CREATE DATABASE nodeny;
quit;
После этого загружаем дамп (из bash):
mysql -u root --password='hardpass' nodeny < nodeny.sql
Шаг 6. Запуск Слейва
mysql -u root --password='hardpass'
Включаем репликацию на Слейв, указать параметры подключения к мастеру. В консоли mysql на Слейве необходимо выполнить запрос:
CHANGE MASTER TO MASTER_HOST='217.10.20.1',MASTER_USER='slave_user', MASTER_PASSWORD='password';
После этого запускаем репликацию на Слейве:
Осталось:
Возвращаемся в консоль mysql на Мастер:
Разблокируем БД:
______________________________________________________________________
Пометки:
START SLAVE; - запуск слейва
STOP SLAVE; - если надо остановить
SHOW SLAVE STATUS\G - статус репликации
# Должны быть значения Yes в:
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes
иначе смотри какая ошибка.
Ошибку можно пропустить, но лучше этого не делать:
mysql> STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=25037950; START SLAVE;
Где 25037950 номер ошибки.