`
AllenHU0320
  • 浏览: 83544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MySQL复制特性复制过滤规则

 
阅读更多

原有A库中的对象,复制到Slaves节点后,希望保存到B库中,MySQL提供了一个专用参数:replicate-rewrite-db=from_name->to_name

库级过滤规则:

Master节点在执行修改操作时,由--binlog-do-db--binlog-ignore-db两个参数控制在指定的数据库中对象的变更事件是否记录到二进制日志文件中

Slave节点在应用日志时,由--replicate-db-db--replicate-ignore-db两个参数控制是否应用指定数据库的变更事件

基于语句格式记录的日志是通过当前所使用的db来作为过滤条件

只有当Master节点端操作时,修改a库中的对象则use a,修改b库中的对象则use b,没有跨库的修改,才不会出现误过滤的情形

例子1:当前Master节点在a库下执行操作(use a),分别修改了a库下的表对象,以及b库下的表对象,而后该操作被复制到Slaves节点,Slaves端设置忽略a库下的操作(--replicate-ignore-db=a),那么,a库下对象的操作肯定被过滤了,不会在Slave节点执行,同时,b库下的对象修改也会被过滤。这是因为基于语句格式记录的日志是通过当前使用的db来作为过滤条件。

例子2:当前Master节点在a库下执行操作(use a),分别修改了a库下的表对象,以及b库下的表对象,而后该操作被复制到Slaves节点,Slaves端设置忽略b库下的操作(--replicate-ignore-db=b),那么,a库下对象的操作肯定不被过滤,会在Slave节点执行,同时,b库下的对象修改也不会被过滤。这是因为基于语句格式记录的日志是通过当前使用的db来作为过滤条件。

表级复制选项:

Slave节点如果指定了--replicate-do-table--replicate-wild-do-table参数,则执行参数中指定对象的修改事件。如果指定了—replicate-ignore-table—replicate-wild-ignore-table参数,则除了参数中指定对象的修改事件不执行外,其他变更事件均要在本地执行

不同场景下复制过滤规则的应用:

没有任何—replicate-*参数:Slave端执行所有接收到的事件

指定了—replicate-*-db参数,未指定表级参数:只执行(或忽略)指定数据库的事件

指定了—replicate-*-table参数,未指定库级参数:只执行(或忽略)指定表对象的事件

 

既有库级参数,也有表级参数:Slaves节点首先执行(或忽略)指定数据库级的事件,而后再处理表级过滤选项。需要注意日志记录格式对复制的影响

分享到:
评论

相关推荐

    高性能MySQL(第3版).part2

    第7章MySQL高级特性259 7.1分区表259 7.1.1分区表的原理260 7.1.2分区表的类型261 7.1.3如何使用分区表262 7.1.4什么情况下会出问题263 7.1.5查询优化266 7.1.6合并表267 7.2视图270 7.2.1可更新视图272 ...

    [Objective-c程序设计].杨正洪等.扫描版

    第14章讲述了Objective-C++和访问Mysql数据库的编程知识。 第1章 启程.1 1.1 预备知识1 1.2 历史背景1 1.3 内容简介2 1.4 小结3 第2章 对C的扩展4 2.1 最简单的Objective-C程序4 2.2 解构HelloObjective-C程序7 ...

    SQL必知必会(第3版)--详细书签版

    15.2 从一个表复制到另一个表 100 15.3 小结 101 第16章 更新和删除数据 102 16.1 更新数据 102 16.2 删除数据 104 16.3 更新和删除的指导原则 105 16.4 小结 106 第17章 创建和操纵表 107 17.1 创建表 107...

    开源中国源码

    - 将项目里的application.yml文件复制一份,重新命名application-prod.yml,并修改里面的配置项 - 运行 `mvn clean compile package` - 拷贝 `target/FlyCms.jar` 到你想存放的地方 - 运行 `java -jar FlyCms.jar ...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    4.4.2 字符串特性 111 4.4.3 字符串编码 115 4.5 查询java api文件 117 4.6 重点复习 119 4.7 课后练习 120 chapter5 对象封装 125 5.1 何谓封装 126 5.1.1 封装对象初始流程 126 5.1.2 封装对象...

    SQL必知必会(第3版-PDF清晰版)part1

    第22章 了解高级SQL特性...... 142 22.1 约束..... 142 22.1.1 主键..... 143 22.1.2 外键..... 144 22.1.3 唯一约束..... 145 22.1.4 检查约束..... 146 22.2 索引..... 147 22.3 触发器..... 149 22.4 数据库...

    javaSE代码实例

    5.5.1 数组复制 69 5.5.2 数组排序 71 5.5.3 搜索指定元素 72 5.5.4 比较数组中的元素 73 5.6 关于args[] 73 5.7 小结 74 第二篇 基础篇 第6章 对象和类——Java世界的细胞 77 6.1 面向对象概述 ...

    Eclipse_Swt_Jface_核心应用_部分19

    第1章 Java语言的GUI历史 2 1.1 最初的AWT 2 1.2 Swing工具包 3 1.3 Eclipse的诞生 3 1.4 Eclipse贡献SWT工具包 5 1.4.1 SWT的结构 6 ...1.4.2 SWT所支持的操作系统 6 ...1.5 Sun AWT/Swing与Eclipse SWT 7 ...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 目 录 前言..........................................................................................................................................

Global site tag (gtag.js) - Google Analytics