用途範例

  • 希望遷移完成/失敗時,能夠收到通知
  • 希望當 gh-ost 開始推遲 cut-over 時收到通知
  • 希望 gh-ost 定期回報進度

使用hook

所有的hook都應該放在 --hooks-path 指定的目錄裡,如果沒有提供則不執行 hook。
hook的命名必須為以下前綴:
  • gh-ost-on-startup
  • gh-ost-on-validated
  • gh-ost-on-rowcount-complete
  • gh-ost-on-before-row-copy
  • gh-ost-on-status
  • gh-ost-on-interactive-command
  • gh-ost-on-row-copy-complete
  • gh-ost-on-stop-replication
  • gh-ost-on-start-replication
  • gh-ost-on-begin-postponed
  • gh-ost-on-before-cut-over
  • gh-ost-on-success
  • gh-ost-on-failure

環境變量

  • GH_OST_DATABASE_NAME
  • GH_OST_TABLE_NAME
  • GH_OST_GHOST_TABLE_NAME
  • GH_OST_OLD_TABLE_NAME:原始表在 cut-over 之後的名稱
  • GH_OST_DDL:DDL 語句
  • GH_OST_ELAPSED_SECONDS:總運行時間
  • GH_OST_ELAPSED_COPY_SECONDS:Row copy 花費的時間
  • GH_OST_ESTIMATED_ROWS:估計的行數
  • GH_OST_COPIED_ROWS:gh-ost 複製的行數
  • GH_OST_INSPECTED_LAG:replication lag (second)
  • GH_OST_PROGRESS:遷移的進度 [0...100] %
  • GH_OST_MIGRATED_HOST
  • GH_OST_INSPECTED_HOST
  • GH_OST_EXECUTING_HOST
  • GH_OST_HOOKS_HINT--hooks-hint的值
  • GH_OST_HOOKS_HINT_OWNER--hooks-hint-owner的值
  • GH_OST_HOOKS_HINT_TOKEN--hooks-hint-token的值
  • GH_OST_DRY_RUNgh-ost 是否是 dry run
  • GH_OST_COMMAND:only available in gh-ost-on-interactive-command
  • GH_OST_STATUS:only available in gh-ost-on-status

範例