Percona-tookit学习笔记(一)

本文涉及的产品
RDS AI 助手,专业版
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

Percona-tookit下载地址[包含软件和用户手册]:

https://www.percona.com/software/mysql-tools/percona-toolkit

部分内容参考了前人的博客:http://bbs.chinaunix.net/thread-3751657-1-1.html



先安装perl依赖关系

1
2
yum  install  perl perl-devel libaiolibaio-devel perl-Time-HiRes
yum  install  perl-TermReadKey perl-IO-Socket-SSL perl-DBD-MySQL
1
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm

结果报了个错误如下(xxxxxcpio read)

wKioL1cywpajCj4cAAA1sSyooyI200.png                           

根据网上的方法,执行如下2条命令

1
2
lsattr  /usr  grep  bin
chattr -i  /usr/bin

仍不能解决,遂放弃。改用编译安装。编译安装方法如下:

1
2
3
4
5
tar  xf percona-toolkit_2.2.17-1. tar .gz
cd  percona-toolkit-2.2.17/
perl Makefile.PL
make  test
make  install

一系列的工具自动安装到/usr/local/bin目录下。【如果是rpm包的,释放到目录/usr/bin下】


默认安装的是32个工具,如下:

pt-align

pt-archiver

pt-config-diff

pt-deadlock-logger

pt-diskstats

pt-duplicate-key-checker

pt-fifo-split

pt-find

pt-fingerprint

pt-fk-error-logger

pt-heartbeat

pt-index-usage

pt-ioprofile

pt-kill

pt-mext

pt-mysql-summary

pt-online-schema-change

pt-pmp

pt-query-digest

pt-show-grants

pt-sift

pt-slave-delay

pt-slave-find

pt-slave-restart

pt-stalk

pt-summary

pt-table-checksum

pt-table-sync

pt-table-usage

pt-upgrade

pt-variable-advisor

pt-visual-explain


查看命令帮助的话,可以使用 perldoc /usr/local/bin/pt-*** 或者 pt-*** --help


percona-toolkit主要使用在MySQL主从环境中,因此我们先来搭建MySQL主从复制环境。操作如下:


搭建MySQL主从测试环境

   

    系统版本:CentOS 6.7 X86_64

    MySQL版本:官方5.6通用二进制包

    主节点:192.168.2.11  node1

    从节点:192.168.2.12  node2


MySQL的安装过程略过,直接贴主从的配置过程。


node1主节点(192.168.2.11):

1
# mysqldump -uroot -proot --all-databases --flush-logs--master-data=2 > /root/all.sql

然后查看head -30/root/all.sql 找到类似“CHANGE MASTER” 记录下。

wKioL1cyw2GS9hbOAAAZ-kfOUVM073.png

1
# scp /root/all.sql root@192.168.2.12:/root


node2从节点(192.168.2.12):

清除原有的/data/mysql数据,重新初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# cd /data/mysql
# rm -fr *
# /usr/lcoal/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# /etc/init.d/mysqld start
# mysql -uroot -S /tmp/mysql.sock
source  /root/all .sql
> CHANGE MASTER TO MASTER_HOST = '192.168.2.11'
     MASTER_USER= 'repl' ,
     MASTER_PASSWORD= '123456' ,
     MASTER_PORT=3306,
     MASTER_LOG_FILE= 'node1.000018' ,
     MASTER_LOG_POS=120,
     MASTER_CONNECT_RETRY=10,   # 当重新建立主从连接时,如果连接建立失败,间隔多久(单位为秒)后重试。
     MASTER_HEARTBEAT_PERIOD=60;    # 设置多长时间(单位为秒)探测一次主服务器是否在线 
  
# 具体可以执行> help change master to 查看帮助命令
> SHOW SLAVE STATUS\G    【现在还未连接到主库,Seconds_Behind_Master值为NULL】
> SET GLOBAL slave_net_timeout = 360;   # 如果360秒没有接收到数据则认为网络超时,之后slave的IO线程会重新连接Master
> START SLAVE;
> SHOW SLAVE STATUS\G 【注意:Seconds_Behind_Master指的是SQL线程和IO线程之间的延迟】


 


测试主从同步:

在主节点node1上随便增加几个数据库,在node2的从节点可以看到数据库已经自动同步过来了,并且show slave status\G可以看到变化,如下图。

wKioL1cyxHzRncMYAABFBUQvK1g331.png


至此,我们的主从复制环境就搭建好了。


下文将一一举例percona-toolkit里面的工具的使用。










本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1772156,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
缓存 运维 网络协议
Linux内核参数调优以应对SYN攻击
Linux内核参数调优以应对SYN攻击
299 3
|
消息中间件 存储 运维
王者归位:Kafka控制器组件解析
王者归位:Kafka控制器组件解析
324 0
|
Kubernetes API 调度
企业实战(19)基于Kubeadm工具从零开始快速部署K8S集群
企业实战(19)基于Kubeadm工具从零开始快速部署K8S集群
548 0
|
4月前
|
程序员
HxDx64使用步骤详解(附打开与修改文件教程)
HxDx64.exe是一款轻量级十六进制编辑器,无需安装,解压即用,适用于查看和修改文件底层数据。支持文本、游戏存档、二进制文件等的编辑与对比,操作简单,是程序员和爱好者的实用工具。
1454 2
|
9月前
|
前端开发 JavaScript Java
MVVM 状态管理
MVVM 实现数据驱动视图,通过 ViewModel 自动更新 View,支持双向绑定,生命周期管理控制流程。async/await 使异步代码更接近同步结构,提升可读性与调试效率。
|
存储 安全 物联网
什么是安全密钥,它是如何工作的
安全密钥是一种物理设备,常用于双因素或多因素身份验证(2FA/MFA),以提升在线账户安全性。它通过公钥加密协议(如FIDO U2F/FIDO2)实现强大的防网络钓鱼和凭证盗窃功能。常见的类型包括USB-A、USB-C、NFC和蓝牙密钥,支持一键登录且兼容多种服务。即使凭据泄露,安全密钥也能有效保护账户。若丢失密钥,可通过备用验证码或替代验证方法恢复访问,并重新注册新密钥。工具如ADSelfService Plus可与安全密钥无缝集成,提供自适应MFA及密码管理功能,增强整体安全性。
1232 0
什么是安全密钥,它是如何工作的
|
人工智能 Java 数据库连接
接口设计,接口返回信息,当账号不存在时候,应该返回200还是500,是直接返回R.fail()还是throw exception
本文探讨了Java接口设计中账号不存在时返回状态码(200、404或500)及处理方式(直接返回R.fail()或抛出异常)的选择。200适用于业务逻辑允许的情况,通过响应体告知客户端;404符合RESTful原则,表示资源未找到;500用于服务器内部错误。返回信息可使用R.fail()封装统一响应,或在异常情况下抛出异常并全局捕获。实际开发需依据业务需求与规范决定最佳方案。
427 5
|
Java Unix
Sun Microsystems
Sun Microsystems
763 62
|
前端开发 JavaScript API
|
网络协议 Linux 网络架构
在Linux中,如何设置网络路由?
在Linux中,如何设置网络路由?