Предыдущая версия справа и слева Предыдущая версия | |
deployment:install:transfer:database:replication [13-08-2024 11:44] – [Перенастройка нового сервера] Ермилов Егор Павлович | deployment:install:transfer:database:replication [13-08-2024 11:48] (текущий) – [Перенастройка нового сервера] Ермилов Егор Павлович |
---|
Для начала требуется остановить сервер | Для начала требуется остановить сервер |
| |
''sudo service mysql stop '' | <code bash> |
| sudo service mysql stop |
| |
| </code> |
| |
Далее требуется изменить конфигурацию сервер | Далее требуется изменить конфигурацию сервер |
| |
'' cd /etc/mysql '''' nano my.cnf #или mcedit my.cnf '' | <code bash> |
| cd /etc/mysql nano my.cnf |
| #или |
| mcedit my.cnf |
| |
| </code> |
| |
Внесите данную конфигурацию в конец файла | Внесите данную конфигурацию в конец файла |
| |
'' [mysqld] server_id = 2 log_bin = /var/lib/mysql/mysql-bin.log binlog_do_db = medis_archive binlog_do_db = medis_db #... Укажите все базы данных на сервере относящиеся к MGERM. В конце инструкции есть скрипт для получения списка binlog_do_db = medis_users auto_increment_offset = 2 auto_increment_increment = 2 relay-log = /var/log/mysql/mysql-relay-bin.log '' | <code ini> |
| [mysqld] |
| server_id = 2 |
| log_bin = /var/lib/mysql/mysql-bin.log |
| binlog_do_db = medis_archive |
| binlog_do_db = medis_db |
| #Укажите все базы данных на сервере относящиеся к MGERM. В конце инструкции есть скрипт для получения списка |
| binlog_do_db = medis_users |
| auto_increment_offset = 2 |
| auto_increment_increment = 2 |
| relay-log = /var/log/mysql/mysql-relay-bin.log |
| |
| </code> |
| |
Перезапустите сервер | Перезапустите сервер |
| |
'' sudo service mysql start '' | <code bash> |
| sudo service mysql start |
| |
| </code> |
| |
Разверните созданный бекап на новом сервере согласно [[:deployment:install:transfer:database:single|инструкции]]. Выполняем только блок "[[:deployment:install:transfer:database:single#работа_на_новом_сервере|Работа на новом сервере]]". | Разверните созданный бекап на новом сервере согласно [[:deployment:install:transfer:database:single|инструкции]]. Выполняем только блок "[[:deployment:install:transfer:database:single#работа_на_новом_сервере|Работа на новом сервере]]". |
Создаем фиксированный туннель для подключения | Создаем фиксированный туннель для подключения |
| |
'' ssh -L6565:127.0.0.1:3306 -f -N -p< old_server_port> < old_server_user>@< old_server_host> '' | <code bash> |
| ssh -L6565:127.0.0.1:3306 -f -N -p<old_server_port> <old_server_user>@<old_server_host> |
| |
| </code> |
| |
Подключаемся к mysql | Подключаемся к mysql |
| |
'' mysql -u< mysql_user> -p '' | <code bash> |
| mysql -u<mysql_user> -p |
| |
| </code> |
| |
Введите следующий скрипт в поле ввода | Введите следующий скрипт в поле ввода |
| |
'' CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_PORT = 6565, SOURCE_USER='replica_user', SOURCE_PASSWORD='replica_user_password', SOURCE_LOG_FILE='mysql-bin.001002', SOURCE_LOG_POS=336396; '' | <code sql> |
| CHANGE REPLICATION SOURCE TO |
| SOURCE_HOST='127.0.0.1', |
| SOURCE_PORT = 6565, |
| SOURCE_USER='replica_user', |
| SOURCE_PASSWORD='replica_user_password', |
| SOURCE_LOG_FILE='mysql-bin.001002', |
| SOURCE_LOG_POS=336396; |
| |
| </code> |
| |
<WRAP center round important 60%>Внимание! Параметры SOURCE_PORT, SOURCE_LOG_FILE и SOURCE_LOG_POS должны быть указаны в соответвии с предыдущими действиями! | <WRAP center round important 60%>Внимание! Параметры SOURCE_PORT, SOURCE_LOG_FILE и SOURCE_LOG_POS должны быть указаны в соответвии с предыдущими действиями! |
Запускаем репликацию | Запускаем репликацию |
| |
'' mysql> START REPLICA; mysql> SHOW REPLICA STATUS\G; '' | <code bash> |
| mysql> START REPLICA; |
| mysql> SHOW REPLICA STATUS\G; |
| |
| </code> |
| |
Если все прошло удачно, то репликация начнется. Для проверки, можно создать произвольную строку в произвольной таблице любой базы данных на старом сервере и посмотреть, появится ли она на новом сервере. Если строка не появится, то была допущена ошибка при создании реплики или существует другая проблема. Гугл в помощь :( | Если все прошло удачно, то репликация начнется. Для проверки, можно создать произвольную строку в произвольной таблице любой базы данных на старом сервере и посмотреть, появится ли она на новом сервере. Если строка не появится, то была допущена ошибка при создании реплики или существует другая проблема. Гугл в помощь :( |