diff --git a/mysql.md b/mysql.md index b2ef182..4eb64dc 100644 --- a/mysql.md +++ b/mysql.md @@ -13,13 +13,15 @@ - [Выборка из таблицы](#выборка-из-таблицы) - [Репликация - mysqldump](#репликация---mysqldump) - [Пользователь для выполнения задач репликации](#пользователь-для-выполнения-задач-репликации) - - [Настройка мастера для репликации](#настройка-мастера-для-репликации) - - [Дамп БД](#дамп-бд) - - [Настройка слейва](#настройка-слейва) - - [Настройка репликации](#настройка-репликации) - - [Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации](#запуск-воспроизведения-журнала-ретрансляции-и-проверка-статуса-репликации) - - [Проверка репликации](#проверка-репликации) + - [Настройка мастера для репликации mysqldump](#настройка-мастера-для-репликации-mysqldump) + - [Дамп БД средствами mysqldump](#дамп-бд-средствами-mysqldump) + - [Настройка слейва для репликации средствами mysqldump](#настройка-слейва-для-репликации-средствами-mysqldump) + - [Настройка репликации mysqldump](#настройка-репликации-mysqldump) + - [Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации mysqldump](#запуск-воспроизведения-журнала-ретрансляции-и-проверка-статуса-репликации-mysqldump) + - [Проверка репликации mysqldump](#проверка-репликации-mysqldump) - [Репликация - Percona XtraBackup](#репликация---percona-xtrabackup) + - [Установка Percona XtraBackup](#установка-percona-xtrabackup) + - [Настройка репликации xtrabackup](#настройка-репликации-xtrabackup) ## Установка сервера MySQL 8 в Debian 12 @@ -171,7 +173,7 @@ GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` -### Настройка мастера для репликации +### Настройка мастера для репликации mysqldump В файл `/etc/mysql/my.cnf` (или в `/etc/mysql/mysql.conf.d/mysqld.cnf`, в зависимости от настроек) в секции `[mysqld]` необходимо добавить следующие параметры: @@ -203,7 +205,7 @@ SHOW BINARY LOG STATUS; - - -### Дамп БД +### Дамп БД средствами mysqldump Для того, чтобы начать репликацию данных, необходимо “подтянуть” слейв до состояния мастера. Для этого, нужно временно заблокировать сам мастер, чтобы сделать слепок актуальных данных. @@ -227,7 +229,7 @@ UNLOCK TABLES; Мастер настроен, и готов реплицироваться на другие сервера. -### Настройка слейва +### Настройка слейва для репликации средствами mysqldump В первую очередь на слейв необходимо загрузить дамп, полученный с мастера @@ -261,7 +263,7 @@ read_only = 1 # переводим слейв в режим “только ч systemctl restart mysql.service ``` -### Настройка репликации +### Настройка репликации mysqldump Необходимо указать слейву, какой сервер будет являться для него мастером, и откуда начинать реплицировать данные. Вместо `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...` -### Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации +### Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации mysqldump ```shell start replica; @@ -355,7 +357,7 @@ Source_SSL_Verify_Server_Cert: No `Seconds_Behind_Source` — отставание слейва от мастера, в секундах. `Last_IO_Error`, `Last_SQL_Error` — ошибки репликации, если они есть. -### Проверка репликации +### Проверка репликации mysqldump На мастере добавить данные и убедиться, что они появились на слейве @@ -400,6 +402,8 @@ mysql> select * from admin_table; ## Репликация - Percona XtraBackup +### Установка Percona XtraBackup + Установка согласно [документации](https://docs.percona.com/percona-xtrabackup/8.4/installation.html) Стоит иметь ввиду, что версии 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 ``` -- после установки репозитория необходимо обновить индекс пакетов +общие репозитории 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 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