数据库中pt-online-schema-change的示例分析
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍了数据库中pt-online-schema-change的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。#!/
千家信息网最后更新 2025年02月02日数据库中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安全错误
数据库的锁怎样保障安全
公众号怎么调用本地数据库
腾讯云服务器不用了
重庆南川免费生鲜软件开发
pg数据库行列转换
家庭安全与网络安全的手抄报
软件开发保密费
使用现代网络技术
医保网络安全管理
增加文件到数据库sql语句
教育培训机构数据库管理系统案例
服务器路由器网线插哪个口
腾讯云服务器管理员账号密码
vba数据库创建方法比较
win10的服务器管理器
火星小课堂网络安全保护篇
杭州金相投互联网科技
网络安全考试考点
软件开发系统分析设计
汽车线束插件三维数据库
网络代理服务器配置
无线传感器网络技术及应用课件
网络安全宣传签名
网络安全图像数据集
华为网络安全与个人隐私保护
优秀网络技术员
怎么看数据库的所有表
小型企业网络安全系统
汉口串口服务器企业
网络安全审查不正确的是
2013版三级网络技术