阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

mysql过滤复制的实现

71次阅读
没有评论

共计 1719 个字符,预计需要花费 5 分钟才能阅读完成。

导读 这篇文章主要介绍了 mysql 过滤复制的实现思路,主要讲解了两种思路, 一种是在主库的 binlog 上实现另一种是从库的 sql 线程上实现,具体实现过程跟随小编一起看看吧
mysql 过滤复制

mysql 过滤复制的实现

两种思路:

主库的 binlog 上实现(不推荐,尽量保证主库 binlog 完整)

从库的 sql 线程上实现

所以主从过滤复制尽量不用,要用的也仅仅在从库上使用,因为要尽可能保证 binlog 的完整性

主库上实现

在 Master 端为保证二进制日志的完整, 不使用二进制日志过滤。

主库配置参数:

# 配置文件中添加
 
binlog-do-db=db_name     #定义白名单,仅将制定数据库的相关操作记入二进制日志。如果主数据库崩溃,那么仅仅之恢复指定数据库的内容,不建议在主服务器端使用,这样导致日志不完整。binlog-ignore-db=db_name   #定义黑名单, 定义 ignore 的库上发生的写操作将不会记录到二进制日志中 
从库上实现

可以下载配置文件中

REPLICATE_DO_DB = (db_list)     #过滤复制哪些库
REPLICATE_IGNORE_DB = (db_list)     #不复制哪些库
REPLICATE_DO_TABLE = (tbl_list) #过滤表
REPLICATE_IGNORE_TABLE = (tbl_list) #忽略过滤表
REPLICATE_WILD_DO_TABLE = (wild_tbl_list)   #根据正则匹配过滤表
REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list)   #根据正则匹配忽略过滤这些表
REPLICATE_REWRITE_DB = (db_pair_list)
#将源数据库的 db1 发生的语句重写到从库的 db2
CHANGE REPLICATION FILTER REPLICATE_REWRITE_DB = ((db1, db2));

语法:

官网语法参考:https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html

CHANGE REPLICATION FILTER filter[, filter][, ...]
 
filter: {REPLICATE_DO_DB = (db_list)
  | REPLICATE_IGNORE_DB = (db_list)
  | REPLICATE_DO_TABLE = (tbl_list)
  | REPLICATE_IGNORE_TABLE = (tbl_list)
  | REPLICATE_WILD_DO_TABLE = (wild_tbl_list)
  | REPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list)
  | REPLICATE_REWRITE_DB = (db_pair_list)
}
# 从库实现过滤复制
 
​   stop slave sql_thread;
​   change replication filter replicate_do_db=(db);
​   start slave sql_thread;
 
#取消过滤复制
​   stop slave sql_thread;
​   change replication filter replicate_do_db=();
​   start slave sql_thread;
一些问题

主库删除某个表,从库没有这个表,导致从库 sql 线程关闭

或者主从正常,从库不小心删除某个表,主库随后再删除这个表,从库又会去删除这个不存在的表,报错,导致 sql 线程退出

解决方法:跳过这一步操作

 解决方案:从库 sql 线程跳过误操作的步骤
 
stop slave sql_thread;
 
#找到 Executed_Gtid_Set 执行到 19
set gtid_next='94fc1fbe-b7a0-11eb-b0a0-000c2969aba1:20'; 将 gtid 分配给下一个事务
 
begin;commit;
set gtid_next=automatic; 系统自动分配 gtid
start slave sql_thread;

到此这篇关于 mysql 过滤复制思路详解的文章就介绍到这了

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1719字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中