我有两个PowerDNS服务器,并configuration区域logging本地存储在mariaDB。 什么是同步这两个数据库的最佳方法?
注意 :
我想扩展这个以后使用5台服务器。 目前,数据将被添加到DNS服务器1,只会从DNS服务器1复制到DNS服务器2.如果我有更多的DNS服务器,我希望如果DNS服务器1出现故障,则在DNS服务器2上创build的内容会提供DNS服务器3等,当DNS 1再次启动时,它将与DNS服务器2同步。
还有一个表不会被同步:那就是PowerDNS用来存储服务器IP地址的表格等等。
我的服务器只能在本地访问mariaDB,所以远程计算机访问mariaDB它将不得不ssh隧道。
既然你问这个SF而不是数据库,我会给你一个不复制数据库的答案。
你想复制一个DNS 。
官方的意思是要么是一个对等的DNS或辅助DNS,可能会被提升为主要的。
在任何情况下,您的主要DNS必须推动对同行/次要的变化。
这是在第7层上的DNS协议完成的。所以不需要复制数据库。
你可以试试percona xtraDB
我实际上使用它来从一个开放的xchange服务器同步数据库
https://www.percona.com/software/mysql-database/percona-xtradb-cluster
使用mariadb复制。 不要过度想办法。 “MySQL [mariadb]复制已经被certificate是非常健壮和适用的,即使是跨互联网的严重对等ISP之间的连接,其他PowerDNS用户使用Oracle复制,也很好。 https://doc.powerdns.com/md/authoritative/modes-of-operation/
查看答案和search问题之后,最简单的方法是用rsync创build一个mariaDB集群
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]" ....