如果调用pt-online--schema-change,请注意调整以下几个参数:
inception_osc_max_thread_connected | SESSION | 1000 | 对应参数--max-load中的thread_connected部分 |
inception_osc_critical_thread_connected | SESSION | 1000 | 对应参数--critical-load中的thread_connected部分 |
如果是调用gh-ost 请注意调整以下几个参数:
osc_critical_thread_connected | 1000 | int | 对应参数--critical-load中的thread_connected部分 |
osc_critical_thread_running | 80 | int | 对应参数--critical-load中的thread_running部分 |
osc_max_thread_connected | 1000 | int | 对应参数--max-load中的thread_connected部分 |
osc_max_thread_running | 80 | int | 对应参数--max-load中的thread_running部分 |
调整注意事项:
--critical-load 每次chunk操作前后,会根据show global status统计指定的状态量的变化,默认是统计Thread_running。
目的是为了安全,防止原始表上的触发器引起负载过高。这也是为了防止在线DDL对线上的影响。超过设置的阀值,就会终止操作,在线DDL就会中断。提示的异常如上报错信息。
--max-load 选项定义一个阀值,在每次chunk操作后,查看show global status状态值是否高于指定的阀值。该参数接受一个mysql status状态变量以及一个阀值,如果没有给定阀值,则定义一个阀值为为高于当前值的20%。
注意这个参数不会像--critical-load终止操作,而只是暂停操作。当status值低于阀值时,则继续往下操作。
是暂停还是终止操作这是--max-load和--critical-load的差别。