主从复制+校验

17:27

一、搭建主从库

 

主库上执行:

grant replication slave,replication client on *.* to '主库新建用户用户名'@'%' identified by '主库新建用户的密码';

 

eg:grant replication slave ,replication client on *.* to 'mysqlsync'@'127.0.0.1' identified by '123123'

 

在从库上执行:

change master to

master_host='主机地址',

master_user='主库新建用户的用户名',

master_password='主库新建用户的密码',

master_port=主库端口号,

master_log_file='当前正在用的binlog日志文件名',

master_log_file=当前binlog日志记录到那个位置,

master_connect_retry=60

 

查看 master_log_file    master_log_file

当前的binlog文件在数据目录下

 show master status; File列文件名

当前binlog日志记录到那个位置:

show master status;  Position列的值

注意:三个数字的值不用单引号,其他的值需要单引号引起来

eg

CHANGE MASTER TO

MASTER_HOST='127.0.0.1',

MASTER_USER='mysqlsync',

MASTER_PASSWORD='123123',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysqlserver.000003',

MASTER_LOG_POS=120,

MASTER_CONNECT_RETRY=10;

 

 

执行完成后:在从库上执行

开启从库:

start slave;

 

查看状态:

show slave status;

 

mysql> show slave status \G;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 172.16.145.106

                  Master_User: mysqlsync1

                  Master_Port: 33061

                Connect_Retry: 60

              Master_Log_File: mysqlserver.000029

          Read_Master_Log_Pos: 544

               Relay_Log_File: mysql2-relay-bin.000002

                Relay_Log_Pos: 285

        Relay_Master_Log_File: mysqlserver.000029

             Slave_IO_Running: Yes        正常,完成

            Slave_SQL_Running: Yes        正常,完成

 

检测:主库建立表,从库上也会建立同名的表:

 

 

 

 

二、主从校验:

利用pt-table-checksum做主从一致性校验

前提:是主从复制

全部在主库上执行:

 

1、给 pt-checksum授权

新建用户,因为主从复制,在从库上也会相应的新建这个用户

grant all privileges on *.* to 'checksum'@'%' identified by 'checksum';

GRANT ALL PRIVILEGES ON *.* TO 'checksum'@'%' IDENTIFIED BY PASSWORD '123123'  password  是密文

--这里在新建用户checksum的同时,也给这个用户添加所有的权限

 

 

2、创建从库连接信息表  = 新建一个表,用来存放从库的登录信息

create table `dsns`(

`id` int(11) not null auto_increment,

`parent_id` int(11) default null,

`dsn` varchar(255) not null,

primary key (`id`)

)engine=innodb auto_increment=2;

 

--注意:这里用的是反引号,不是单引号

 

如下插入的是从库的连接信息

insert into dsns values(1,1,'h=172.16.145.106,p=checksum,u=checksum,P=3307');

--第一步中新建的用户,密码,从库的端口号

 

3、新建一个测试表,并插入几行数据用来测试

 

create table t(id int(11),name varchar(20));

 

insert into t values(1,'guanyu');

insert into t values(2,'zhangfei');

insert into t values(3,'taishici');

insert into t values(4,'zhangliao');

insert into t values(5,'ganning');

 

--主从复制,从库上也会新建一个表,并插入数据

 

 

 

4、校验:在linux中执行:

pt-table-checksum --user=checksum --password=123123 --port=3306  --databases=test --host=172.16.145.30   --recursion-method="dsn=h=172.16.145.30,D=test,t=dsns" --no-check-replication-filters --tables=test.t2

 

 

--user=checksum --password=gangbeng --port=3306 --host=172.16.145.106        --这个是主库的登录信息

--databases=test        --这个是要校验的在主库中存放的库

--recursion-method="dsn=h=172.16.145.106,D=test,t=dsns"                --指定从库的登录信息,也就是(2、)中插入的数据

 --tables=test.t        --指定校验的文件

 

 

 

5、校验结果:

[root@centos6 data1]# pt-table-checksum --user=checksum --password=gangbeng --port=33061 --databases=test --host=172.16.145.106 --recursion-method="dsn=h=172.16.145.106,D=test,t=dsns" --no-check-replication-filters --tables=test.t

            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

05-07T23:16:46      0      0        5       1       0   0.016 test.t

 

--没有其他信息,就成功了

 

 

 

7、实验:

1.在从库中插入一行数据:

insert into t values(6,'zhaoyun');

 

--这样主库与从库相同的表中的数据,就不相同了

 

 

 

2.再一次进行校验

[root@centos6 data1]# pt-table-checksum --user=checksum --password=gangbeng --port=33061 --databases=test --host=172.16.145.106 --recursion-method="dsn=h=172.16.145.106,D=test,t=dsns" --no-check-replication-filters --tables=test.t

            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

05-07T23:24:35      0      1        6       1       0   0.060 test.t

 

--因为主从库的数据不一致,所以在DIFFS中显示为1

转载于:https://www.cnblogs.com/xiaomuyhn/p/5469173.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fastcopy功能特点 1.完全支持拖曳操作,支持拖曳多个文件到来源中; 2.支持外壳整合,方便利用右键菜单直接复制文件; 3.支持三种不同的HDD模式; 4.内建多种人性化的操作模式; 5.支持过滤,可以使用通配符; 6.支持任务管理; 7.支持命令行操作; 8.软件十分小巧,甚至可以在安装后,直接将安装目录中的文件复制到任何可移动存储设备中,方便携带,随取随用; 9.所有的复制操作都是通过“从介质(硬盘)读数→写入数→从缓存中读出→向介质(硬盘)写入数”这几项步骤来完成的,并且这些步骤都是多个线程同时进行的,如果线程之间的协同运作不够完美,那速度就会大打折扣,有些线程忙得要命,而有些却必须等待,FASTCOPY就是优化了它们之间的工作顺序,大大提高了速度。 10.易于使用,能够充分挖掘文件系统和硬盘的传输能力。 11.支持计数和计时,在很多专业的硬盘传输速度的评测中,FastCopy 成了不二之选! Fastcopy使用 1、指定源目录、目标目录 点击“源目录”、“目标目录”可以分别为其指定要复制的内容及目标文件夹。复制的内容可以是文件夹或文件。目标目录结尾键入“\”表示拷贝时要包括源目录本身及其内容;结尾不键入“\”表示只拷贝源目录下的内容。 用拖拽的方式同样可以指定源目录、目标目录。这样很方便,随着在资源管理器中浏览就可以将复制对象确定下来。另外,可以通过“设置”菜单中的“外壳扩展”为右键菜单建立“复制”与“删除”命令。 2、选择不同的操作方式 通过“目标目录”文本框下的下拉菜单按钮就可以挑选七种不同的操作方式。这里,复制项相对多些,都是在复制时经常会遇到的处理办法。 “移动”项是将“源目录”内容移动到“目标目录”中去,源目录内容消失;“全部删除”项是关闭“目标目录”,只对源目录内容进行处理。对于固定拷贝的操作可以建立一个任务,通过“任务菜单”菜单中的“添加/更新/删除”命令创建,方便一键就可复制或删除。 3、常规设置、硬盘模式定义 在“设置→常规设置”菜单中可以定义缓存的空间大小,它直接关系到复制时的速度快慢,现在机器配置都很强悍,这里设定值高些不成问题。相关的定义有I/O缓存设置、I/O设置、复制和删除、日志写入等项目。 硬盘模式的设置是为了在读写时对缓存的操作方式,默认下为自动硬盘模式,另外两种分别是相同硬盘模式、不同硬盘模式,可以根自己机器的配置来选择。相同硬盘模式是指用大的缓存进行读入,直到缓存满额,再转入大缓存写入;不同硬盘模式则是读写缓存多线程并行进行。 4、执行后的结果查询 在执行过程中会显示读取、写入、时间、传输效率、文件速率等信息,在下方的文本框中会显示当前拷贝的内容。拷贝完成后点击“显示列表”按钮可以查看拷贝内容及错误文件、目录信息。 软件对于拷贝和删除小文件或文件夹来讲,可能就有点大材小用了。对于大型的文件和文件夹就不同了,它能非常迅速的完成要拷贝的内容,通过简单的设置还能过滤不要的内容。体积小、方便携带、操作迅速。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值