pt-online-schema-change 在线修改表结构
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,1. 参数参数默认值说明--host=xxx --user=xxx --password=xxx连接实例信息,缩写-h xxx -u xxx -p xxx,密码可以使用参数--ask-pass 手动输
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
注药泵软件开发
敖汉旗天气预报软件开发
允许安全访问办公室中服务器
天津工业大学论文重用数据库
松江区市场软件开发销售方法
smtp服务器怎么发邮件
演讲稿 网络安全教育
软件开发的最新理念
软件开发时间节点确定
医院的等保是哪些服务器
湖北生鲜专用软件开发
怎样清除数据库文件夹
打卡软件数据库没有记录
北京天盈九州网络技术公司
岩土工程专业软件开发
学软件开发专升本报哪个专业
aws 服务器优惠
泰坦数据库
在外连接无线网络安全吗
数据库操作主要有哪些
好口碑的软件开发技术
华为网络技术期中考试A卷
敖汉旗天气预报软件开发
虚拟化安全性和服务器哪个好
图片链接服务器
ftp服务器是如何配置的
玛特互联网科技广州有限公司
网络技术服务业实习内容写什么
库尔勒互联网科技是在哪个学校
河北企业党建软件开发系统