Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Настраиваем MASTER-SLAVE репликацию на MySQL сервере

Читайте также:
  1. Несколько MySQL серверов на одной WINDOWS машине
  2. Пример реализации репликации в MYSQL

 

1. Завершите работу MySQL на головном сервере (пусть это будет сервер, который слушает порт 3306):

 

mysqladmin -u root shutdown

 

2. В my.ini на головном сервере добавьте записи к разделу [mysqld] записи log-bin и server-id=уникальный номер к разделу [mysqld] и перезапустите сервер.

Очень важно, чтобы ID подчиненного сервера отличался от ID головного сервера.

Можно считать, что server-id играет роль IP-адреса - он уникально идентифицирует сервер среди участников репликации:

 

[mysqld]

log-bin=C:/data_2/log/master-log.bin

server-id=1

 

Чтобы MySQL корректно запустился папка C:/data_2/log/ уже должна быть создана.

 

3. Перезапустите MySQL на головном сервере командой:

 

C:\ws\mysql\bin\mysqld --defaults-file=C:\ws\mysql\my.ini

 

Если в пути к mysqld присутствуют пробелы (например, MySQL установлен в папке Program Files), то тогда путь к my.ini записывается в двойных кавычках:

 

mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.5\my.ini"

 

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

 

cd C:\Program Files\MySQL\MySQL Server 5.5\bin

 

4. Чтобы проверить что репликация работает нужно запустить команды:

 

mysql -u root

 

Появится приглашение для ввода:

 

mysql>

 

После этого нужно выполнить команду:

 

show master status \G

 

В результате на экране появится:

 

*************************** 1. row ***************************

File: home-a719be1647-bin.000001

Position: 107

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.03 sec)

 

5. Добавьте в my2.ini (C:\ws\mysql\my2.ini) на подчиненном сервере следующий фрагмент:

 

# некоторое уникальное число между 2 и 2^32-1 для текущего сервера

server-id=2

 

Значения server-id должны быть различными на каждом сервере, участвующем в репликации.

Если значение server-id не определено, оно будет установлено в 1, если также не определено значение master-host, оно будет установлено в 2. Обратите внимание, что если значение server-id опущено, то головной сервер будет отказывать в соединении всем подчиненным серверам, а подчиненный сервер - отказывать в соединении головному серверу.

Таким образом, опускать установку значения server-id можно лишь в случае резервного копирования с использованием двоичного журнала.

 

6. Коннектимся к MySQL SLAVE серверу (выполнить в консоли WINDOWS):

 

mysql -u root -P 3308

 

И после этого запускаем команду:

 

CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='root', MASTER_PASSWORD='', MASTER_LOG_FILE='master-log.000001', MASTER_LOG_POS=1546;

 

Если после запуска этой команды появилась ошибка:

 

ERROR 1198 (HY000): This operation cannot be performed with a running slave; run: STOP SLAVE first

 

Это значит необходимо выполнить команду «STOP SLAVE» (без кавычек) и опять запустить команду CHANGE MASTER.

И перезапускаем SLAVE:

 

START SLAVE;

 

При этом значения MASTER_LOG_FILE и MASTER_LOG_POS должны быть взяты из команды show master status \G (см. описание выше в пункте 4) которая возвращает текущее название двоичного лога и его позиции на стороне мастера.

 

7. Проверяем работу SLAVE сервера:

 

mysql> show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 127.0.0.1

Master_User: root

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-log.000001

Read_Master_Log_Pos: 2128

Relay_Log_File: home-a719be1647-relay-bin.000002

Relay_Log_Pos: 836

Relay_Master_Log_File: master-log.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 2128

Relay_Log_Space: 1002

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

 

 

Если получаем вот такую таблицу, значит все хорошо, если в первой строке отличная от "Waiting for master to send event" значит что-то пошло не так. Все, master-slave репликация настроена и готова к работе.

 

ВАРИАНТ ЗАДАНИЯ И ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

 

Используя методику, описанную в приложении, создать простой HTTP + MySQL сервер и реализовать репликацию. Вариант таблицы, кол-во SLAVE серверов и номера портов для SLAVE серверов приведены в таблице ниже:

 

Название таблицы Кол-во SLAVE серверов Номера портов SLAVE серверов
  articles (id, title, price)   3307 3308
  blogs (id, title, posts_count)   3310 3311 3312
  cities (id, title, short_code)   3308 3309
  countries (id, title, area)   3311 3312 3313
  feedbacks (id, title, body, email)   3307 3308
  news (id, title, body, created)   3310 3311 3312
  parameters (id, code, value)   3308 3309
  sessions (id, created, expired)   3311 3312 3313
  transactions (id, amount, created)   3307 3308
  users (id, first_name, last_name, email)   3310 3311 3312

 

Содержание отчета

 

Отчет должен содержать следующие пункты:

- постановка задачи;

- тексты программ с комментариями;

- состояния MASTER и SLAVE серверов до и после запуска NODE JS программы.

- выводы.

 

Контрольные вопросы

 

1. Что такое репликация?

2. Какие виды репликации существуют?

 


Дата добавления: 2015-10-02; просмотров: 141 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Несколько MySQL серверов на одной WINDOWS машине| Пример реализации репликации в MYSQL

mybiblioteka.su - 2015-2024 год. (0.014 сек.)