...
1) Установим утилиту Xtrabackup:
для этого скачаем deb пакет percona-release для установки репозитория Percona
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~# wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb |
установим deb пакет , который пропишет репозиторий Percona
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~# sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb |
затем обновим данные о доступных пакетах
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~# apt update |
и установим саму утилиту
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~# apt install percona-xtrabackup-24 |
2) Подготовим данные для копирования, скопируем файлы БД.:
Для этого: создадим директорию куда будем копировать и выполним копирование файлов:перейдем в данную директорию
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~# mkdir mysql && cd mysql |
запустим копирование
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~/mysql# innobackupex --user=root --password=root ~/mysql/ |
...
3) После создания резервной копии данные не готовы к восстановлению, в логах, которые нужно восстановить, могут быть отмененные транзакции. :
Нужно применить лог изменений на файл данных:
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~/mysql# innobackupex --user=root --password=root --apply-log ~/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 -r ~/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 и настраиваем Yастраиваем репликацию на SLAVE-сервере, предварительно выяснив позицию и название бинарного лога:
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# cat ~/mysql/2018-10-03_08-07-34/xtrabackup_binlog_info
mysql-bin.002454 9311320 |
Заходим в СУБД mysql
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test4444:~/mysql# mysql -uroot -proot |
Останавливаем репликацию, корректируем MASTER_LOG_FILE и MASTER_LOG_POS, запускаем репликацию
Блок кода |
---|
|
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 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, запускаем репликацию на первом сервере. Взяв данные из актуальной информацию о состоянии базы восстанавливаемого сервера
Блок кода |
---|
|
root@vagrant-ubuntu-trusty-64-test1111:~/mysql# mysql -uroot -proot |
Блок кода |
---|
|
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; |
На обоих серверах проверяем, что репликация работает:
Блок кода |
---|
|
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: |
...