1) master my.cnf(my.ini )
3) master
4) master
Этот ключ обычно включен по умолчанию и его можно не вводить, но если мы не знаем, кто и как изменил настройки утилиты дампа, можем ключать его явно
=========================================
Есть также вариант не запоминать позицию в бинарном логе и в ручную не блокировать таблицы
Мы можем сделать дамп с ключем --master-data , он блокирует таблицы на запись
на время деланья дампа, а также добавляет в дамп команду для слейва
сохранения имени файла бинарного лога и позиции в нем, так это запишется в слейв при заливке дампа
Если база жирная, то тогда придется делать снимок сырых файлов.
5) master
Пусть мастер дальше живет нормальной жизнью, все его изменения реплика может подгрузить попозже, главное нам есть от чего оттолкнуться и мы запомнили эту позицию
6) slave
Теперь нужно настроить реплику, где искать мастера, а также с какой позиции в бинарних логах начинать обеспечивать целосность(последний шаг не нужен если мы взяли дамп с помщью mysqldump --master-data)
Существует три варианта формата бинарных логов(для мастера и наверно для логов репилики тоже mysqld-relay-bin.000003):
1) statement-based replication (SBR)
2) row-based replication (RBR)
3) mixed-format logging
Первый в виде скуель, поэтому удобен для чтения человеком.
Второй меньше по размеру - быстрее передается и занимает меньше места на диске.
Этот вид позволяет переключаться от одного у другому в режиме реального времени, в зависимости от событий.
============================================
7) slave
начать процес реплицирования
8) slave
Узнать состояние репликации
[mysqld] log-bin=mysql-bin server-id=1 innodb_flush_log_at_trx_commit=1 sync_binlog=1 # skip-networking # bind-address = 127.0.0.1 # разрешаем конектиться не только с локального хоста
service mysql restart2) slave my.cnf(my.ini ):
[mysqld] server-id=2
3) master
mysql> CREATE USER 'repl'@'54.194.86.12' IDENTIFIED BY '123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'54.194.86.12' IDENTIFIED BY '123456'; use repltest; FLUSH TABLES WITH READ LOCK; # блокируем на запись таблицы, чтобы обеспечить целосность данных между слейвом и мастером SHOW MASTER STATUS; # позволяет увидеть поточный файл бинарного лога и позицию курсора в нем - эти данные нужно запомнить, чтобы ввести на слейве, чтобы он понимали с какого места начать синхронизацию +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000004 | 1241 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) # теперь важно, не закрывать этот шел, ведь тогда блокировка таблиц будет отпущена # и наконецто мы можем сделать дамп с мастера
4) master
mysqldump -uroot -p****** --opt repltestdb > dump.sql--opt включает: --add-drop-table, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick, и --set-charset
Этот ключ обычно включен по умолчанию и его можно не вводить, но если мы не знаем, кто и как изменил настройки утилиты дампа, можем ключать его явно
=========================================
Есть также вариант не запоминать позицию в бинарном логе и в ручную не блокировать таблицы
Мы можем сделать дамп с ключем --master-data , он блокирует таблицы на запись
на время деланья дампа, а также добавляет в дамп команду для слейва
сохранения имени файла бинарного лога и позиции в нем, так это запишется в слейв при заливке дампа
mysqldump -uroot -p****** --master-data repltestdb > dump.sql==============================================
Если база жирная, то тогда придется делать снимок сырых файлов.
5) master
Пусть мастер дальше живет нормальной жизнью, все его изменения реплика может подгрузить попозже, главное нам есть от чего оттолкнуться и мы запомнили эту позицию
UNLOCK TABLES; quit;
6) slave
Теперь нужно настроить реплику, где искать мастера, а также с какой позиции в бинарних логах начинать обеспечивать целосность(последний шаг не нужен если мы взяли дамп с помщью mysqldump --master-data)
CHANGE MASTER TO
MASTER_HOST='54.194.97.98',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_CONNECT_RETRY=60,# in seconds
MASTER_LOG_FILE='mysql-bin.000004',# не нужно если дамп из --master-data
MASTER_LOG_POS=1241;# не нужно если дамп из --master-data
============================================Существует три варианта формата бинарных логов(для мастера и наверно для логов репилики тоже mysqld-relay-bin.000003):
1) statement-based replication (SBR)
2) row-based replication (RBR)
3) mixed-format logging
Первый в виде скуель, поэтому удобен для чтения человеком.
Второй меньше по размеру - быстрее передается и занимает меньше места на диске.
Этот вид позволяет переключаться от одного у другому в режиме реального времени, в зависимости от событий.
============================================
7) slave
начать процес реплицирования
START SLAVE;
8) slave
Узнать состояние репликации
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 54.194.97.98
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000005
Read_Master_Log_Pos: 963
Relay_Log_File: mysqld-relay-bin.000004
Relay_Log_Pos: 1109
Relay_Master_Log_File: mysql-bin.000005
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: 963
Relay_Log_Space: 1309
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)
Комментариев нет:
Отправить комментарий