Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1366625
  • 博文数量: 243
  • 博客积分: 888
  • 博客等级: 准尉
  • 技术积分: 2955
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-05 14:33
个人简介

漫漫长路,其修远兮!

文章分类

全部博文(243)

文章存档

2017年(2)

2016年(22)

2015年(32)

2014年(57)

2013年(107)

2012年(23)

分类: Mysql/postgreSQL

2012-12-05 16:29:06

工具名称
pt-table-checksum
pt-table-sync
 
一.pt-table-checksum操作步骤
1. 安装pt-table-checksum之前要先安装DBIDBD-mysqlIO-Socket-SSL这三个包
2.  在主库建立checksum的账号,checksums,需要的权限有SELECT, PROCESS, SUPER, REPLICATION SLAVE,从库也可以建立主库访问的从库的账号,如果没有这个账号也不影响校验的结构

3. 执行方式


 

点击(此处)折叠或打开

  1. pt-table-checksum --nocheck-replication-filters h='10.1.10.4',u='checksums',p='123',P=3306 -d zhanghao --tables=tb --create-replicate-table --replicate=test.checksums --no-check-binlog-format

4.几点需要注意的地方

a.--nocheck-replication-filters:忽略从库replication-do-db规则

b.如果binlog_format =mixed 需要加上该格式--no-check-binlog-format

c. 如果是5.5以下的版本会报错Variable 'innodb_lock_wait_timeout' is a read only variable需要修改一下pt-table-checksum的源代码,把改变innodb_lock_wait_timeout这个值的语句去掉

d.在大表的情况下要注意chunk-size的大小,可以修改源码,精确控制chunk-size的大小

5.原理就不介绍了,是从binlog的方式实现

对于端口号不是3306,或者是有一主多从的情况

点击(此处)折叠或打开

  1. CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) );


  2. INSERT INTO dsns (parent_id,dsn) values(1, "h=replica_host,u=checksums,p=password,P=3306");

  3. --recursion-method=dsn=h=10.50.2.70,D=test,t=dsns





 

二.pt-table-sync

1.同步库或者表


 

点击(此处)折叠或打开

  1. pt-table-sync --execute --sync-to-master --user=root --password=xxx h=192.168.3.92(从库IP) --database test [--table=tb]

2.根据pt-table-checksum的结果同步库或者表


 

点击(此处)折叠或打开

  1. pt-table-sync --execute --replicate test.chksum --user=root --password=123 --sync-to-master h=10.1.10.70,D=zhanghao,t=tb1

3.从服务器的数据同步到主服务器(小心操作)


 

点击(此处)折叠或打开

  1. pt-table-sync --execute --user=root --password=123 h=10.1.10.70[从IP],D=zhanghao,t=tb1 h=10.1.10.4[主IP]

常用的主要就是上面几种情况



 

 


 

阅读(1825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~