From 54f48d36cc49471ddd6b2c257f4c928a1214a32b Mon Sep 17 00:00:00 2001 From: Artem Dolgiy Date: Mon, 27 Jan 2025 11:57:56 +0300 Subject: [PATCH] mod --- mysql.md | 69 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/mysql.md b/mysql.md index 9202449..3abae22 100644 --- a/mysql.md +++ b/mysql.md @@ -11,11 +11,12 @@ - [Создание таблицы в базе данных](#создание-таблицы-в-базе-данных) - [Добавление записей в таблицу](#добавление-записей-в-таблицу) - [Выборка из таблицы](#выборка-из-таблицы) - - [Репликация - mysqldump](#репликация---mysqldump) + - [Репликация - общие настройки](#репликация---общие-настройки) - [Пользователь для выполнения задач репликации](#пользователь-для-выполнения-задач-репликации) - - [Настройка мастера для репликации mysqldump](#настройка-мастера-для-репликации-mysqldump) + - [Настройка мастера для репликации](#настройка-мастера-для-репликации) + - [Настройка слейва для репликации](#настройка-слейва-для-репликации) + - [Репликация средствами mysqldump](#репликация-средствами-mysqldump) - [Дамп БД средствами mysqldump](#дамп-бд-средствами-mysqldump) - - [Настройка слейва для репликации средствами mysqldump](#настройка-слейва-для-репликации-средствами-mysqldump) - [Настройка репликации mysqldump](#настройка-репликации-mysqldump) - [Запуск воспроизведения журнала ретрансляции, и проверка статуса репликации mysqldump](#запуск-воспроизведения-журнала-ретрансляции-и-проверка-статуса-репликации-mysqldump) - [Проверка репликации mysqldump](#проверка-репликации-mysqldump) @@ -124,7 +125,9 @@ INSERT admin_table(name, surname, city) VALUES ('Artem', 'Dolgiy', 'Zelenograd') SELECT * FROM admin_table; ``` -## Репликация - mysqldump +## Репликация - общие настройки + +Эти настройки выполняются вне зависимости от выбранного способа репликации ### Пользователь для выполнения задач репликации @@ -173,7 +176,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]` необходимо добавить следующие параметры: @@ -205,31 +208,7 @@ SHOW BINARY LOG STATUS; - - -### Дамп БД средствами mysqldump - -Для того, чтобы начать репликацию данных, необходимо “подтянуть” слейв до состояния мастера. Для этого, нужно временно заблокировать сам мастер, чтобы сделать слепок актуальных данных. - -```shell -FLUSH TABLES WITH READ LOCK; -``` - -Далее, с помощью mysqldump сделать экспорт данных из базы. - -```shell -mysqldump -u root -p sape_test_db > sape_test_db.db -``` - -После этого, необходимо еще раз выполнить команду `SHOW BINARY LOG STATUS;`, и запомнить или записать значения File и Position. Это, так называемые координаты двоичного журнала. Именно от них далее будет указано стартовать слейву. - -Теперь мастер можно разблокировать. - -```shell -UNLOCK TABLES; -``` - -Мастер настроен, и готов реплицироваться на другие сервера. - -### Настройка слейва для репликации средствами mysqldump +### Настройка слейва для репликации В первую очередь на слейв необходимо загрузить дамп, полученный с мастера @@ -263,6 +242,32 @@ read_only = 1 # переводим слейв в режим “только ч systemctl restart mysql.service ``` +## Репликация средствами mysqldump + +### Дамп БД средствами mysqldump + +Для того, чтобы начать репликацию данных, необходимо “подтянуть” слейв до состояния мастера. Для этого, нужно временно заблокировать сам мастер, чтобы сделать слепок актуальных данных. + +```shell +FLUSH TABLES WITH READ LOCK; +``` + +Далее, с помощью mysqldump сделать экспорт данных из базы. + +```shell +mysqldump -u root -p sape_test_db > sape_test_db.db +``` + +После этого, необходимо еще раз выполнить команду `SHOW BINARY LOG STATUS;`, и запомнить или записать значения File и Position. Это, так называемые координаты двоичного журнала. Именно от них далее будет указано стартовать слейву. + +Теперь мастер можно разблокировать. + +```shell +UNLOCK TABLES; +``` + +Мастер настроен, и готов реплицироваться на другие сервера. + ### Настройка репликации mysqldump Необходимо указать слейву, какой сервер будет являться для него мастером, и откуда начинать реплицировать данные. Вместо `MASTER_LOG_FILE` и `MASTER_LOG_POS` необходимо подставить значения, полученные из `SHOW BINARY LOG STATUS;` на мастере. Эти параметры вместе называются координатами двоичного журнала. @@ -476,6 +481,10 @@ xtrabackup version 8.4.0-2 based on MySQL server 8.4.0 Linux (x86_64) (revision ### Настройка репликации xtrabackup +Аналогично + + + https://docs.percona.com/percona-xtrabackup/8.4/set-up-replication.html