一、Mysql多源复制

1、Mysql多源复制的作用和特点  

1)Mysql多源复制作用  

 选择一台从Mysql从多个主节点将数据复制到本地汇总备份

2)特点  

 将多台主Mysql服务器数据汇总到一台从Mysql服务器

 Mysql5.7以后新增加的功能

 方便数据库数据集中化管理和集中化备份

2、主Mysql创建复制账户

1)停止二进制日志 

[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> set sql_log_bin=0;

2)创建主从复制账户 

mysql> create user 'repl'@'192.168.100.%' identified by 'pwd@123';

3)授权主从复制

mysql> grant replication slave on *.* to 'repl'@'192.168.100.%';

4)启动二进制日志

mysql> set sql_log_bin=1;

5)查看主节点状态

mysql> show master status;

3、配置从Mysql多源复制  

1)从Mysql从第一台主Mysql复制数据,复制通道名字master_1

mysql> change master to master_host='192.168.100.10',master_user='repl',master_password='pwd@123',master_log_file='mysql-bin.000002',master_log_pos=463,master_connect_retry=10 for channel 'master_1';

2)从Mysql从第二台主Mysql复制数据,复制通道名字master_2

mysql> change master to master_host='192.168.100.20',master_user='repl',master_password='pwd@123',master_log_file='mysql-bin.000002',master_log_pos=463,	master_connect_retry=10 for channel 'master_2';

3)启动主从复制进程

mysql> start slave;

4)查看主从复制状态 

mysql> show slave status\G;

二、主从复制过滤

1、主从复制过滤的方式

1)配置日志过滤,配置在主Mysql服务器上

 Binlog_Do_DB:允许复制指定数据库的二进制日志

 Binlog_Ignore_DB:不允许复制指定数据库的二进制日志

2)在从mysql数据库节点,配置允许复制指定数据库或者表数据  

 Replicate_Do_DB:允许从数据库复制指定数据库数据

 Replicate_Ignore_DB:不允许从复制指定数据库数据

 Replicate_Do_Table:允许从Mysql复制指定表的数据

 Replicate_Ignore_Table:不允许从Mysql复制指定表的数据

2、配置主从复制过滤  

1)停止主从复制线程

mysql> stop slave sql_thread;

2)配置允许从Mysql数据库复制accp和xsh库数据

mysql> change replication filter Replicate_do_db=(accp,xsh);

3)启动主从复制线程

mysql> start slave sql_thread;

3、配置第二种复制限制修改mysql配置文件  

1)修改mysql的主配置文件

[root@centos03 ~]# vim /etc/my.cnf
[mysqld]
replicate_do_table=student				//允许复制student表数据
replicate_do_ignore_table=student1		//不允许复制student1表中的数据
replicate_do_db=cc						//允许复制cc数据库		
replicate_ignore_db=dd					//不允许复制dd数据库

2)启动Mysql服务

[root@centos01 ~]# systemctl restart mysqld