• percona-toolkit中在线ddl


    percona-toolkit中在线ddl

    percona-toolkit工具提供了一组用于mysql操作的工具,比如主从复制,在线更改mysql表ddl等

    一.安装
    1.安装perl(略)

    yum install perl
    

      

    2.安装必要软件:

    yum install perl-DBI
    yum install perl-DBD-MySQL 
    yum install perl-Time-HiRes 
    

      

    3.安装percona-toolkit
    wget http://percona.com/get/percona-toolkit.tar.gz

    tar zxvf percona-toolkit-2.1.5.tar.gz
    cd percona-toolkit-2.1.5
    perl Makefile.PL
    make
    make test
    make install


    二.使用pt-online-schema-change在线更改ddl

    D代表数据库
    t代表数据表
    alter 代表操作语句,但无需alter table,pt-online-schema-change不能rename table.

    *表必须要有主键,删除主键的更改不会被接受 

    1.增加列(操作)
    pt-online-schema-change -u root -h 127.0.0.1 -p test --alter='drop column vid' --charset=utf8 --execute D=test,t=test

    注意:需要增加--charset,否则可能会造成数据表结构注释的乱码

    2.增加列(只显示操作过程)
    pt-online-schema-change -u root -h 127.0.0.1 -p test --alter='drop column vid' --charset=utf8 --print D=test,t=test

    3.删除列
    pt-online-schema-change --user=root --password=123456 --host=192.168.200.25 --alter "DROP COLUMN content " D=aaa,t=tmp_tes

    4.修改字段
    pt-online-schema-change --user=root --password=123456 --host=192.168.200.25 --alter "MODIFY COLUMN age TINYINT NOT NULL DEFAULT 0" D=aaa,t=tmp_test --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --execute

    5.字段改名
    pt-online-schema-change --user=root --password=123456 --host=192.168.200.25 --alter "CHANGE COLUMN age address

    6.增加索引
    pt-online-schema-change --user=root --password=123456 --host=192.168.200.25 --alter "ADD INDEX idx_address(address)" D=aaa,t=tmp_test --no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute

    7.删除索引
    pt-online-schema-change --user=root --password=123456 --host=192.168.200.25 --alter "DROP INDEX idx_address" D=aaa,t=tmp_test --no-check-alter --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --print --execute

    需要注意:在生产环境中更改,需要备份,及测试,测试无误后再做更改

  • 相关阅读:
    re模块 与正则表达式之间的关系 一.....
    计算机硬件组成
    随便
    linux crontab定时
    linux shell命令记录
    tomcat意外退出 A valid shutdown command was received via the shutdown port. Stopping the Server instance
    mongodb设置用户
    mongodb的mongo.conf文件 启动参数
    mysql设置不区分表名大小写
    mongodb报Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6131732.html
Copyright © 2020-2023  润新知