pt-online-schema-change [OPTIONS] DSN # 给表actor.sakila 添加一个列 pt-online-schema-change --alter "ADD COLUMN c1 INT" D=sakila,t=actor # 修改表sakila.actor 的存储引擎为InnoDB。 # 如果该表原本就是innoDB的存储引擎,该语句还能用来非阻塞方式的 OPTIMIZE TABLE pt-online-schema-change --alter...
从Percona Toolkit 3.6.0 开始,pt-online-schema-change 支持 -where 选项,因此不仅可以实时更改表定义,还可以只复制满足特定条件的行。在更改表定义时,可能并不需要复制所有数据。例如,如果表太大,而你只需要最近的数据。要完成这项工作,pt-online-schema-change 要加上参数选项 -where='YOUR WHERE CONDITION' ...
1.2 安全的pt-online-schema-change 默认情况下,pt-online-schema-change 是不会修改表的,除非你显示的指定了 --execute pt-online-schema-change 有一系列动作来阻住一切不期望的后果发生,包括 自动检测复制,以及以下相关措施 大部分情况下,pt-online-schema-change会拒绝给没有主键和唯一键的表做操作,可以参考 ...
二、pt-online-schema-change原理 1、如果存在外键,根据alter-foreign-keys-method参数的值,检测外键相关的表,做相应设置的处理。 2、创建一个新的表,表结构为修改后的数据表,用于从源数据表向新表中导入数据。 3、创建触发器,用于记录从拷贝数据开始之后,对源数据表继续进行数据修改的操作记录下来,用于数据拷贝结...
pt-online-schema-change是Percona-toolkit一员, 支持在不锁表的情况下,在线改表。 PT-OSC 工作流程 1. 创建一个和要执行 alter 操作的表一样的新的空表,后缀默认是new。 2. 在新表执行alter table 语句,因为是空表,执行速度很快。 3. 在原表中创建触发器3个触发器分别对应insert,update,delete操作。
pt-online-schema-change是个可以不锁表的情况下更改表结构的工具,也可以添加索引,建议在表数据量极大的时候使用 安装 apt install percona-toolkit 准备一个千万行数据的大表 CREATE TABLEperson(id int NOT NULL AUTO_INCREMENT PRIMARY KEY comment'主键',person_id tinyint notnullcomment'用户id',person_nameVA...
一、pt-online介绍 pt-online-schema-change是percona公司开发的一个工具,在percona-toolkit包里面可以找到这个功能,它可以在线修改表结构 原理: 首先它会新建一张一模一样的表,表名一般是_new后缀 然后在这个新表执行更改字段操作 然后在原表上加三个触发器,DELETE/UPDATE/INSERT,将原表中要执行的语句也在新表中...
pt-online-schema-change [OPTIONS] DSN options可以自行查看help,DNS为你要操作的数据库和表。 注意事项: 1. 在参数配置时,注意是否需要--drop-new-table、--drop-old-table 2. 在添加了--check-slave-lag时候,配置--max-lag,延迟低于--max-lag的时候才继续,多个slave可以使用--recursion-...
./pt-online-schema-change --help 3. 参数字段及含义 4. 具体操作 添加一个字段 如果执行失败,检查alter语句,如果确认无误 可以避免检查--no-check-alter ./pt-online-schema-change--user=xxxx --password=xxxx --host=xxx.xxx.xxx.xxxx --alter "add column group_id bigint(20) not NULL default ...
pt-online-schema-change是Percona-toolkit一员, 支持在不锁表的情况下,在线改表。 PT-OSC 工作流程 1. 创建一个和要执行 alter 操作的表一样的新的空表,后缀默认是new。 2. 在新表执行alter table 语句,因为是空表,执行速度很快。 3. 在原表中创建触发器3个触发器分别对应insert,update,delete操作。