1 |
Server1 - 192.168.1.110 centos641vz110.kama.dnsalias.com - первый сервер |
1 |
Server2 - 192.168.1.111 centos641vz111.kama.dnsalias.com - второй сервер. |
Второй сервер — зеркало первого, который должен реплицировать все с первого, а также передавать ему свои изменения.
Просматриваем все файлы, установленные пакетом Percona-Server
1 |
# rpm -ql Percona-Server-server-55-5.5.34-rel32.0.591.rhel6.i686 | less |
Копируем конфиг соответствующий Вашим аппаратным ресурсам
1 |
# cp /usr/share/doc/Percona-Server-server-55-5.5.34/my-large.cnf /etc/my.cnf |
1 |
# mkdir /var/log/mysql |
1 |
# chown -R mysql:mysql /var/log/mysql/ |
Настраиваем репликацию на первом сервере
1.Настраиваем Mysql на первом сервере
1 |
# nano /etc/my.cnf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
pid_file = /var/lib/mysql/centos641vz110.kama.dnsalias.com.pid log_error = /var/log/mysql/centos641vz110.kama.dnsalias.com.err log-bin=/var/log/mysql/centos641vz110-bin.log log-bin-index=/var/log/mysql/centos641vz110-bin.index binlog_format=mixed auto_increment_offset = 1 auto_increment_increment = 2 server-id = 1 relay-log = /var/log/mysql/centos641vz110-relay-bin relay-log-index = /var/log/mysql/centos641vz110-relay-bin.index log-slave-updates = 1 |
Логи смотрим
1 |
# tail -f /var/log/mysql/centos641vz110.kama.dnsalias.com.err |
Перезапускаем MySQL-севрер
1 |
# /etc/init.d/mysql restart |
2.Наделяем пользователя replicauser подключающегося со второго сервера(192.168.1.111) с паролем replicapassword правом читать информацию из двоичных журналов первого сервера
1 |
# mysql -u root -p123456789 |
1 |
mysql> grant replication slave on *.* to 'replicauser'@'192.168.1.111' identified by 'replicapassword'; |
1 |
mysql> flush privileges; |
3.Блокируем все таблицы на запись на первом сервере
1 |
mysql> flush tables with read lock; |
4.Определяем бинарный файл и смещение в нем(позицию), с которой второй сервер начнет репликацию
1 |
mysql> show master status; |
1 2 3 4 5 |
+---------------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------------------+----------+--------------+------------------+ | centos641vz110-bin.000001 | 107 | | | +---------------------------+----------+--------------+------------------+ |
5.Делаем дамп всех баз данных
Важно!!!В ДРУГОМ ТЕРМИНАЛЕ(иначе блокировка таблиц снимется автоматически при завершении сеанса Mysql)
1 |
# mysqldump -uroot -p123456789 --all-databases --events > all.sql |
6.Снимаем блокировку на запись с таблиц
1 |
mysql> unlock tables; |
7.Копируем полученный дамп на второй сервер
1 |
# scp /root/all.sql 192.168.1.111:/root/ |
8.Разворачиваем дамп на втором сервере
1 |
# mysql -u root -p123456789 < /root/all.sql |
Настраиваем репликацию на втором сервере.
9.Копируем конфигурационный файл MySQL my.cnf с первого сервера на второй сервер
1 |
# scp /etc/my.cnf 192.168.1.111:/etc/ |
10. Настраиваем Mysql на втором сервере
1 |
# nano /etc/my.cnf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[mysqld] log-bin=/var/log/mysql/centos641vz111-bin.log log-bin-index=/var/log/mysql/centos641vz111-bin.index binlog_format=mixed auto_increment_offset = 2 auto_increment_increment = 2 server-id = 2 relay-log = /var/log/mysql/centos641vz111-relay-bin relay-log-index = /var/log/mysql/centos641vz111-relay-bin.index log-slave-updates = 1 |
Логи смотрим
1 |
# tail -f /var/log/mysql/centos641vz111.kama.dnsalias.com.err |
11.Перезапускаем MySQL на втором сервере.
1 |
# /etc/init.d/mysql restart |
12.Блокируем таблицы на запись на втором сервере.
1 |
mysql> flush tables with read lock; |
В этом же сеансе определяем файл и позицию, с которой будет стартовать репликация на первом сервере
1 |
mysql> show master status; |
1 2 3 4 5 |
+---------------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +---------------------------+----------+--------------+------------------+ | centos641vz111-bin.000004 | 107 | | | +---------------------------+----------+--------------+------------------+ |
13.Снимаем блокировку на запись с таблиц
1 |
mysql> unlock tables; |
14. Наделяем пользователя replicauser подключающегося с первого сервера(192.168.1.110) с паролем replicapassword правом читать информацию из двоичных журналов второго сервера.
1 |
# mysql -u root -p123456789 |
1 |
mysql> grant replication slave on *.* to 'replicauser'@'192.168.1.110' identified by 'replicapassword'; |
1 |
mysql> flush privileges; |
Запускаем репликацию на первом сервере
15.Определяем параметры для подключения первого сервера ко второму
1 |
# mysql -u root -p123456789 |
1 2 3 4 5 6 7 |
mysql> change master to -> master_host='192.168.1.111', -> master_user='replicauser', -> master_password='replicapassword', -> master_log_file='centos641vz111-bin.000004', -> master_log_pos=107; |
16. Запуск репликации на первом сервере
1 |
mysql> start slave; |
17.Проверяем состояние репликации на первом сервере
1 |
mysql> show slave status\G |
Запускаем репликацию на втором сервере.
18. Определяем параметры для подключения второго сервера к первому
1 |
# mysql -u root -p123456789 |
1 2 3 4 5 6 7 |
mysql> change master to -> master_host='192.168.1.110', -> master_user='replicauser', -> master_password='replicapassword', -> master_log_file='centos641vz110-bin.000001', -> master_log_pos=107; |
19.Запуск репликации на втором сервере
1 |
mysql> start slave; |
20.Проверка состояния репликации на втором сервере.
1 |
mysql> show slave status\G |
Источник: