mysql过滤复制
时间:2021-08-25
本文章向大家介绍mysql过滤复制,主要包括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;
原文地址:https://www.cnblogs.com/shipment/p/15184139.html
- 关于查看文件的几个小命令(r3笔记第6天)
- 关于纠结的recycle pool的设置(r3笔记第5天)
- 融会贯通学习trigger(r2笔记第4天)
- 完整的R语言预测建模实例-从数据清理到建模预测
- 利用回归模型预测数值型数据(代码)
- 关于ORA-00020问题的反思(r2笔记第3天)
- 查看空间使用情况的脚本(r2笔记第2天)
- 使用dbms_parallel_execute来完成DML的并行(r3笔记第1天)
- 有趣的linux命令总结(78天)
- 生产环境sql语句调优实战第七篇(r2笔记99天)
- 一个普通数据库用户所能查到的"意料之外"的信息(r2笔记98天)
- 查看并行进程的一些简单信息(r3笔记第17天)
- 多行数据的批处理之bulk collect(r3笔记第16天)
- pl/sql中错误的异常处理 (r3笔记第15天)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- Vue Router 实现多种页面跳转
- Vue实现输入框自动聚焦
- 手把手教你,嘴对嘴传达------Apache --ab测试
- Css实现内容溢出添加横向滚动条
- 手把手教你,嘴对嘴传达------深入介绍Nginx的rewrite模块(理论加实验)
- jQuery实现点击图片弹出视频并自动播放
- 机器学习之决策树一-ID3原理与代码实现
- jQuery点击返回顶部
- 手把手教你,嘴对嘴传达------Nginx实现动静分离的两种方式
- Vue实现push数组并删除方法
- 机器学习之决策树二-C4.5原理与代码实现
- Vue Router懒加载
- 手把手教你,嘴对嘴传达------Tomcat部署和优化以及虚拟主机配置
- 微信小程序使用scroll-view做导航栏
- java解析XML的方法