基于GTID主从复制 | 在线增加从服务器 | 过滤规则

基于全局事务标识符复制   |   不复制指定的库和指定的表   |    在线增加从服务器



全局事务标识符(GTID)时一个唯一的标识符,在5.6版本引入,用于取代基于二进制日志复制的传统方式
GTID格式:source_id:transaction_id
GTID查看:可以通过gtid_executed、gtid_purged和gtid_next系统变量查看
GTID生成:由gtid_next控制,默认值AUTOMATIC,即每次提交事务自动生成
GTID持久化:


基于全局事务标识符复制-复制配置
主节点配置
1:启用GTID模式、二进制和配置唯一ID
[mysqld]
gtid_mode=ON
server_id=1
log-bin=mysql-bin
enforce_gtid_consistency=ON


创建复制账户
mysql> create user 'repl'@'%' identified by 'www.c1688.CC';
mysql> grant replication slave,REPLICATION CLIENT on *.* to 'repl'@'%';


可以用一个语句创建和赋予权限
mysql> grant replication slave,REPLICATION CLIENT on *.* to 'repl' identified by 'www.c1688.CC';




2:重启mysql
#systemctl restart mysqld




从节点配置
1:启用GTID模式和配置唯一ID
[mysqld]
gtid_mode=ON
server_id=2
#log-bin=mysql-bin
enforce_gtid_consistency=ON




2:配置复制连接
mysql> change master to master_host='192.168.31.3', master_user='repl',master_password='www.c1688.CC',master_auto_position=1;


3:启动线程
mysql> start slave;


4:查看状态
mysql> show slave status\G;










清空原有复制环境
slave从停止线程
mysql> stop slave;


清空配置文件
mysql> reset slave;




基于全局事务标识符复制-过滤规则
在从站设置过滤规则




改动前必须停止slave线程
mysql> stop slave sql_thread;


mysql> change replication filter Replicate_wild_Ignore_table=('test.user1');   #不复制test的user1表的数据


mysql> start slave sql_thread;




设置忽略数据库
mysql> stop slave sql_thread;


mysql> change replication filter Replicate_Ignore_DB=(test);   #忽略test数据库,不加引号


mysql> start slave sql_thread;




清空过滤条件
mysql> stop slave sql_thread;
mysql> change replication filter Replicate_Ignore_DB=();
mysql> change replication filter Replicate_wild_Ignore_table=();
mysql> start slave sql_thread;




在线增加从服务器


如果主机以前是从服务器的机器首先执行
mysql> reset master;




1:备份主服务器
#mysqldump -h127.0.0.1 -uroot -p -P 3306 -A -R --single-transaction> dump.sql		  #导出全部库
#mysqldump -h127.0.0.1 -uroot -p -P 3306 -B test -R --single-transaction> dump.sql   #只导出test库




备份copy到从服务器 ,copy到root目录下
#scp dump.sql root@192.168.31.4:/root


2:从服务器配置
#vi /etc/my.cnf
[mysqld]
gitd_mode=ON
server-id=3
#log-bin=mysql-bin
enforce_gtid_consistency=ON


3:重启mysql
#systemctl restart mysqld.service


4:导入备份数据库
#mysql -uroot -p < /root/dump.sql



5:建立复制链接
mysql> change master to master_host='192.168.31.3', master_user='repl', master_password='www.c1688.CC', master_auto_position=1;






6:启动线程
mysql> start slave;

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值