Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

для этого скачаем deb пакет percona-release для установки репозитория Percona

Блок кода
languagebash
themeRDark
root@vagrant-ubuntu-trusty-64-test1111:~# apt wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb

установим deb пакет , который пропишет репозиторий Percona

Блок кода
languagebash
themeRDark
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb

затем обновим данные о доступных пакетах

Блок кода
languagebash
themeRDark
sudo apt update

и установим саму утилиту

Блок кода
languagebash
themeRDark
sudo apt install percona-xtrabackup-24

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

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

Блок кода
languagebash
themeRDark
root@vagrant-ubuntu-trusty-64-test1111:~/mysql# rm -r mysql 2> /dev/null; mkdir mysql

запустим копирование

Блок кода
languagebash
themeRDark
sudo innobackupex --user=root --password=root ~/mysql/

...

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

Блок кода
languagebash
themeRDark
root@vagrant-ubuntu-trusty-64-test1111:~/mysql#sudo innobackupex --user=root --password=root --apply-log ~/mysql/2018-10-03_08-07-34*/

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

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

Блок кода
languagebash
themeRDark
root@vagrant-ubuntu-trusty-64-test4444:~/mysql#sudo service mysql stop
root@vagrant-ubuntu-trusty-64-test4444:~/mysql#sudo mv /var/lib/mysql /var/lib/mysql.old
root@vagrant-ubuntu-trusty-64-test4444:~/mysql#sudo cp -r ~/mysql/2018-10-03_08-07-34*/ /var/lib/mysql
root@vagrant-ubuntu-trusty-64-test4444:~/mysql#sudo chown -R mysql:mysql /var/lib/mysql
root@vagrant-ubuntu-trusty-64-test4444:~/mysql#sudo service mysql start

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

Блок кода
languagebash
themeRDark
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# cat ~/mysql/2018-10-03_08-07-34*/xtrabackup_binlog_info

mysql-bin.002454    9311320

Заходим в СУБД mysql

Блок кода
languagebash
themeRDark
sudo mysql -uroot -proot

Останавливаем репликацию, корректируем MASTER_LOG_FILE и MASTER_LOG_POS, запускаем репликацию

Блок кода
languagesql
themeRDark
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;

Проверяем, Далее выводим актуальную информацию о состоянии базы данного сервера

Блок кода
languagesql
themeRDark
mysql> SHOW MASTER STATUS\G;
*************************** 1. row ***************************
             File: mysql-bin.000080
         Position: 240225
     Binlog_Do_DB: eltex_alert,eltex_ems,wireless,radius,eltex_auth_service,ELTEX_PORTAL,eltex_doors,eltex_ngw
 Binlog_Ignore_DB: mysql,Syslog,performance_schema,information_schema
Executed_Gtid_Set:
1 row in set (0.00 sec)

Затем останавливаем репликацию, корректируем MASTER_LOG_FILE и MASTER_LOG_POS, запускаем репликацию на первом сервере. Взяв данные из актуальной информации о состоянии базы восстанавливаемого сервера

Блок кода
languagebash
themeRDark
sudo mysql -uroot -proot


Блок кода
languagesql
themeRDark
mysql>  STOP SLAVE;
mysql>  CHANGE MASTER TO MASTER_HOST='<ip_server2>', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000080', MASTER_LOG_POS=240225;
mysql>  START SLAVE;

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

Блок кода
languagesql
themeRDark
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:

...