位置: 编程技术 - 正文

percona-toolkit对MySQL的复制和监控类操作教程

编辑:rootadmin

推荐整理分享percona-toolkit对MySQL的复制和监控类操作教程,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

复制类工具1. pt-heartbeat功能介绍:监控mysql复制延迟用法介绍:pt-heartbeat [OPTION...] [DSN] --update|--monitor|--check|--stop测量复制落后主mysql或者主PostgreSQL多少时间,你可以使用这个脚本去更新主或者监控复制,具体用法见后面的示例.原理:pt-heartbeat通过真实的复制数据来确认mysql和postgresql复制延迟,这个避免了对复制机制的依赖,从而能得出准确的落后复制时间,包含两部分:第一部分在主上pt-heartbeat的--update线程会在指定的时间间隔更新一个时间戳,第二部分是pt-heartbeat的--monitor线程或者--check线程连接到从上检查复制的心跳记录(前面更新的时间戳),并和当前系统时间进行比较,得出时间的差异。你可以手工创建heartbeat表或者添加--create-table参数,推荐使用MEMORY引擎。表结构为:

使用示例:范例1:创建一个后台进程定期更新主上的test库的heartbeat表()默认是1s,可以--interval指定,执行后会成一个heartbeat表,test库为我监控的同步库:

范例2:监控复制在slave上的落后程度(会一直监控):

监控结果如下:

范例3:监控复制在slave上的落后程度(监控一次退出):

范例4:监控PostgreSQL需要添加--dbi-driver Pg:

2. pt-slave-delay功能介绍:设置从服务器落后于主服务器指定时间。用法介绍:pt-slave-delay [OPTION...] SLAVE-HOST [MASTER-HOST]原理:通过启动和停止复制sql线程来设置从落后于主指定时间。默认是基于从上relay日志的二进制日志的位置来判断,因此不需要连接到主服务器,如果IO进程不落后主服务器太多的话,这个检查方式工作很好,如果网络通畅的话,一般IO线程落后主通常都是毫秒级别。一般是通过--delay and --delay"+"--interval来控制。--interval是指定检查是否启动或者停止从上sql线程的频繁度,默认的是1分钟检查一次。使用示例:范例1:使从落后主1分钟,并每隔1分钟检测一次,运行分钟

如果不加--run-time参数会一直执行。范例2:使从落后主1分钟,并每隔秒钟检测一次,运行分钟

运行结果如下:

3. pt-slave-find功能介绍:查找和打印mysql所有从服务器复制层级关系用法介绍:pt-slave-find [OPTION...] MASTER-HOST原理:连接mysql主服务器并查找其所有的从,然后打印出所有从服务器的层级关系。使用示例:范例1:查找主服务器为..3.的mysql有所有从的层级关系:

4. pt-slave-restart功能介绍:监视mysql复制错误,并尝试重启mysql复制当复制停止的时候用法介绍:pt-slave-restart [OPTION...] [DSN]监视一个或者多个mysql复制错误,当从停止的时候尝试重新启动复制。你可以指定跳过的错误并运行从到指定的日志位置。使用示例:范例1:监视..3.的从,跳过1个错误

范例2:监视..3.的从,跳过错误代码为的错误。

5. pt-table-checksum功能介绍:检查mysql复制一致性用法介绍:pt-table-checksum [OPTION...] [DSN]工作原理:pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,生成replace语句,然后通过复制传递到从,再通过update更新master_src的值。通过检测从上this_src和master_src的值从而判断复制是否一致。注意:使用的时候选择业务地峰的时候运行,因为运行的时候会造成表的部分记录锁定。使用--max-load来指定最大的负载情况,如果达到那个负载这个暂停运行。如果发现有不一致的数据,可以使用pt-table-sync工具来修复。注意:和1.0版本不同,新版本的pt-table-checksum只需要在master上执行即可。通过 ?explain参数再结合二进制日志就可以看出脚本的工作原理,如我的test库有一个名字为zhang的表,我们通过抓取二进制日志来查看脚本的原理:

从这里可以很明显的看出原理了,前面已经说了,这里就不赘述了。使用示例:范例1:比较test数据库同步是否一致,结果显示所有的表。

参数说明:第一次运行的时候需要添加--create-replicate-table参数,如果不加这个就需要手工运行添加表结构的SQL,表结构SQL如下:

percona-toolkit对MySQL的复制和监控类操作教程

之所以使用--nocheck-replication-filters参数是因为我的my.cnf配置了replicate-ignore-db和replicate-wild-do-table等参数。另外需要特别注意执行的checksums所在的数据库必须是同步的数据库。我刚开始使用的时候摸索的很久,官网也没有范例。呵呵!结果如下:

从结果中,我们可以看到test.aaa和test.heartbeat表的DIFFS不为0,那么就是这两个表不同步了。 范例2:比较test数据库同步是否一致,结果只显示数据不一致的表(添加--replicate-check-only参数即可,这个值查看checksums数据不会重新对表进行比较,因此需要先运行上面的比较语句之后再运行这个语句,否则显示不了最新的变化。)。

结果如下:

从结果可以看出,只显示了两个不同步的表。

6. pt-table-sync功能介绍:高效同步mysql表的数据用法介绍:pt-table-sync [OPTION...] DSN [DSN...]原理:总是在主上执行数据的更改,再同步到从上,不会直接更改成从的数据,在主上执行更改是基于主上现在的数据,不会更改主上的数据。注意使用之前先备份你的数据,避免造成数据的丢失.执行execute之前最好先换成--print或--dry-run查看一下会变更哪些数据。使用示例:范例1:同步3.的test库的aaa表到..3.,在执行之前可以用--execute参数换成--print来查看会变更什么东西,后面那个主机必须是master,否则会报错推出。

范例2:将主的test数据库同步到..3.,使从上具有一样的数据。

范例3:只同步指定的表

范例4:根据pt-table-checksum的结果进行数据同步

范例5:根据pt-table-checksum使从的数据和主的数据一致

监控类工具1. pt-deadlock-logger功能介绍:提取和记录mysql死锁的相关信息用法介绍:pt-deadlock-logger [OPTION...] SOURCE_DSN收集和保存mysql上最近的死锁信息,可以直接打印死锁信息和存储死锁信息到数据库中,死锁信息包括发生死锁的服务器、最近发生死锁的时间、死锁线程id、死锁的事务id、发生死锁时事务执行了多长时间等等非常多的信息。详情见下面的示例。使用示例:范例1:打印本地mysql的死锁信息

范例2:将本地的mysql死锁信息记录到数据库的表中,也打印出来

2. pt-fk-error-logger功能介绍:提取和记录mysql外键错误信息用法介绍:pt-fk-error-logger [OPTION...] SOURCE_DSN通过SHOW INNODB STATUS提取和保存mysql数据库最近发生的外键错误信息。可以通过参数控制直接打印错误信息或者将错误信息存储到数据库的表中。使用示例:我在服务器上运行的时候一直报如下错误:

我怀疑是这个程序有问题,回头换一个版本试一下或者调试一下那个程序。 3. pt-mext功能介绍:并行查看SHOW GLOBAL STATUS的多个样本的信息。用法介绍:pt-mext [OPTIONS] -- COMMAND原理:pt-mext执行你指定的COMMAND,并每次读取一行结果,把空行分割的内容保存到一个一个的临时文件中,最后结合这些临时文件并行查看结果。使用示例:范例1:每隔s执行一次SHOW GLOBAL STATUS,并将结果合并到一起查看

4. pt-query-digest功能介绍:分析查询执行日志,并产生一个查询报告,为MySQL、PostgreSQL、 memcached过滤、重放或者转换语句。用法介绍:pt-query-digest [OPTION...] [FILE]解析和分析mysql日志文件使用示例:范例1:分析本地的慢查询文件

范例2:重新回顾满查询日志,并将结果保存到query_review中,注意query_review表的表结构必须先建好,表结构如下:

命令如下:

5. pt-trend功能介绍:居于一组时间序列的数据点做统计。用法介绍:pt-trend [OPTION...] [FILE ...]读取一个慢查询日志,并输出统计信息。也可以指定多个文件。如果不指定文件的话直接从标准输入中读取信息。使用示例:范例1:读取本地慢查询日志并输出统计信息

使用percona-toolkit操作MySQL的实用命令小结 1.pt-archiver功能介绍:将mysql数据库中表的记录归档到另外一个表或者文件用法介绍:pt-archiver[OPTION...]--sourceDSN--whereWHERE这个工具只是归档旧的数据,不

关于MySQL外键的简单学习教程 在MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少

MySQL中的主键以及设置其自增的用法教程 1、声明主键的方法:您可以在创建表的时候就为表加上主键,如:CREATETABLEtbl_name([字段描述省略...],PRIMARYKEY(index_col_name));也可以更新表结构时为表加上

标签: percona-toolkit对MySQL的复制和监控类操作教程

本文链接地址:https://www.jiuchutong.com/biancheng/312363.html 转载请保留说明!

上一篇:安装和使用percona-toolkit来辅助操作MySQL的基本教程(安装和使用蓄能器应注意哪些问题)

下一篇:使用percona-toolkit操作MySQL的实用命令小结(使用时间)

  • 新注册公司没有员工怎么报个税
  • 税务专业是什么学位
  • 小额零星开支税前扣除
  • 房地产企业怎么认定
  • 劳务公司在异地做项目需要提供当地完税证明
  • 销售固定资产清单怎么做
  • 固定收益凭证是固定的吗
  • 一般纳税人普票怎么做分录
  • 残疾证挂靠一年多少钱
  • 车险会计分录处理怎么写
  • 社保计入管理费用还是成本
  • 结转应交所得税属于利润分配吗
  • 出口退税计算方式
  • 专票入账用哪一联
  • 企业购买原材料,货款未支付
  • 基建账的年终结转
  • 出口退税报关单解密在哪下载
  • 企业自建房是什么意思
  • 增值税专用发票验票
  • 网上订酒店怎么预定
  • 退还城建税
  • 季度保税企业所得税申报的逾期申报怎么办?
  • 固定资产一次性扣除后第二年账务处理
  • 提供加工服务的企业
  • 购货优惠的会计科目
  • php中const
  • win10打印机驱动在电脑哪里找
  • 收到客户预付的货款的会计分录
  • 会计科目在建工程有金额要求吗
  • 仙客来养殖方法和注意事项视频
  • mediacachefiles什么意思
  • 年末进公司有年终奖吗
  • vue打包成一个文件
  • php实现原理
  • php str函数
  • vue中使用require报错
  • 动静结合会计等式的不会重复算利润吗
  • 员工不小心重复报销了
  • 汇率一般是以几位数来显示
  • 国际货运代理公司个人货物
  • 合伙结算转借款
  • 营业外支出增加的原因
  • centos7.9 防火墙
  • 国有土地租赁合同的性质
  • 税额和税款是一回事吗
  • 税控盘的服务费可以抵扣吗
  • 年底进项税额比年初多
  • 装修收入应如何确定
  • 车保险名称
  • 公司销售的产品算固定资产吗
  • 一般纳税人报税时间每月的多少号
  • 总公司账务处理
  • 制造费用的结转正确的是( )
  • 物流公司过户给我需要做什么
  • 进口业务关税的计算方法
  • 自来水公司代收污水处理费
  • 跨年工程施工如何计算成本
  • 帮别人维修东西怎么开票
  • 金税盘可以用热点吗
  • 固定资产净残值最后怎么处理
  • 进项票取得晚了怎么抵扣
  • 企业大额融资需要什么资料
  • 在mysql中,创建数据库的基本语法格式是
  • ubuntu搭建网站教程
  • win8系统摄像头怎么打开
  • winctlad.exe - winctlad是什么进程
  • win8.1怎么用
  • win8自带杀毒软件 关闭
  • opengl绘制三维图形代码
  • unity接入安卓sdk
  • javascript异步编程
  • 梦见擦窗户框
  • javascript教程推荐知乎
  • cocos2d怎么用
  • python中将字典转换为字符串
  • 厂房每年要交什么费用
  • 甲供材备案需要的资料
  • 出口退税需要哪些单据
  • 政务公开事项目录编制
  • 如何网上办税票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设