Репликация наложит на Вас ограничения:
- БД на сервере будет Read Only
- Если вы что-то не так сделаете на локальной базе, то изменения улетят в удаленную, будете восстанавливать.
- Может потребоваться дополнять эти таблицы, а удаление записей на мастере, повлечет удаление записей на реплике.
1. Выгружайте каждую таблицу. Есть 2 способа, если у Вас есть права выгружать результаты запросов в файл и если их нет.
Первый:
https://mariadb.com/kb/en/library/select-into-outfile/SELECT * INTO OUTFILE '/path/to/file.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tablename
WHERE ID > N;
Второй способ выгрузить таблицу:
mysql -h host -u user -p password -e "SELECT * FROM tablename WHERE ID > N;" > /path/to/file.txt
2. Подключаетесь к серверу по ssh, или устанавливаете
ssh туннель:
ssh user@example.com -L 3306:127.0.0.1:3306 -N
3. Загружаете каждую таблицу с помощью
mysqlimport:
mysqlimport -h host -u user -p password target_database /path/to/file.txt
При этом, в случае конфликта записей вы получите соответствующие предупреждения. По окончании загрузки у Вас будет видна статистика: сколько записей загружено успешно, сколько ошибочно.
В целом вот такой вариант я использовал для накопления статистических таблиц с посещениями сайта на 1c-bitrix, в отдельной локальной БД, т.к. housekeeping записей был настроен на хостинге раз в 30 дней, а статистика для анализа требовалась более чем за полгода. Главное в этом методе -
наличие ID поля, по которому можно идентифицировать позицию, а также договоренность о том, что ID остается неизменным.