背景
-
最近正在拓展
MySQL
数据库知识
发现很多提及"PerconaTookit"
管理工具的建议
会方便对数据库在线状态下的结构调整
在此,先进行安装一番 … -
环境
MySQL版本: mysql 5.7.32
Linux 版本: CentOS7.9
PerconaTookit : 3.0.7
安装步骤
1). 安装第三方依赖包
- 首先需要安装几个第三方依赖包
yum install -y perl-DBI perl-DBD-MySQL perl-IO-Socket-SSL perl-TermReadKey perl-Digest-MD5
2). 下载 percona-toolkit
的 rpm
文件
官网下载地址:
【percona-toolkit】
- 根据自己的需求,选择版本
如果网速还可以,那指令命令如下 (建议本地下载后,上传到Linux
服务器中):
wget https://downloads.percona.com/downloads/percona-toolkit/3.0.7/binary/redhat/7/x86_64/percona-toolkit-3.0.7-1.el7.x86_64.rpm
wget https://downloads.percona.com/downloads/percona-toolkit/3.0.7/binary/redhat/7/x86_64/percona-toolkit-debuginfo-3.0.7-1.el7.x86_64.rpm
提示:
不同版本可能会有多个
rpm
文件,都需要下载!
3). 安装 PerconaTookit
工具
- 此时,便可进行安装操作,指令如下:
rpm -ivh *.rpm
4). 查看是否安装成功
- 可以使用命令
pt-query-digest --help
pt-table-checksum --help
- 如果命令提示可以正常显示,则说明 pt 工具已经正常安装和使用了
附录
"pt-online-schema-change"
的使用
pt-online-schema-change
:在线修改表结构,不会锁表阻塞
-
其原理就是先创建一个新表,
然后复制原表数据到新表,
数据复制完成后删除原表,再将新表改名。通常在业务时间需要修改大表(如表有500M 以上或者有上千万行数据时)结构的情况下使用,
执行过程可以看到一个进度 -
首先,要明确下各个参数的含义:
-
一个参考指令如下(用于修改数据表字段数据类型):
pt-online-schema-change --host=192.168.80.221 --port=3306 --user=root --password=MT123456 --alter "MODIFY name varchar(20) NOT NULL COMMENT '用户名'" D=tp5_pro,t=xtest_logs --print --execute
如果,有主从关联,还需要添加参数:
"--nocheck-replication-filters"
,即不检查从库
提示
PerconaTookit 操作指令非常多,建议阅读 ——
【官方文档】