数据库中pt-online-schema-change的示例分析
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍了数据库中pt-online-schema-change的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/
千家信息网最后更新 2025年11月07日数据库中pt-online-schema-change的示例分析
这篇文章主要介绍了数据库中pt-online-schema-change的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
#!/bin/bash#运行该脚本需要更改2个地方:第一个是基本信息;第二个是--alter#基本信息(需要更改)user='xxx'password='xxx' host='xxx'port=xxxxD='xxx't='xxx'#--alter(需要更改)#--------------example----------------# 1.增加字段# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "ADD COLUMN content text" D=$D,t=$t --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute# # 2.删除字段# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "DROP COLUMN content " D=$D,t=$t --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --execute# # 3.修改字段# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "MODIFY COLUMN age TINYINT NOT NULL DEFAULT 0" D=$D,t=$t --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --execute## 4.字段改名# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "CHANGE COLUMN age address varchar(30)" D=$D,t=$t --no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --execut## 5.增加索引# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "ADD INDEX idx_address(address)" D=$D,t=$t --no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute## 6.删除索引# pt-online-schema-change --user=$user --password=$password --host=$host --port=$port --alter "DROP INDEX idx_address" D=$D,t=$t --no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute##--------------参数说明-------------# 1. --ask-pass# 隐式输入连接MySQL的密码# 2. --defaults-file# -F读取配置文件# 3. --alter# 结构变更语句,不需要alter table关键字。可以指定多个更改,用逗号分隔。如下场景,需要注意:# 不能用RENAME来重命名表。 # 列不能通过先删除,再添加的方式进行重命名,不会将数据拷贝到新列。# 如果加入的列非空而且没有默认值,则工具会失败。即其不会为你设置一个默认值,必须显示指定。# 删除外键(drop foreign key constrain_name)时,需要指定名称_constraint_name,而不是原始的constraint_name。# 如:CONSTRAINT `fk_foo` FOREIGN KEY (`foo_id`) REFERENCES `bar` (`foo_id`),需要指定:--alter "DROP FOREIGN KEY _fk_foo"# 4. --alter-foreign-keys-method# 需要特殊处理带有外键约束的表,以保证它们可以应用到新表.当重命名表的时候,外键关系会带到重命名后的表上。# 该工具有两种方法,可以自动找到子表,并修改约束关系。# auto: 在rebuild_constraints和drop_swap两种处理方式中选择一个。# # rebuild_constraints:使用 ALTER TABLE语句先删除外键约束,然后再添加.如果子表很大的话,会导致长时间的阻塞。# drop_swap: 执行FOREIGN_KEY_CHECKS=0,禁止外键约束,删除原表,再重命名新表。这种方式很快,也不会产生阻塞,但是有风险:# 在删除原表和重命名新表的短时间内,表是不存在的,程序会返回错误。# 如果重命名表出现错误,也不能回滚了.因为原表已经被删除。# none: 类似"drop_swap"的处理方式,但是它不删除原表,并且外键关系会随着重命名转到老表上面。# 5. --[no]check-alter# 默认yes,语法解析。配合--dry-run 和 --print 一起运行,来检查是否有问题(change column,drop primary key)。## 6. --max-lag# 默认1s。每个chunk拷贝完成后,会查看所有复制Slave的延迟情况。要是延迟大于该值,则暂停复制数据,直到所有从的滞后小于这个值,使用Seconds_Behind_Master。# 如果有任何从滞后超过此选项的值,则该工具将睡眠--check-interval指定的时间,再检查。如果从被停止,将会永远等待,直到从开始同步,并且延迟小于该值。# 如果指定--check-slave-lag,该工具只检查该服务器的延迟,而不是所有服务器。# 7. --check-slave-lag# 指定一个从库的DSN连接地址,如果从库超过--max-lag参数设置的值,就会暂停操作# # 8. --check-interval# 默认是1。--max-lag检查的睡眠时间。## 9. --[no]check-replication-filters# 默认yes。如果工具检测到服务器选项中有任何复制相关的筛选,如指定binlog_ignore_db和replicate_do_db此类。发现有这样的筛选,工具会报错且退出。# 因为如果更新的表Master上存在,而Slave上不存在,会导致复制的失败。使用-no-check-replication-filters选项来禁用该检查。# 10. --[no]drop-old-table# 默认yes。复制数据完成重命名之后,删除原表。如果有错误则会保留原表。# ##-------------------------------------------------
使用时根据案例和参数说明更改相关参数即可。
感谢你能够认真阅读完这篇文章,希望小编分享的"数据库中pt-online-schema-change的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
工具
检查
参数
字段
方式
篇文章
延迟
时间
服务器
错误
处理
服务
数据库
示例
分析
信息
拷贝
索引
语句
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc自建服务器地图导出
原理图软件开发
天门管理软件开发定制
网络安全设备采购规定
喜欢我网络技术公司
网络安全实验室题脚本关
进入数据库的密码
java批量处理数据库语句
环保软件开发工程师
软件开发研究程序吗
海康威视管理服务器主要参数
数据库ssms工具什么意思
企业常用的网络安全协议
服务器单独文件夹加密
关于小学网络安全的画画
河南什么是网络技术分类标准
共享充电宝 软件开发
深圳巡检软件开发
利用数据库检测内存卡
电子书数据库软件系统
2022网络安全管理
资源更新服务器未启动
2021江西省学生网络安全答题
数据库中必不可少的对象
广州吉赫互联网科技有限公司
j开头有什么数据库可以用
ibm服务器网卡不支持百兆吗
政府软件开发公司吗
微软的数据库技术
服务器本地来回传文件用什么