add percona xtrabckup

master
Artem Dolgiy 2025-01-24 13:31:45 +03:00
parent 97f4954df2
commit fd75c942c6
1 changed files with 57 additions and 14 deletions

View File

@ -13,13 +13,15 @@
- [Выборка из таблицы](#выборка-из-таблицы) - [Выборка из таблицы](#выборка-из-таблицы)
- [Репликация - mysqldump](#репликация---mysqldump) - [Репликация - mysqldump](#репликация---mysqldump)
- [Пользователь для выполнения задач репликации](#пользователь-для-выполнения-задач-репликации) - [Пользователь для выполнения задач репликации](#пользователь-для-выполнения-задач-репликации)
- [Настройка мастера для репликации](#настройка-мастера-для-репликации) - [Настройка мастера для репликации mysqldump](#настройка-мастера-для-репликации-mysqldump)
- [Дамп БД](#дамп-бд) - [Дамп БД средствами mysqldump](#дамп-бд-средствами-mysqldump)
- [Настройка слейва](#настройка-слейва) - [Настройка слейва для репликации средствами mysqldump](#настройка-слейва-для-репликации-средствами-mysqldump)
- [Настройка репликации](#настройка-репликации) - [Настройка репликации mysqldump](#настройка-репликации-mysqldump)
- [Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации](#запуск-воспроизведения-журнала-ретрансляции-и-проверка-статуса-репликации) - [Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации mysqldump](#запуск-воспроизведения-журнала-ретрансляции-и-проверка-статуса-репликации-mysqldump)
- [Проверка репликации](#проверка-репликации) - [Проверка репликации mysqldump](#проверка-репликации-mysqldump)
- [Репликация - Percona XtraBackup](#репликация---percona-xtrabackup) - [Репликация - Percona XtraBackup](#репликация---percona-xtrabackup)
- [Установка Percona XtraBackup](#установка-percona-xtrabackup)
- [Настройка репликации xtrabackup](#настройка-репликации-xtrabackup)
## Установка сервера MySQL 8 в Debian 12 ## Установка сервера MySQL 8 в Debian 12
@ -171,7 +173,7 @@ GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES; FLUSH PRIVILEGES;
``` ```
### Настройка мастера для репликации ### Настройка мастера для репликации mysqldump
В файл `/etc/mysql/my.cnf` (или в `/etc/mysql/mysql.conf.d/mysqld.cnf`, в зависимости от настроек) в секции `[mysqld]` необходимо добавить следующие параметры: В файл `/etc/mysql/my.cnf` (или в `/etc/mysql/mysql.conf.d/mysqld.cnf`, в зависимости от настроек) в секции `[mysqld]` необходимо добавить следующие параметры:
@ -203,7 +205,7 @@ SHOW BINARY LOG STATUS;
- <https://habr.com/ru/articles/532216/> - <https://habr.com/ru/articles/532216/>
- <https://www.k-max.name/linux/replikaciya-mysql-master-slave/> - <https://www.k-max.name/linux/replikaciya-mysql-master-slave/>
### Дамп БД ### Дамп БД средствами mysqldump
Для того, чтобы начать репликацию данных, необходимо “подтянуть” слейв до состояния мастера. Для этого, нужно временно заблокировать сам мастер, чтобы сделать слепок актуальных данных. Для того, чтобы начать репликацию данных, необходимо “подтянуть” слейв до состояния мастера. Для этого, нужно временно заблокировать сам мастер, чтобы сделать слепок актуальных данных.
@ -227,7 +229,7 @@ UNLOCK TABLES;
Мастер настроен, и готов реплицироваться на другие сервера. Мастер настроен, и готов реплицироваться на другие сервера.
### Настройка слейва ### Настройка слейва для репликации средствами mysqldump
В первую очередь на слейв необходимо загрузить дамп, полученный с мастера В первую очередь на слейв необходимо загрузить дамп, полученный с мастера
@ -261,7 +263,7 @@ read_only = 1 # переводим слейв в режим “только ч
systemctl restart mysql.service systemctl restart mysql.service
``` ```
### Настройка репликации ### Настройка репликации mysqldump
Необходимо указать слейву, какой сервер будет являться для него мастером, и откуда начинать реплицировать данные. Вместо `MASTER_LOG_FILE` и `MASTER_LOG_POS` необходимо подставить значения, полученные из `SHOW BINARY LOG STATUS;` на мастере. Эти параметры вместе называются координатами двоичного журнала. Необходимо указать слейву, какой сервер будет являться для него мастером, и откуда начинать реплицировать данные. Вместо `MASTER_LOG_FILE` и `MASTER_LOG_POS` необходимо подставить значения, полученные из `SHOW BINARY LOG STATUS;` на мастере. Эти параметры вместе называются координатами двоичного журнала.
@ -275,7 +277,7 @@ CHANGE REPLICATION SOURCE TO SOURCE_HOST='master', SOURCE_USER='repl_user', SOUR
В более ранних версиях используется команда - `CHANGE MASTER TO...` В более ранних версиях используется команда - `CHANGE MASTER TO...`
### Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации ### Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации mysqldump
```shell ```shell
start replica; start replica;
@ -355,7 +357,7 @@ Source_SSL_Verify_Server_Cert: No
`Seconds_Behind_Source` — отставание слейва от мастера, в секундах. `Seconds_Behind_Source` — отставание слейва от мастера, в секундах.
`Last_IO_Error`, `Last_SQL_Error` — ошибки репликации, если они есть. `Last_IO_Error`, `Last_SQL_Error` — ошибки репликации, если они есть.
### Проверка репликации ### Проверка репликации mysqldump
На мастере добавить данные и убедиться, что они появились на слейве На мастере добавить данные и убедиться, что они появились на слейве
@ -400,6 +402,8 @@ mysql> select * from admin_table;
## Репликация - Percona XtraBackup ## Репликация - Percona XtraBackup
### Установка Percona XtraBackup
Установка согласно [документации](https://docs.percona.com/percona-xtrabackup/8.4/installation.html) Установка согласно [документации](https://docs.percona.com/percona-xtrabackup/8.4/installation.html)
Стоит иметь ввиду, что версии MySQL и Percona XtraBackup должны совпадать, иначе создание резервной копии может завершиться ошибкой или невозможностью восстановления. Стоит иметь ввиду, что версии MySQL и Percona XtraBackup должны совпадать, иначе создание резервной копии может завершиться ошибкой или невозможностью восстановления.
@ -420,14 +424,53 @@ curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
apt install ./percona-release_latest.generic_all.deb apt install ./percona-release_latest.generic_all.deb
``` ```
- после установки репозитория необходимо обновить индекс пакетов общие репозитории percona будут прописаны после установки пакета
```shell
root@mysql-master:~# ls -l /etc/apt/sources.list.d/
total 16
-rw-r--r-- 1 root root 662 Jan 23 18:30 mysql.list
-rw-r--r-- 1 root root 294 Jan 23 18:34 percona-pmm2-client-release.list
-rw-r--r-- 1 root root 280 Jan 23 18:34 percona-prel-release.list
-rw-r--r-- 1 root root 290 Jan 23 18:34 percona-telemetry-release.list
```
- после установки общих репозиториев необходимо обновить индекс пакетов
```shell ```shell
apt update apt update
``` ```
- необходимо указать версию percona, которая будет - далее выбирается конкретный релиз, который будет использоваться
```shell
percona-release enable pxb-84-lts
```
в результате выполнения команды будет добавлен репозиторий выбранного релиза
```shell
root@master:~# ls -l /etc/apt/sources.list.d/
total 20
-rw-r--r-- 1 root root 662 Jan 23 18:30 mysql.list
-rw-r--r-- 1 root root 294 Jan 23 18:34 percona-pmm2-client-release.list
-rw-r--r-- 1 root root 280 Jan 23 18:34 percona-prel-release.list
-rw-r--r-- 1 root root 292 Jan 24 13:20 percona-pxb-84-lts-release.list
-rw-r--r-- 1 root root 290 Jan 23 18:34 percona-telemetry-release.list
```
- установка Percona XtraBackup
```shell
apt update && apt install percona-xtrabackup-84
```
```shell
root@master:~# xtrabackup --version
xtrabackup version 8.4.0-2 based on MySQL server 8.4.0 Linux (x86_64) (revision id: d4373834)
```
### Настройка репликации xtrabackup