mysql数据复制

krrn4957 5年前

来自: http://my.oschina.net/u/732520/blog/607021


一 、gtid简介

gtid(global transaction identifier,统一事务标志符),是MySQL 5.6 的新特性之一。全局事务 ID 的官方定义是:GTID = source_id:transaction_id,其中source_id表示执行事务的主库 uuid(server_uuid),数据保存在auto.cnf 文件 ,transaction_id 是一个从 1 开始的自增计数,表示在这个主库上执行的第 n 个事务,MySQL 会保证事务与 GTID 之间的 1 : 1 映射。

二、gtid方式和传统复制模式的区别

1)在传统的复制里面,当发生故障,需要主从切换,需要找到binlog和pos点,然后change master to指向新的master,比较麻烦,也容易出错;

2)gtid复制方式不用找binlog和pos点,只需要知道master的ip、端口、账号密码就行。因为复制是自动的,MySQL会通过内部机制GTID自动找点同步;

3)传统复制方式slave的复制是单线程的,一个事件一个事件的读取应用,但master是并发写入的,所以会造成从数据库的数据延时;

4)gtid复制方式多线程复制(基于库),可以把多个表放在多个库,这样就可以使用多线程复制,当只有1个库,多线程复制是没有用的。