Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Рассмотрим восстановление репликации, с помощью утилиты Percona Xtrabackup.
Данный метод не требует остановки MASTER-сервера, единственное условие, чтобы была включена запись бинарных логов.

1) Установим утилиту Xtrabackup:

root@vagrant-ubuntu-trusty-64-test1111:~# apt install percona-xtrabackup

2) Подготовим данные для копирования, скопируем файлы БД.

Для этого: создадим директорию куда будем копировать и выполним копирование файлов:

root@vagrant-ubuntu-trusty-64-test1111:~/mysql# innobackupex --user=root --password=root /home/vagrant/mysql/

В нашем созданном каталоге, появится каталог с текущей датой.

3) После создания резервной копии данные не готовы к восстановлению, в логах, которые нужно восстановить, могут быть отмененные транзакции.
Нужно применить лог изменений на файл данных:

root@vagrant-ubuntu-trusty-64-test1111:~/mysql# innobackupex --user=root --password=root --apply-log /home/vagrant/mysql/2018-10-03_08-07-34/

Резервная копия готова, далее нужно скопировать файлы данных на SLAVE-сервер

4) На slave-сервере: скопируем данные в каталог mysql, предварительно остановив mysql:

root@vagrant-ubuntu-trusty-64-test4444:~/mysql# service mysql stop
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# mv /var/lib/mysql /var/lib/mysql.old
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# cp /home/vagrant/mysql/2018-10-03_08-07-34/ /var/lib/mysql
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# chown -R mysql:mysql /var/lib/mysql
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# service mysql start

5)Заходим в консоль mysql и настраиваем репликацию на SLAVE-сервере, предварительно выяснив позицию и название бинарного лога:

root@vagrant-ubuntu-trusty-64-test4444:~/mysql# cat /home/vagrant/mysql/2018-10-03_08-07-34/xtrabackup_binlog_info
mysql-bin.002454    9311320
mysql>  STOP SLAVE;
mysql>  CHANGE MASTER TO MASTER_HOST='<ip_server1>', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.002454', MASTER_LOG_POS=9311320;
mysql>  START SLAVE;

Проверяем, что репликация работает:

mysql> SHOW SLAVE STATUS\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: <ip_server1>
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.002455
          Read_Master_Log_Pos: 89717415
               Relay_Log_File: mysqld-relay-bin.000004
                Relay_Log_Pos: 89717561
        Relay_Master_Log_File: mysql-bin.002455
             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:
  • Нет меток