Суббота
20-04-2024
05:05
Главная страница
Каталог статей
Информист Приветствую Вас Гость | RSS
Регистрация
Вход
Меню сайта

Категории каталога
MySQL [8]
PostgreSQL [2]

Наш опрос
Что Вы веберете
Всего ответов: 230

Копилка
Если вам понравился наш сайт или вы нашли полезную информацию, то у вас есть возможность отблагодарить администрацию.

Начало » Статьи » СУБД » MySQL

3. Настройка репликации

3. Настройка репликации

Шаг 1. Устанавливаем MySQL на два сервера:
    Master 1/Slave 2 ip: 192.168.16.4
   Master 2/Slave 1 ip : 192.168.16.5 
 Шаг 2. Содержимое my.cnf сервера Master 1,  являющегося ведущим по умолчанию:
    [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   old_passwords=1
 
  log-bin
   binlog-do-db=<database name>  # input the database which should be  replicated
   binlog-ignore-db=mysql            # input the database that should be ignored for replication
   binlog-ignore-db=test
 
   server-id=1
 
   [mysql.server]
   user=mysql
   basedir=/var/lib
  
   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid
 
Шаг 3. На сервере Master 1, создаем аккакнт для slave сервера (затем перезапускаем mysql):
 mysql> grant replication slave on *.* to 'replication'@192.168.10.5 \
identified by 'slave';
 
Шаг 4. Содержимое my.cnf сервера Master 2,  являющегося ведомым по умолчанию (slave):
   [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   old_passwords=1
 
   server-id=2
 
   master-host = 192.168.16.4
   master-user = replication
   master-password = slave
   master-port = 3306
 
   [mysql.server]
   user=mysql
   basedir=/var/lib
 
   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid
  
Шаг 5. Активируем ведомый сервер:
   mysql> start slave;
   mysql> show slave status\G;
 
В отображенных параметрах поля Slave_IO_Running и  Slave_SQL_Running должны содержать "YES".
 
Шаг 6. На сервере Master 1 проверяем статус бинарного лога:
 mysql> show master status;
+------------------------+----------+--------------+------------------+
| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------------+----------+--------------+------------------+
|MysqlMYSQL01-bin.000008 |      410 | adam         |                  |
+------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
Сценарий master-slave реализован, переходим к настройке master-master.
 
Шаг 7. На сервере Master2/Slave 1 редактируем my.cnf:
   [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
   # Default to using old password format for compatibility with mysql 3.x
   # clients (those using the mysqlclient10 compatibility package).
   old_passwords=1
   server-id=2
 
   master-host = 192.168.16.4
   master-user = replication
   master-password = slave
   master-port = 3306
 
   log-bin     #information for becoming master added
   binlog-do-db=adam
 
   [mysql.server]
   user=mysql
   basedir=/var/lib
 
   [mysqld_safe]
   err-log=/var/log/mysqld.log
   pid-file=/var/run/mysqld/mysqld.pid
  
Шаг 8. Создаем slave аккаунт на Master 2 для Master 1:
    mysql> grant replication slave on *.* to 'replication'@192.168.16.4 identified by 'slave2';
 
 Шаг 9.  Редактируем my.cnf на сервере Master 1, определив, что он является slave для Master 2:
    [mysqld]
   datadir=/var/lib/mysql
   socket=/var/lib/mysql/mysql.sock
 
   # Default to using old password format for compatibility with mysql 3.x
   # clients (those using the mysqlclient10 compatibility package).
   old_passwords=1
  
   log-bin
   binlog-do-db=adam
   binlog-ignore-db=mysql
   binlog-ignore-db=test
 
   server-id=1
   #information for becoming slave.
   master-host = 192.168.16.5
   master-user = replication
   master-password = slave2
   master-port = 3306
 
   [mysql.server]user=mysqlbasedir=/var/lib 
 
 Шаг 10. Перезапускаем оба MySQL сервера. Для Master 1 выполняем
    mysql> start slave;
 Для Master 2: 
    mysql > show master status;
 Для Master 1:
 mysql> show slave status\G;
 
В отображенных параметрах поля Slave_IO_Running и  Slave_SQL_Running должны содержать "YES".

(http://www.opennet.ru/tips/info/1205.shtml)

 

Если при запущенных серверах изменился адрес мастера, то на слейве можно внести изменения следующей командой:

 mysql>stop slave; 

mysql>reset slave;

mysql>\q

/bin/bash>service mysqld restart (не факт, что нормально перезапуститься, возможно потребуется убить и заново запустить)

/bin/bash>mysql -uroot -p

mysql>stop slave;

mysql>CHANGE master TO

------->master_host = 'master_host',

------->master_user = 'user'.

------->master_password = 'password',

------->master_log_file = 'log_file',

------->master_log_pos = log_pos;

mysql>start slave;

mysql>show slave status\G;

 

выполнять данную команду можно не со всеми параметрами, можно, например, изменить только адрес сервера или только имя бинарного журнала и т.д.

Тут master_host — хост или ip главного (master) сервера с которого мы делаем репликацию. user и password — имя пользователя, которого мы завели специально для репликаций и его пароль. log_file и log_pos — имя текущего журнального файла на главном сервере и смещение от начала файла, эти поля мы получили выше с главного (master) сервера.

Категория: MySQL | Добавил: Judge (19-10-2009)
Просмотров: 1212 | Рейтинг: 0.0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Поиск по каталогу
Яндекс


Поиск по Информисту

Наша кнопка


Друзья сайта

Статистика


Copyright MyCorp © 2006Сайт создан в системе uCoz