【MySQL】スレーブライブラリを復元する際、メインライブラリのBinlogが補完し続けるソリューション


シナリオ
ライブラリからプライマリ・ライブラリの1日前のバックアップからリカバリすると、次のエラーが発生しました.
SITION = 1, but the master has purged binary logs containing GTIDs that the slave requires

この例の1秒あたりのトランザクションは約4 K程度であるため,メインライブラリ上のBinlogはすぐに流された.しかし、更新クラスのトランザクションの多くは、古いデータが最新の変更によって正確なレコードに上書きされます.挿入または削除の操作がばらばらに行われます
処理方法
  • バックアップの再取得
  • データ量が大きすぎて、マスタライブラリ性能のジッタが
  • になりやすい.
  • は、業務特性に基づいて、消去された部分の変更情報
  • をスキップする.
    プロセス
    set sql_log_bin=0;
    stop slave;
    reset master;
    set global gtid_purged='90ceab5e-5a7f-490e-8103-caf8219a3075:1-88512715043,d54dc219-8fe7-11e8-826f-246e96637188:1-3,e154990a-8fe7-11e8-a92a-246e9661e038:1-3,ec803005-8fe7-11e8-af66-246e9663e440:1-3';
    set global slave_exec_mode=IDEMPOTENT;
    start slave;
    

    リファレンス
  • replication-gtids-failover
  • https://kknews.cc/code/l8nlg89.html