mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况.

转(http://blog.csdn.net/m582445672/article/details/7670802)

一、MySQL主从复制有三种模式.

1.binlog_format = row  : 日志中会记录成每一行数据被修改的形式(记录页面),然后在 slave 端再对相同的数据进行修改。

2.binlog_format = statement  : 每一条会修改数据的 SQL 都会记录到 master 的 bin-log 中。slave 在复制的时候 SQL 进程会解析成和原来 master 端执行过的相同的 SQL 再次执行。

3.binlog_format = mixed : 这个模式是在5.1.8版本之后, 才有的. mixed是row和statement的混合模式.

二、触发器的主从复制.

A .当binlog_format = statement 或 或 binlog_format = mixed (使用混合模式用的是statement 方式)  这种模式下复制情况

1. 主从复制的时候,主从触发器都受到definer从句的约束.只有主从上都有这个用户才能正常运行这个触发器.

2. 主服务器上SQL语句传到从服务器上,从服务器再执行SQL语句去触发从服务器的触发器(这里要说明是:主服务器不会把触发后的SQL传递给从服务器).

这里可以看到,传递是原始的SQL语句.

B .当binlog_format = row 或 binlog_format = mixed(使用混合模式用的是row方式)  这种模式下复制情况

1. 主服务器把被修改的页面复制给从服务器,并且这个修改的页面的值是触发后的改变值.

2. 因为这个页面的值是触发后改变的值, 所以在从服务器上可以不需要这个触发器.

3. 删除从服务器上的触发器.一样的可以得到跟主服务器一样的值.

三、存储过程的主从复制

1. 主服务器上的存储过程同样收到definer从句的约束.但是,在复制的时候,从服务上不需要有存储过程

A. 当binlog_format = statement 或binlog_format = mixed (使用混合模式用的是statement 方式)  这种模式下复制情况

可以看到通过系统函数转换后的值复制给从服务器.不需要在从服务器上建立当binlog_format = row 或 binlog_format = mixed(使用混合模式用的是row方式)

B .当binlog_format = row 或 binlog_format = mixed(使用混合模式用的是row方式)  这种模式下复制情况

四、函数主从复制

A . 当binlog_format = statement 或binlog_format = mixed (使用混合模式用的是statement 方式)  这种模式下复制情况

1. 主从复制的时候,主从触发器都受到definer从句的约束.只有主从上都有这个用户才能正常运行这个函数

2.  主服务器上SQL语句复制从服务器上,从服务器再执行SQL语句再去调用从服务器的函数(主服务器不会把函数的返回值传给从服务器的)

B. 当binlog_format = row 或 binlog_format = mixed(使用混合模式用的是row方式)  这种模式下复制情况

1.主服务器会直接把修改过的页面复制给从服务器,从服务器不需要有对应的函数

五、事件主从复制

当事件有用函数,触发器,存储过程时.跟上面的操作情况是一样的.

但有一点不同的是.

在主服务器上建立一个event,当然,在从服务器上也会创建一个event..(默认情况下主event复制到从服务器的event是关闭着的)

1.主服务器上的event

2.从服务器上的event

如果在从服务器,开启事件.不仅主服务器复制过来的SQL语句执行一遍,从服务器上的EVENT也会执行.

mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况.(转)的更多相关文章

  1. MySQL 5.6 主从复制如何处理——触发器,函数,存储过程,调度事件

      截图来自MySQL5.6的pdf版文档. 说明: 1)基于语句的复制时,trigger会在slave上执行,所以slave上也需要有trigger的定义,不然会导致主从数据不一致的: 2)基于行的 ...

  2. MySQL5.5 所支持的存储引擎

    本博文的主要内容有 .存储引擎的概念 .MySQL5.5 所支持的存储引擎 .操作默认存储引擎 .选择存储引擎 与其他的数据库软件不同,MySQL数据库软件提供了一个名为存储引擎的概念,由于存储引擎是 ...

  3. Mysql数据库的触发器、存储引擎和存储过程

    数据库的触发器 1.触发器 触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE,INSERT,UPDATE 我们可以监视某表 ...

  4. mysql 流程函数 存储引擎 InnoDB简单特性

    建表及插入数据语句: mysql> create table salary(userid int,salary decimal(9,2)); Query OK, 0 rows affected ...

  5. 【mysql】mysql存储引擎

    了解存储引擎我们先看下mysql的体系架构. 上图是mysql的逻辑架构图,可以看到分了几层. 第一层是大部分网路客户端工具,比如php,python  ,JDBC等,主要功能就是连接处理,授权认证等 ...

  6. MySQL开发篇,存储引擎的选择真的很重要吗?

    前言 谁说MySQL查询千万级别的数据很拉跨?我今天就要好好的和你拉拉家常,畅谈到深夜,一起过除夕!这篇文章也是年前的最后一篇,希望能带给大家些许收获,不知不觉查找文档和参考实体书籍就写了这么多,自己 ...

  7. MySQL存储引擎,优化,事务

    1唯一约束unique和主键key的区别?     1.什么是数据的存储引擎?       存储引擎就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数 ...

  8. MySql(十一):MySQL性能调优——常用存储引擎优化

    一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...

  9. MySQL性能调优与架构设计——第11章 常用存储引擎优化

    第11章 常用存储引擎优化 前言: MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.每一种存储引擎都有各自的特长,也都存在一定的短处. ...

随机推荐

  1. Alljoyn 概述(2)

    AllJoyn 基本概念 • 总线(Bus) – 实现P2P通信的基础 – AllJoyn 的底层协议类似于D-Bus,相当于是跨设备分布式的 D-Bus • 总线附件(Bus Attachment) ...

  2. jQuery 效果 - 滑动

    jQuery 滑动方法可使元素上下滑动. 点击这里,隐藏/显示面板 实例 jQuery slideDown()演示 jQuery slideDown() 方法. jQuery slideUp()演示 ...

  3. 一个中型项目:本地校园App

    好暨: 这个项目的起源于课堂老师作业的要求.老师要求一年下来完成一个构想并实现Demo.思考良久,在要提交构想的那个晚上,想到了校园App,当时团队只有两个人,但我感觉到:就是它了!项目启动时间——2 ...

  4. splice从数组中删除指定定数据

    /*从数组中删除指定定数据var somearray = ["mon", "tue", "wed", "thur"]so ...

  5. Telerik_2012_Q3 破解全套下载链接

    1.Telerik_OpenAccess_ORM_2012_3_1012_SDK.zip (暂未提供下载) 2. Telerik_OpenAccess_ORM_2012_3_1012.zip 3. T ...

  6. 设置session的生命周期(php)

    PHP中,Session变量保存在服务器端(默认以文件格式保存),而Session ID以cookie形式保存在客户端. 销毁session的方法有2种 第一种是通过程序 session_destor ...

  7. memcache 操作类

    <?php /** * memcache 操作实现 * @author timeless */ class Memcache_manage { //CI原始的信息 private $_ci; p ...

  8. angular post发送请求和GET发送请求,服务器端接收不到信息的问题

    参数可能因为编码原因,服务器端无法接收到传递的值, 这时需要用到补丁来解决这个问题 1,下载一个http.patch.js文件,放入YII框架中的js/ng文件架内 2angularjs 创建模型部分 ...

  9. SAE 安装未包含的第三方依赖包

    如何使用virtualenv管理依赖关系 当你的应用依赖很多第三方包时,可以使用virtualenv来管理并导出这些依赖包,流程如下: 首先,创建一个全新的Python虚拟环境目录ENV,启动虚拟环境 ...

  10. 【Python开发实战】Python环境的配置

    1. 安装Pythonsudo aptitude -y install python-dev 安装Distribute:支撑模块构建与导入的包sudo chmod -R 0775 /usr/local ...