pt-online-schema-change 在线修改表结构
发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,1. 参数参数默认值说明--host=xxx --user=xxx --password=xxx连接实例信息,缩写-h xxx -u xxx -p xxx,密码可以使用参数--ask-pass 手动输
千家信息网最后更新 2025年02月22日pt-online-schema-change 在线修改表结构
1. 参数
参数 | 默认值 | 说明 |
---|---|---|
--host=xxx --user=xxx --password=xxx | 连接实例信息,缩写-h xxx -u xxx -p xxx,密码可以使用参数--ask-pass 手动输入。 | |
--alter | 结构变更语句,不需要 ALTER TABLE关键字。与原始ddl一样可以指定多个更改,用逗号分隔。 | |
D=db_name,t=table_name | 指定要ddl的数据库名和表名 | |
--max-load | 默认为Threads_running=25。每个chunk拷贝完后,会检查 SHOW GLOBAL STATUS 的内容,检查指标是否超过了指定的阈值。如果超过,则先暂停。这里可以用逗号分隔,指定多个条件,每个条件格式: status指标=MAX_VALUE或者status指标:MAX_VALUE。如果不指定MAX_VALUE,那么工具会这只其为当前值的120%。 | |
--max-lag | 默认1s。每个chunk拷贝完成后,会查看所有复制Slave的延迟情况(Seconds_Behind_Master)。要是延迟大于该值,则暂停复制数据,直到所有从的滞后小于这个值。--check-interval配合使用,指定出现从库滞后超过 max-lag,则该工具将睡眠多长时间,默认1s,再检查。如--max-lag=5 --check-interval=2。 | |
--chunk-time | 默认0.5s,即拷贝数据行的时候,为了尽量保证0.5s内拷完一个chunk,动态调整chunk-size的大小,以适应服务器性能的变化。 | |
--set-vars | 使用pt-osc进行ddl要开一个session去操作,set-vars可以在执行alter之前设定这些变量,比如默认会设置--set-vars "wait_timeout=10000,innodb_lock_wait_timeout=1,lock_wait_timeout=60"。 | |
--dry-run | 创建和修改新表,但不会创建触发器、复制数据、和替换原表。并不真正执行,可以看到生成的执行语句,了解其执行步骤与细节,和--print配合最佳。。 | |
--execute | 确定修改表,则指定该参数。真正执行alter。-dry-run与-execute必须指定一个,二者相互排斥 |
1. --alter说明
1.绝大部分情况下表上需要有主键或唯一索引,因为工具在运行当中为了保证新表也是最新的,需要旧表上创建 DELETE和UPDATE 触发器,同步到新表的时候有主键会更快。个别情况是,当alter操作就是在c1列上建立主键时,DELETE触发器将基于c1列。
- 子句不支持 rename 去给表重命名。
- alter命令原表就不支持给索引重命名,需要先drop再add,在pt-osc也一样。(mysql 5.7 支持 RENAME INDEX old_index_name TO new_index_name)。但给字段重命名,千万不要drop-add,整列数据会丢失,使用change col1 col1_new type constraint(保持类型和约束一致,否则相当于修改 column type,不能online)
- 子句如果是add column并且定义了not null,那么必须指定default值,否则会失败。
- 如果要删除外键(名 fk_foo),使用工具的时候外键名要加下划线,比如--alter "DROP FOREIGN KEY _fk_foo"
2. 使用限制
- 原表上不能有触发器存在
- 在使用之前需要对磁盘容量进行评估。因为数据量会多一倍
3. 使用示例
1. 添加字段
pt-online-schema-change --user=user --password=password --host=10.0.201.34 --alter "ADD COLUMN f_id int default 0" D=confluence,t=sbtest3 --print --execute
数据
参数
工具
触发器
情况
拷贝
指标
时候
支持
检查
多个
子句
字段
条件
索引
语句
逗号
保证
延迟
原始
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全战略目标
西安网络技术调试
2018网络安全要压实主体责任
数据库技术数据视图
服务器租用主机安全吗
网络安全黑板报唯美
宜昌百思特软件开发
软件开发技术运营合同
网络安全和系统安全的工作称呼
软件开发硬件和软件
ess服务器
国产服务器联想
网络安全漫画手绘图
达梦数据库导入报错日志位置
数据库实体之间的归属关系
浙江2u刀片服务器云主机
企业网络安全如何监控
饥荒联机连接服务器闪退
的数据库系统中 应用
兴乐网络技术
ffmpeg服务器怎么开发
车载网络技术相关教科书
用友t3用友通数据库
电脑网络技术工作餐
数据库编程工具
不小心把数据库删除了怎么办
不同数据库联合查询
电脑服务器主机生产
宁波服务器机房搭建服务
山东服务器硬盘质保期