美文网首页
percona-toolkit常用操作

percona-toolkit常用操作

作者: Baiyh | 来源:发表于2019-11-29 10:43 被阅读0次

    安装文档

    sudo apt install percona-toolkit

    参考:https://segmentfault.com/a/1190000014924677

    --user=        连接mysql的用户名

    --password=    连接mysql的密码

    --host=        连接mysql的地址

    P=3306        连接mysql的端口号

    D=            连接mysql的库名

    t=            连接mysql的表名

    --alter        修改表结构的语句

    --execute      执行修改表结构

    --charset=utf8 使用utf8编码,避免中文乱码

    --no-version-check  不检查版本,在阿里云服务器中一般加入此参数,否则会报错

    注意:

    {xxxxx}:表示参数。

    D={mine},t={quick}逗号那儿不能添加空格,之前被坑了一次。

    表添加字段

    pt-online-schema-change --host=localhost --user=root --password=123456 --port=3306 --no-drop-old-table --execute --charset=utf8mb4 --no-version-check --alter "add column {coin} mediumint" D={mine},t={quick}

    表字段去掉默认值

    pt-online-schema-change --host=localhost --user=root --password=123456 --port=3306 --no-drop-old-table --execute --charset=utf8mb4 --no-version-check --alter "alter column {coin} drop default" D={mine},t={quick}

    表字段添加默认值

    pt-online-schema-change --host=localhost --user=root --password=123456 --port=3306 --no-drop-old-table --execute --charset=utf8mb4 --no-version-check --alter "alter column {coin} set default {0}" D={mine},t={quick}

    表字段添加索引

    pt-online-schema-change --host=localhost --user=root --password=123456 --port=3306 --no-drop-old-table --execute --charset=utf8mb4 --no-version-check --alter "ADD INDEX {idx_name} (`{column}`)" D={mine},t={quick}

    表删除外键

    注意:修改含有外键的表结构,需要加参数:

    --alter-foreign-keys-method

    如何把外键引用到新表?需要特殊处理带有外键约束的表,以保证它们可以应用到新表.当重命名表的时候,外键关系会带到重命名后的表上。

    该工具有两种方法,可以自动找到子表,并修改约束关系。

    auto: 在rebuild_constraints和drop_swap两种处理方式中选择一个。

    rebuild_constraints:使用 ALTER TABLE语句先删除外键约束,然后再添加.如果子表很大的话,会导致长时间的阻塞。

    drop_swap: 执行FOREIGN_KEY_CHECKS=0,禁止外键约束,删除原表,再重命名新表。这种方式很快,也不会产生阻塞,但是有风险:

    在删除原表和重命名新表的短时间内,表是不存在的,程序会返回错误。

    如果重命名表出现错误,也不能回滚了.因为原表已经被删除。

    none: 类似"drop_swap"的处理方式,但是它不删除原表,并且外键关系会随着重命名转到老表上面。

    删除外键:DROP FOREIGN KEY _{foreign_key},注意前面加个_

    pt-online-schema-change \

    --host={ip} \

    --user={user} \

    --password={password} \

    --port=3306 \

    --no-drop-old-table \

    --execute \

    --charset=utf8mb4 \

    --no-version-check \

    --alter-foreign-keys-method auto \

    --alter "DROP FOREIGN KEY _{foreign_key}" \

    D={database},t={table}

    相关文章

      网友评论

          本文标题:percona-toolkit常用操作

          本文链接:https://www.haomeiwen.com/subject/dlpulqtx.html