PERCONA-TOOLKIT 安装 使用
1.基于MySQL主从环境
可以参考https://www.cnblogs.com/xianglei_/p/12068241.html
上传rpm包 并安装
|
1
2
|
cd /usr/local/srcyum -y install percona-toolkit-3.1.0-2.el7.x86_64.rpm |
在一个sbtest(前提石存在)的数据库中创建一个表叫heartbeat的表
|
1
|
pt-heartbeat -S /var/lib/mysql/mysql.sock --database sbtest --update --create-table --daemonize |
下载压测工具
|
1
2
|
yum -y install epel*yum -y kainstall sysbench |
开始实行压测对sbtest数据库 实验
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
sysbench /usr/share/sysbench/oltp_read_write.lua \> --mysql-host='192.168.18.140' \ //主的数据库的IP地址> --mysql-user=sbtest \ //用户> --mysql-password=123456 \ //用户密码> --mysql-port=3306 \ //主数据库的端口> --db-driver=mysql \ //数据库的类型> --mysql-db=sbtest \ //要进行压测的数据库> --tables=10 \ //要创建10张表> --table-size=500000 \ //每一张数据表中的插入50万条数据> --report-interval=10 \ //报告间隔> --threads=128 \ //开启128个线程> --time=120 \ //执行两分钟> prepare //开始压测测试 |
开始真的压测
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
sysbench /usr/share/sysbench/oltp_read_write.lua \> --mysql-host='192.168.18.140' \ //主的数据库的IP地址> --mysql-user=sbtest \ //用户> --mysql-password=123456 \ //用户密码> --mysql-port=3306 \ //主数据库的端口> --db-driver=mysql \ //数据库的类型> --mysql-db=sbtest \ //要进行压测的数据库> --tables=10 \ //要创建10张表> --table-size=500000 \ //每一张数据表中的插入50万条数据> --report-interval=10 \ //报告间隔> --threads=128 \ //开启128个线程> --time=120 \ //执行两分钟> run //开始压测实战 |
在开始真的压测的时候 在从的的虚拟纪上执行下一条命令要和主的数据库的虚拟机同时执行
|
1
|
pt-heartbeat -S /var/lib/mysql/mysql.sock --master-server-id=1 --monitor --database sbtest |
将产生的垃圾数据回收
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
sysbench /usr/share/sysbench/oltp_read_write.lua \> --mysql-host='192.168.18.140' \ //主的数据库的IP地址> --mysql-user=sbtest \ //用户> --mysql-password=123456 \ //用户密码> --mysql-port=3306 \ //主数据库的端口> --db-driver=mysql \ //数据库的类型> --mysql-db=sbtest \ //要进行压测的数据库> --tables=10 \ //要创建10张表> --table-size=500000 \ //每一张数据表中的插入50万条数据> --report-interval=10 \ //报告间隔> --threads=128 \ //开启128个线程> --time=120 \ //执行两分钟> cleanup //回收垃圾信息 |
刚刚我们是在后台运行
|
1
2
|
ps aux | grep perlpt-heartbeat /usr/bin/pt-heartbeat -S /var/lib/mysql/mysql.sock --database sbtest --update --create-table --stop //关掉进程 |
在主的数据库中的test数据库创建一个名叫z1的表
|
1
2
|
use test; create table z1 ( id int not null, name varchar(32), primary key(id)); |
在从的数据
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
use test;MariaDB [test]> select * from z1;Empty set (0.00 sec)MariaDB [test]> set sql_log_bin=0;Query OK, 0 rows affected (0.00 sec)MariaDB [test]> set global read_only=off;Query OK, 0 rows affected (0.01 sec)MariaDB [test]> insert into z1(id,name) values(3,"python");Query OK, 1 row affected (0.00 sec)MariaDB [test]> select * from z1;+----+--------+| id | name |+----+--------+| 3 | python |+----+--------+1 row in set (0.00 sec) |
回到主上 插入数据
|
1
2
|
insert into z1(id,name) values(2,"mysql");insert into z1(id,name) values(3,"python"); |
回到从上 查看slave的状态 会有错误
|
1
2
3
4
5
6
7
8
9
10
|
show slave status \G;有一个类似这样的错误 Last_Errno: 1062 Last_Error: Error 'Duplicate entry '3' for key 'PRIMARY'' on query. Default database: 'test'. Query: 'insert into z1(id,name) values(3,"python")'在执行一条命令pt-slave-restart --error-numbers=1062 //跳过错误再去查看一下slave的状态 就可以看到双yes |
检测主从数据一致性的命令
在主的数据库上
|
1
2
3
4
5
6
7
|
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksums --create-replicate-table --databases=test --tables=z1 h=192.168.18.140,u=sbtest,p=123456,P=3306//执行效果 说的是检测到一条没有同步Checking if all tables can be checksummed ...Starting checksum ... TS ERRORS DIFFS ROWS DIFF_ROWS CHUNKS SKIPPED TIME TABLE12-17T11:47:14 0 0 2 0 1 0 0.011 test.z1 |
修复主从不同步
|
1
2
3
|
pt-table-sync --replicate=test.checksums h=172.18.47.110,u=huazai007,p=123456,P=3306 h=172.18.47.112,u=huazai007,p=123456,P=3306 --print 只是打印pt-table-sync --replicate=test.checksums h=172.18.47.110,u=huazai007,p=123456,P=3306 h=172.18.47.112,u=huazai007,p=123456,P=3306 --execute //校验 |
PERCONA-TOOLKIT 安装 使用的更多相关文章
- Percona Toolkit安装、使用
percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: l 检查master和slave数据的一致性 l 有效地对记 ...
- Centos 安装Percona Toolkit工具集
1.下载 下载地址: https://www.percona.com/downloads/percona-toolkit/LATEST/ [root@bogon ~]# wget https:// ...
- Percona Toolkit mysql辅助利器
1 PT介绍 Percona Toolkit简称pt工具—PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性.检查重复索引.定位IO占用高的表文件.在 ...
- Percona Toolkit工具集介绍
部署mysql工具是一个非常重要的部分,所以工具的可靠性和很好的设计非常重要.percona toolkit是一个有30多个mysql工具的工具箱.兼容mysql,percona server,mar ...
- Percona Toolkit工具连接MySQL 8报错的解决方案
使用Percona Toolkit的工具连接MySQL 8.x数据库时,会遇到类似"failed: Plugin caching_sha2_password could not be loa ...
- Percona Toolkit工具使用
Percona Toolkit简称pt工具-PT-Tools,是Percona公司开发用于管理MySQL的工具,功能包括检查主从复制的数据一致性.检查重复索引.定位IO占用高的表文件.在线DDL等 下 ...
- RDS for MySQL 如何使用 Percona Toolkit
Percona Toolkit 包含多种用于 MySQL 数据库管理的工具. 下面介绍常用的 pt-online-schema-change 和 pt-archiver 搭配 RDS MySQL ...
- Want to archive tables? Use Percona Toolkit’s pt-archiver--转载
原文地址:https://www.percona.com/blog/2013/08/12/want-to-archive-tables-use-pt-archiver/ Percona Toolkit ...
- Percona Toolkit 使用
安装 percona-toolkit perl Makefile.PL make make test make install 默认安装到 /usr/local/bin 目录下 可能需要 DBI-1. ...
- 使用Percona Toolkit解决Mysql主从不同步问题【备忘】
由于各种原因,mysql主从架构经常会出现数据不一致的情况出现,大致归结为如下几类 1:备库写数据 2:执行non-deterministic query 3:回滚掺杂事务表和非事务表的事务 4:bi ...
随机推荐
- python连接mysql操作(1)
python连接mysql操作(1) import pymysql import pymysql.cursors # 连接数据库 connect = pymysql.Connect( host='10 ...
- Python 面向对象Ⅱ
创建实例对象 实例化类其他编程语言中一http://www.xuanhe.net/般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式. 以下使用类的名称 Empl ...
- Entity Framework Core 迁移命令
Add-Migration init Update-Database init 修改model后,执行迁移的命令 更新数据库 每次更新都要{update}修改 Add-Migration {updat ...
- SharpCompress 压缩解压
public class SharpCompressHelper { public static void UnRAR(string srcUrl,string targetUrl) { using ...
- node之events 模块,并通过实例化 EventEmitter 类来绑定和监听事件
例子来源:http://www.runoob.com/nodejs/nodejs-event-loop.html http://www.runoob.com/nodejs/nodejs-event.h ...
- jquery dblclick()方法 语法
jquery dblclick()方法 语法 作用:当双击元素时,会发生 dblclick 事件.当鼠标指针停留在元素上方,然后按下并松开鼠标左键时,就会发生一次 click.在很短的时间内发生两次 ...
- windows如何正确下载补丁包
今天公司让给windows安装补丁,打开链接,我蒙蔽了,这么多包要下载哪个腻?下面来跟杨老师一起学习一下如何确定windows版本,下载正确的补丁包. 首先先看一下下载补丁的页面,懵~~ 登录你需要安 ...
- 分布式-信息方式-JMS大纲
一.简介 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息, ...
- C++入门经典-例6.6-字符串复制
1:字符串复制函数strcpy的格式如下: strcpy(字符数组名,字符串) 其作用是把字符串中的字符串复制到字符数组中.需要注意的是,字符串结束标志'\0'也一同被复制. 注意是将后面的内容复制给 ...
- LeetCode82----删除排序链表中的重复元素 II
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1-&g ...