이 글에서는 주로 MySQL 5.7에서 듀얼 마스터 동기화의 일부 테이블 구현에 대한 관련 정보를 소개합니다. 이 글에서는 누구나 mysql을 배우고 사용할 수 있는 특정 참고 학습 가치를 제공합니다. 필요한 친구들은 아래에서 따라하고 배울 수 있습니다.
머리말
최근에 회사 자체 업무로 인해 두 데이터베이스 간의 일부 테이블에 실시간 양방향 데이터 동기화가 필요하며 데이터베이스 중 하나의 가동 중지 시간이 다른 데이터베이스에 영향을 미치지 않는 요구 사항이 발생했습니다. 데이터베이스를 사용하려면 나중에 재구성에 사용할 수 있도록 여기에 기술 연구를 기록하세요. 아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.
MySQL5.7 설치
직접 공식 홈페이지에 가셔서 yum 소스를 다운받아서 설치하시는 걸 추천드리며, 결국 안전하고 설치도 쉽습니다.
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
듀얼 마스터 구성
my.cnf 구성
이는 듀얼 마스터의 간단한 구성일 뿐이며 데이터베이스 관련 최적화가 필요하지 않은 경우 비공개 채팅을 할 수 있습니다.
MySQL1의 구성은 다음과 같습니다
[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
MySQL2의 구성은 기본적으로 위와 동일합니다. 하나만 수정하고server-id=2
나머지는 그대로 유지하세요
MySQL 명령 구성
다음은 모두 구성되어 있습니다 SQL 명령줄 인터페이스
주요 구성:
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)
슬레이브 구성:
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,并且无任何报错即可
MySQL2에서도 같은 방식으로 구성
이중 마스터 동기화 테스트
여기 나는 데이터베이스 이전에 양쪽에 ziyun을 구축하고 test1 test2 test3 테이블을 구축했습니다. 테스트 결과는 다음과 같습니다.
Summary
위 내용은 MySQL5.7에서 부분 테이블의 듀얼 마스터 동기화를 구현하는 방법에 대한 프로세스 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!