博客
关于我
pt-online-schema-change使用详解
阅读量:796 次
发布时间:2023-03-04

本文共 1644 字,大约阅读时间需要 5 分钟。

pt-online-schema-change简介

pt-online-schema-change是Percona公司开发的一个开源工具,属于Percona Toolkit的一部分。它专门用于在线修改数据库表结构,支持多种操作,如添加、修改、删除字段以及索引操作。

其工作原理如下:

1. 创建一张完全相同的新表,通常命名为《_tmp_前缀+原表名+_new》 2. 在新表中执行字段修改操作 3. 在原表上添加三个触发器(Delete、Update、Insert),确保所有对新表的操作也同步执行 4. 将原表数据拷贝到新表中 5. 替换原表为新表

使用示例:

如要在`tmp_task_user`表中添加支持字段,可以执行以下命令: ```bash sh pt.sh tmp_task_user "ADD COLUMN support tinyint(1) unsigned NOT NULL DEFAULT '1'" ```

日志输出通常会显示操作进度和状态,如主从延迟等信息。

主要优势:

1.显著降低主从延迟风险 2.可通过限速等方式控制资源消耗,避免MySQL负载过高

使用建议:

1.建议在业务低峰期执行,确保最小化对业务的影响 2.合理配置资源限制,避免因高负载导致操作失败

安装指南

1.访问Percona官网下载最新版本:[https://www.percona.com/downloads](https://www.percona.com/downloads) 2.解压后即可找到相关工具 3.如果遇到依赖问题,可使用包管理器安装相关软件包,如: ```bash yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL ```

操作指南

1.基本使用方法: ```bash ./bin/pt-online-schema-change --user=用户名 --password=密码 --host=地址 --port=3306 --database=库名 --table=表名 --alter="修改语句" --execute ``` 2.创建自定义脚本: ```bash #!/bin/bash table=$1 alter_command=$2 数据库配置参数可根据需要自定义 ./bin/pt-online-schema-change --charset=utf8 --no-version-check --user=${user} --password=${pwd} --host=${host} --port=3306 --database=${db} --table=$table --alter="${alter_command}" --execute ```

3.常用操作示例:

  • 添加字段:
sh pt.sh tb_test "ADD COLUMN column1 tinyint(4) DEFAULT NULL"
  • 修改字段:
sh pt.sh tb_test "MODIFY COLUMN num int(11) unsigned NOT NULL DEFAULT '0'"
  • 更改字段名:
sh pt.sh tb_test "CHANGE COLUMN age address varchar(30)"
  • 添加索引:
sh pt.sh tb_test "ADD INDEX idx_address(address)"

注意事项

1.建议在业务低峰期执行,避免影响正常运营 2.可根据需要限制操作进程和资源使用,确保性能 3.工具支持多种限制选项,适用于大规模数据修改

总之,pt-online-schema-change是一款极其实用的数据库优化工具,能够在不影响业务连续性的情况下,高效完成表结构修改。使用前请务必熟悉其工作原理,并根据实际业务需求进行合理配置。

转载地址:http://nwafk.baihongyu.com/

你可能感兴趣的文章
Post表单提交TextArea的值出现转译乱码问题 - Spring MVC处理表单提交
查看>>
Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
查看>>
Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
查看>>
power english (3) main text -emotion mastery - focus
查看>>
POWER ENGLISH (6) - MODEL
查看>>
power english (1) —— passion
查看>>
Power English (1) 原文
查看>>
power English (3)原文
查看>>
POWER ENGLISH(7)- repetition
查看>>
SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
查看>>
powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
查看>>
QGIS怎样设置简体中文以及新建可编辑的多边形的图层
查看>>
PowerBuilder 使用自定义事件触发键盘Enter事件
查看>>
PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
查看>>
PowerDesigner 使用的一些技巧(转)
查看>>
QGIS在Windows上下载安装与建立空间数据库连接
查看>>
PowerDesigner165安装婆姐汉花教程
查看>>
PowerDesigner使用教程:设置注释、默认值属性
查看>>
PowerDesigner使用教程:不显示背景网格
查看>>
PowerDesigner使用教程:创建数据模型以及导出
查看>>