04.percona toolkit工具pt-table-sync命令实践

news/2024/10/19 9:37:01/

Percona Toolkit 中的 pt-table-sync 是一个强大的工具,它主要用于高效地同步 MySQL 表数据。这个工具可以在两个数据库实例之间同步数据,特别适用于解决主从数据库之间的数据不一致问题。以下是关于 pt-table-sync 的使用方法和一些重要参数的详细解释。

1.功能描述

1.pt-table-sync 能够自动发现两个实例间不一致的数据,并执行同步操作。

2.它主要用于同步表数据,但不能同步表结构、索引等数据库对象。

3.该工具可以用于主从数据库数据同步,也适用于非主从拓扑的两个实例间的数据同步。

2.重要参数 

  1. --charset: 指定字符集。
  2. --ignore-databases: 忽略同步某些数据库。
  3. --databases: 指定需要同步的数据库。
  4. --tables: 指定需要同步的表。
  5. --execute: 执行实际的同步操作。
  6. --print: 打印将要执行的同步操作,而不实际执行。
  7. --dry-run: 模拟执行同步操作,用于测试和验证。
  8. --replace: 使用 REPLACE 语句进行数据同步。
  9. --sync-to-master: 将从库作为同步目标,并在主库上执行同步操作。
  10. --replicate: 基于保存的数据差异结果进行同步修复。
  11. --chunk-size: 指定每个 chunk 的大小,用于分块同步。
  12. --chunk-index: 指定用于分块的索引。
  13. --[no]check-slave: 检查从库是否安全进行同步操作。
  14. --[no]check-child-tables: 检查子表是否受影响。
  15. --[no]check-triggers: 检查目标表是否定义了触发器。
  16. --[no]transaction: 使用事务代替锁表进行同步。

3.同步两个独立数据库

pt-table-sync --charset=utf8 --ignore-databases=mysql,sys,percona dsn=u=root,p=root,h=172.172.178.75,P=3306 dsn=u=root,p=root,h=172.172.178.76,P=3306 --execute --print

4.同步指定的库或表

pt-table-sync --charset=utf8 --ignore-databases=mysql,sys,percona --databases=test1 --no-check-slave dsn=u=root,p=root,h=172.172.178.75,P=3306 dsn=u=root,p=root,h=172.172.178.76,P=3306 --execute --print

5.同步主从数据

5.1.没有唯一键时

pt-table-sync --charset=utf8 --ignore-databases=mysql,sys,percona --no-check-slave dsn=u=root,p=root,h=172.172.178.75,P=3306 dsn=u=root,p=root,h=172.172.178.76,P=3306 --execute --print

5.2.有唯一键时,可以使用 --sync-to-master 和/或 --replicate

pt-table-sync --execute --sync-to-master --charset=utf8 --ignore-databases=mysql,sys,percona --no-check-slave dsn=u=root,p=root,h=172.172.178.76,P=3306 --print

6.注意事项

  • 在使用 pt-table-sync 之前,务必做好数据备份,以防数据丢失或损坏。
  • 如果使用 --sync-to-master 或 --replicate 参数,需要确保主库是基于语句格式的复制(SBR),并且执行该工具的用户具有 SUPER 权限。
  • 使用 --print 参数可以预览将要执行的同步操作,这对于验证同步逻辑非常有用。
  • 在生产环境中使用时,应选择业务低峰期进行操作,避免在高并发场景下造成阻塞。

通过上述信息,您可以更深入地了解 pt-table-sync 的使用方法和参数配置。在实际操作中,应根据具体的数据库环境和需求来选择合适的参数和同步策略。


http://www.ppmy.cn/news/1401844.html

相关文章

WebStorm 与 VSCode 对比分析

WebStorm 与 VSCode 对比分析 1. 引言 简述WebStorm和VSCode的普及和重要性 WebStorm和Visual Studio Code(VSCode)是当前最受欢迎的代码编辑器之一,它们在现代软件开发中扮演着至关重要的角色。WebStorm,由JetBrains开发,是一个强大的IDE,特别受JavaScript开发者的欢…

深入解析大语言模型显存占用:训练与推理

深入解析大语言模型显存占用:训练与推理 文章脉络 估算模型保存大小 估算模型在训练时占用显存的大小 全量参数训练 PEFT训练 估算模型在推理时占用显存的大小 总结 对于NLP领域的从业者和研究人员来说,有没有遇到过这样一个场景,你的…

element-ui inputNumber 组件源码分享

今日简单分享 inputNumber 组件的实现原理,主要从以下四个方面来分享: 1、inputNumber 组件的页面结构 2、inputNumber 组件的属性 3、inputNumber 组件的事件 4、inputNumber 组件的方法 一、inputNumber 组件的页面结构。 二、inputNumber 组件的…

element跑马灯/轮播图,第一页隐藏左边按钮,最后一页隐藏右边按钮(vue 开箱即用)

图示&#xff1a; 第一步&#xff1a; <el-carousel :class"changeIndex0?leftBtnNone:changeIndeximgDataList.length-1? rightBtnNone:" height"546px" :autoplay"false" change"changeNext"><el-carousel-item v-for…

近年来,常见5大软件开发项目管理工具

时代进步&#xff0c;技术进步&#xff0c;汇总下近几年5大常用的软件开发项目管理工具。 1、微软项目管理软件 Microsoft Project&#xff08;或MSP&#xff09;是由微软开发销售的项目管理软件程序。软件设计目的在于协助项目经理制定发展计划、为任务分配资源、跟踪进度、管…

Chrome浏览器 安装Vue插件vue-devtools

前言 vue-devtools 是一个为 Vue.js 开发者设计的 Chrome 插件。它可以让你更轻松地审查和调试 Vue 应用程序。与普通的浏览器控制台工具不同&#xff0c;Vue.js devtools 专为 Vue 的响应性数据和组件结构量身定做。 1. 功能介绍 组件树浏览&#xff1a;这个功能可以让你查…

未来制造:机器人行业新质生产力提升策略

机器人行业新质生产力提升咨询方案 一、机器人行业目前发展现状及特点&#xff1a; 创新活跃、应用广泛、成长性强。 二、机器人企业发展新质生产力面临的痛点&#xff1a; 1、高端人才匮乏 2、核心技术受限 3、竞争日益国际化 4、成本控制挑战 5、用户体验提升需求 三…

JS——模板字符串

在JavaScript中&#xff0c;模板字符串是一种新型的字符串表达方式&#xff0c;它提供了更直观、更强大的字符串拼接和格式化功能。模板字符串使用反引号&#xff08;&#xff09;来定义&#xff0c;并允许在字符串中嵌入表达式&#xff0c;这极大地提高了代码的可读性和可维护…