Мне нужны три сервера баз данных MariaDB, один главный и два "ведомых". Я хочу иметь возможность читать и писать на каждом сервере и реплицировать это на другие серверы. Я прочитал в интернете, что это называется "репликация master-master".
Теперь я не хочу открывать никаких портов на моем 'реальном' главном сервере, а только на двух 'ведомых' экземплярах. Возможно ли, чтобы 'реальный мастер' открыл сокеты, так что мне не придется открывать порты для входящего трафика на первом сервере?
Редактировать: У меня есть несколько баз данных на «главном» сервере, и я хочу реплицировать на «подчиненные» только некоторые из них.
решение1
записать на каждый сервер и скопировать это на другие серверы
Для этого нужна "круговая" репликация между всеми 3 серверами. Я делаюнетрекомендую. Если один сервер выйдет из строя, то синхронизировать их снова будет кошмаром.
С другой стороны, кластеризация Galera (доступная в MariaDB) предоставляет это как стандарт и заботится о повторной синхронизации. Я настоятельно рекомендую отказаться от того, что вы начали, и настроить Galera.
Что касается брандмауэров, туннелирования, обратного SSH и т. д., вы не предоставили достаточно информации о системах. (Обратите внимание, что реплики «подтягивают» данные из первичной системы, а не наоборот.) В случае Galera необходимо открыть несколько портов на всех серверах.