up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
CPUPerlFreeBSDCentOSDebianLinuxRAMBenchmarkMySQLPHPHDDHTMLSSDBash

Популярные статьи
Категория “Администрирование

Репликация MySQL Master-Master

Начнем с того, что это? Репликация MySQL master-master используется для распределения нагрузки на базу данных между несколькими серверами в целях слижения нагрузки на один MySQL-сервер. Репликация Master-Slave более популярна, но Master-Master также имеет применения, например, при использовании кластера Nginx, когда все сервера равноценны.

Чтобы настроить Master-Master репликацию нам придется настраивать по сути две Master-Slave репликации, чтобы вязь была двусторонней, - каждый сервер будет мастером и слейвом одноврменно.

Допустим, имеются сервера:

  1. Master 1 IP 1.1.1.1
  2. Master 2 IP 2.2.2.2

 

Настраиваем Master 1

Правим my.cnf

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log

replicate-ignore-db = mysql
replicate-ignore-db = information_schema
# binlog_do_db = example

bind-address = 1.1.1.1

server-id - номер сервера

replicate-ignore-db - базы, которые игнорируются. Можно вместо этого параметра можно использовать обратное значение, binlog_do_db, - база, которая резервируется.

bind-address - IP-адрес сервера.

 

Перезапускаем MySQL-сервер

service mysql restart

 

Создаем пользователя для репликации

CREATE USER mirror@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO mirror@'%';

 

Статус master-сервера

SHOW MASTER STATUS;

show master status

И запоминаем данные.

 

Настраиваем Master 2

Правим my.cnf

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log

replicate-ignore-db = mysql
replicate-ignore-db = information_schema
# binlog_do_db = example

bind-address = 2.2.2.2

Перезапускаем MySQL-сервер

service mysql restart

 

Создаем пользователя для репликации на Master 2

CREATE USER mirror@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO mirror@'%';

 

Включаем репликацию на Master 2

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST = '1.1.1.1', MASTER_USER = 'mirror', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000016', MASTER_LOG_POS = 120;
START SLAVE;

 

Статус сервера Master 2

SHOW MASTER STATUS;

show master 2 status

И запоминаем данные.

 

Включаем репликацию на Master 1

STOP SLAVE;
CHANGE MASTER TO MASTER_HOST = '2.2.2.2', MASTER_USER = 'mirror', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.000013', MASTER_LOG_POS = 413;
START SLAVE;

 

Вот и все!

Sunday, 18 January 2015, 00:37Прочитано 33 раза
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134