良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

MySQL percona-toolkit工具包的安装和使用


pt-osc原理图,可以在线热更表结构


1、 下载安装

到官网下包:

https://www.percona.com/downloads/percona-toolkit/LATEST/


tar xvf percona-toolkit-3.0.13_x86_64.tar.gz 

cd percona-toolkit-3.0.13

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL  perl-ExtUtils-MakeMaker -y

perl Makefile.PL

make

make install


就安装完了



2、常用命令


pt-online-schema-change \

   --host=blog.uouo123.com \

   --port=3306 \

   --user=xxxx \

   --password=xxxx \

   --alter "add column uouo123 varchar(8) not null default '' " \

     D=DBname,t=Tablename \

   --execute

3、常用参数解释


--alter-foreign-keys-method=s

      设置修改外键的方式,一共有如下4个值:

      auto:优先选择rebuild_constraints方式处理外键,如果该方式不可用才选择drop_swap;

      rebuild_constraints:在最后rename表后,删除子表上的外键,并进行重新建立到新表的外键。

      drop_swap:拷贝数据后,设置SET foreign_key_checks=0,直接将原表drop掉,然后rename临时表为新表

      none:表示强制不考虑子表外键约束,设置SET foreign_key_checks=0,最终会导致子表外键约束到_table_old这个已删除的表上,不建议使用

 --max-load string

      string是状态表达式,默认Threads_running=25,当设置多个状态值,用逗号分隔,如'Threads_running=100,Threads_connected=500',当超过该值,迁移暂停等待,通过sleep方式暂停

 --critical-load

      与max-load不同的是,当超过该值,迁移直接停止并退出,默认值是Threads_running=50

--max-lag=m

      默认1s,检查slave延迟的值,超过1秒则暂停复制数据


4、 常见报错信息:
Use of uninitialized value $host in string eq at /usr/local/percona-toolkit-3.0.3/bin/pt-online-schema-change line 4284.


使用 pt-osc 的时候加上如下参数,不去检查 slave 的状态。

--recursion-method=none

搞定!

标签: percona-toolkitmysqlpt-oscalter

作者:良玉 分类:Mysql 浏览:165 评论:0
留言列表
发表评论
来宾的头像