pt工具的使用(4) pt-osc的使用

pt-online-schema-change详解
本文深入探讨了pt-online-schema-change工具的工作流程、参数详解、原理和限制,通过实践案例展示了如何在线修改数据库表结构,同时提供了低版本pt-osc遇到问题的解决方案。

一、参数详解 

  --alter = s                      模式修改,不带ALTER TABLE关键字

  --alter-foreign-keys-method = s  如何修改外键以便它们引用新表

  --[no]analyze-before-swap         在新表上执行ANALYZE TABLEANALYZE TABLE
                                   与旧的交换之前(默认yes)

  --channel = s                    连接到服务器时使用的通道名称,使用复制渠道

  --[no] check-alter                解析指定的--alter并尝试警告可能的意外行为(默认yes)

  --check-interval = m             检查--max-lag(默认值1)。可选后缀s =秒,m =
                                   分钟,h =小时,d =天;如果没有后缀,则使用s。

  --[no] check-plan                 检查查询执行计划的安全性(默认yes)

  --[no] check-replication-filters  如果任何服务器设置了复制过滤器,则中止(默认为yes)

  --check-slave-lag = s            暂停数据拷贝,直到此副本的延迟小于--max-lag

  --[no] check-unique-key-change    避免pt-online-schema-change运行,如果
                                   --alter的指定语句试图添加唯一索引(默认为yes)
  --chunk-index = s                对于分块表,首选此索引

  --chunk-index-columns = i        仅使用-块索引

  --chunk-size = z                 为每个拷贝块选择的行数(默认为1000)

  --chunk-size-limit = f           不要复制比该参数还要大的块(默认为4.0)

  --chunk-time = f                 动态调整块大小,以便每个数据复制查询需要很长时间才能执行(
                                   默认值0.5)
  --config = A                     读取此逗号分隔的config列表文件;如果指定,则必须是第一个
                                   命令行上的选项
  --critical-load = A              在每次执行后检查SHOW GLOBAL STATUS块,
                                   如果负载太高则中止(默认Threads_running = 50)                                         
  --data-dir = s                   在另一个数据目录创建新表使用DATA DIRECTORY功能进行分区

  --defaults-file = s -F           仅从给定文件读取mysql选项

  --[no] drop-new-table             如果复制原始表失败,则删除新表(默认为yes)

  --[no] drop-old-table             重命名原始表后将其删除(默认yes)

  --[no] drop-triggers              在旧表上删除触发器。 --no-drop-triggers
                                   强制--no-drop-old-table(默认yes)
  --dry-run                        创建和更改新表,但不要创建触发器,复制数据或替换原始表

  --execute                        表示您已阅读文档并想要更改表格

  --force                          该选项绕过确认以防万一
                                   使用alter-foreign-keys-method = none的方法
                                   这可能会打破外键约束
  --max-flow-ctl = f               类似于--max-lag,但用于PXC集群

  --max-lag = m                    暂停数据副本,直到所有副本的延迟小于此值(默认为1s)。
                                   可选后缀s =秒,m =分钟,h =小时,d =天;如果没有后缀,
                                   则使用s。
  --max-load = A                   每一块执行之后检查SHOW GLOBAL STATUS
                                   ,如果有任何状态变量,则暂停
                                   高于其阈值(默认线程数= 25)
  --new-table-name = s             交换之前的新表名。 %T是
                                   替换为原始表名(默认为%T_new)
  --null-to-not-null               允许修改NULL列为NOT NULL列

  --only-same-schema-fks           仅在与原始表具有相同的库的表上检查外键
  
  --pause-file = s                 此参数指定的文件存在时暂停执行

  --plugin = s                     Perl模块文件,该文件定义了
                                   pt_online_schema_change_plugin类别
  --preserve-triggers              指定时保留旧触发器

  --print                          将SQL语句打印到STDOUT

  --progress = a                   复制行时将进度报告打印到STDERR(默认时间30)

  --quiet -q                       不将消息打印到STDOUT(禁用--progress)

  --recurse = i                    发现副本时层次结构中要递归的级别数
                                   
  --recursion-method = a           用于发现副本的首选递归方法(默认进程列表,主机)

  --remove-data-dir                如果原始表是使用
                                   数据目录功能,将其删除并
                                   在MySQL默认目录中创建新表
                                   不创建新的isl文件(默认否)
  --set-vars = A                   在此设置MySQL变量-变量=值对的列表,以逗号分隔

  --skip-check-slave-lag = d       在从属滞后时跳过DSN检查

  --sleep = f                      复制每个块后的睡眠时间(以秒为单位)(默认为0)
                                   
  --statistics    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值