I have two PowerDNS servers and have configured the zone records to be natively stored in mariaDB. What would be the best way to sync these two databases?
Note :
I would like to scale this to use 5 servers later on. Currently the data would be added to DNS server 1 and would only be copied from DNS server 1 to DNS server 2. If I have more DNS servers, I would like it if DNS server 1 goes down, then content created on DNS server 2 would serve DNS server 3 and so on and when DNS 1 is up again it would sync with DNS server 2.
There is also one table which will not be synced: that is the table that PowerDNS uses to store the server IP address and so on.
My server can only access mariaDB locally so for a remote computer to access mariaDB it would have to ssh tunnel.
Бидејќи ова го прашувате на СФ, а не на базата на податоци ќе ви дадам одговор што не ја повторува базата на податоци.
Сакате да ја реплицирате ] ДНС .
Официјалното средство за тоа е или врснички ДНС или секундарен ДНС што може да се унапреди во основно.
Во секој случај, вашиот главен ДНС треба да ги поттикне промените кон врсникот / секундарниот.
Тоа е направено со DNS протокол на слој 7. Значи, нема потреба да се реплицираат бази на податоци.
Вы можете попробовать percona xtraDB
На самом деле я использую его для синхронизации баз данных с сервера open-xchange
https://www.percona.com/software/mysql-database/percona-xtradb-cluster
Самый простой способ после просмотра ответов и поиска проблемы в Google - создать кластер mariaDB с rsync
Ubuntu 16.04.03 с использованием MariaDB 10.2.8 Шаги установки:
sudo apt-get install curl
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo apt-get update
sudo apt-get install mariadb-server
sudo apt-get install rsync
sudo systemctl start rsync.service
sudo systemctl enable rsync.service
systemctl list-unit-files |grep rsync
на первом узел редактировать / etc / mysql / conf.d / galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="[Cluster name]"
wsrep_cluster_address="gcomm://[node1 ip],[node2 ip]"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="[node1 ip]"
wsrep_node_name="[node1 name]"
Остановить MariaDB и запустить первый узел в кластере
systemctl stop mysql.service
galera_new_cluster
systemctl status mysql.service
mysql -u root -p -e "show status like 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 1 |
+--------------------+-------+
на втором узле отредактировать /etc/mysql/conf.d/galera.cnf
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="[Cluster name]"
wsrep_cluster_address="gcomm://[node1 ip],[node2 ip]"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="[node2 ip]"
wsrep_node_name="[node2 name]"
Остановить MariaDB и запустить второй узел в кластере
systemctl stop mysql.service
systemctl start mysql.service
systemctl status mysql.service
mysql -u root -p -e "show status like 'wsrep_cluster_size'"
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| wsrep_cluster_size | 2 |
+--------------------+-------+
Чтобы добавить больше узлов в кластер, просто отредактируйте /etc/mysql/conf.d/galera.cnf следующим образом:
....
wsrep_cluster_address="gcomm://[node1 ip],[node2 ip],[node3 ip],[node4 ip],[node5 ip]"
....
Использовать репликацию mariadb. Не зацикливайтесь на этом. «Репликация MySQL [mariadb] оказалась очень надежной и хорошо подходящей даже для трансатлантических соединений между провайдерами с плохим пирингом. Другие пользователи PowerDNS используют репликацию Oracle, которая также работает очень хорошо». https://doc.powerdns.com/md/authoritative/modes-of-operation/