ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL双主同步

2019-08-06 12:54:27  阅读:278  来源: 互联网

标签:同步 log MySQL db ignore replicate mysql MASTER 双主


只粘实现的主要步骤,详细步骤见百度

主库A 172.21.25.71

创建一个用于slave和master通信的用户账号
        打开mysql会话shell>mysql -hlocalhost -uname -ppassword
        创建用户并授权:用户:slave密码:slave123456
        mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave123456';#创建用户
        mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';#分配权限
        mysql>flush privileges;   #刷新权限
获得master二进制日志文件名及位置
		查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):
mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000041 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

 

使用master分配的用户账号读取master二进制日志
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.172',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    启用slave服务
        mysql>start slave;
    查看状态
        mysql> show slave status\G;

    主库重启

主库B 172.21.25.72

操作步骤通上

mysql> SHOW MASTER STATUS;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000019 |      741 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

使用master分配的用户账号读取master二进制日志
        mysql> CHANGE MASTER TO
        MASTER_HOST='172.21.25.171',
        MASTER_USER='slave',
        MASTER_PASSWORD='slave123456',
        MASTER_LOG_FILE='mysql-bin.000001',
        MASTER_LOG_POS=979;
    启用slave服务
        mysql>start slave;
    查看状态
        mysql> show slave status\G;

其他配置解释

replicate-do-db 设定需要复制的数据库(多数据库使用逗号,隔开)

replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)

replicate-do-table 设定需要复制的表

replicate-ignore-table 设定需要忽略的复制表

replicate-wild-do-table 同replication-do-table功能一样,但是可以通配符

replicate-wild-ignore-table 同replication-ignore-table功能一样,但是可以加通配符
replicate-wild-do-table=db_name.% 只复制哪个库的哪个表

replicate-wild-ignore-table=mysql.% 忽略哪个库的哪个表


问题处理整理 ====================================
#跳过一个事务
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        

 

附录

配置文件

my-71.cnf

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=1
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 双主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test


# INNODB
innodb_buffer_pool_size=60G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535

my-72.cnf

[client]
socket=/home/mysql/mysql.sock
port=3306

[mysqld]
user=mysql
port=3306
server-id=2
max_connections=2000
datadir=/home/mysql/data
#basedir=/home/mysql
socket=/home/mysql/mysql.sock
pid_file=/home/mysql/mysql.pid
default-storage-engine=INNODB
character_set_server=utf8mb4

# 双主
log-bin=binlog 
log-bin-index=binlog.index
relay_log=relay-log
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
replicate-ignore-db=otter
replicate-ignore-db=hh_position

replicate-do-db=data_center
replicate-do-db=hh_data_center
replicate-do-db=test

# INNODB
innodb_buffer_pool_size=20G
innodb_log_file_size=1G
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_open_files=1000

# MyISAM
key_buffer_size=8M

# logging
log_error ="error.log"
log-output=FILE
general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3

# other
tmp_table_size=32M
open_files_limit=65535

 

标签:同步,log,MySQL,db,ignore,replicate,mysql,MASTER,双主
来源: https://www.cnblogs.com/song-wentao/p/11308184.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有