Heim  >  Artikel  >  Datenbank  >  Einführung in den Prozess zur Implementierung der Dual-Master-Synchronisation von Teiltabellen in MySQL5.7

Einführung in den Prozess zur Implementierung der Dual-Master-Synchronisation von Teiltabellen in MySQL5.7

黄舟
黄舟Original
2017-09-05 13:31:311491Durchsuche

Dieser Artikel stellt Ihnen hauptsächlich die relevanten Informationen zur Implementierung einiger Tabellen der Dual-Master-Synchronisierung in MySQL 5.7 vor. Der Artikel stellt sie ausführlich anhand von Beispielcode vor. Es hat einen gewissen Referenz-Lernwert, den jeder lernen oder verwenden kann MySQL. Freunde, die es brauchen. Lasst uns mit dem Editor unten lernen.

Vorwort

Aufgrund des firmeneigenen Geschäfts ist eine bidirektionale Datensynchronisierung in Echtzeit für einige Tabellen erforderlich . Und die Ausfallzeit einer der Datenbanken hat keine Auswirkungen auf die andere Datenbank. Zeichnen Sie hier Ihre eigene technische Recherche auf, um sie später bei der Rekonstruktion zu verwenden. Im Folgenden gibt es nicht viel zu sagen. Werfen wir einen Blick auf die ausführliche Einführung.

Installieren Sie MySQL5.7

Es wird empfohlen, direkt auf die offizielle Website zu gehen und die Yum-Quelle herunterzuladen, um sie schließlich zu installieren ist sicher und einfach zu installieren.


wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-server
# 安装MySQL5.7
systemctl start mysqld
# 启动MySQL

Dual-Master konfigurieren

my.cnf-Konfiguration

Hier ist nur eine einfache Anleitung Bei der Dual-Master-Konfiguration gibt es keine Optimierung in Bezug auf die Datenbank. Wenn eine Optimierung erforderlich ist, können Sie privat chatten.

Die Konfiguration von MySQL1 ist wie folgt


[mysqld]
vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip_name_resolve=ON
#设置简单密码
validate_password_policy=0
validate_password_length=1
###主配置
log_bin=bin_log
server-id=1
binlog-do-db=ziyun
# 允许从复制的哪一个库
slave_parallel_type='logical_clock'
#设置复制类型为 LOGICAL_CLOCK
slave_parallel_workers=4
#设置并行数量为 4
###从配置
relay-log=relay-bin
relay-log-index=relay-bin.index
replicate-do-db=ziyun
# 允许复制主服务的库
replicate-do-table=ziyun.test1
# 允许复制主服务的库的哪一张表
replicate-do-table=ziyun.test2

Die Konfiguration von MySQL2 ist im Grunde die gleiche wie oben, außer dass eine server-id=2 wird geändert und die anderen bleiben unverändert.

MySQL-Befehlskonfiguration

Die folgenden werden alle in der SQL-Befehlszeilenschnittstelle konfiguriert

Hauptkonfiguration:


mysql> CREATE USER 'slave'@'192.168.1.100' IDENTIFIED BY '123.com'; 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.100';
# 授权复制的用户和密码
mysql> show master status;
+-----------------+----------+--------------+------------------+-------------------+
| File   | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| bin_log.000002 |  8384 | ziyun  |     |     |
+-----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

Slave-Konfiguration:


mysql> CHANGE MASTER TO
 -> MASTER_HOST='192.168.1.101',
 -> MASTER_USER='slave',
 -> MASTER_LOG_FILE='bin_log.000002',
 -> MASTER_LOG_POS=8384;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> show slave status\G
   Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
# 确定以上都为yes,并且无任何报错即可

Die gleiche Konfiguration kann sein gemacht auf MySQL2

Dual-Master-Synchronisationstest


Hier habe ich zuvor auf beiden Seiten eine Ziyun-Datenbank erstellt und die Tabelle test1 test2 test3 erstellt . Die Testergebnisse lauten wie folgt:

Zusammenfassung

Das obige ist der detaillierte Inhalt vonEinführung in den Prozess zur Implementierung der Dual-Master-Synchronisation von Teiltabellen in MySQL5.7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn