1. オンラインで gtid を開く手順
ステップ 1 から 5 は各 mysql ノードで実行され、他のノードを操作する前に特定のライブラリとは独立してすべてのステップを完了することはできません。特に、最初にマスター ライブラリの gtid を開いたり、gtid を設定したりすることはできないことに注意してください。スレーブ ライブラリのパラメータが変更されると、同期が中断されます。
1. データベース内に gtid をサポートしていない操作があるかどうかを確認します。
ENFORCE_GTID_CONSISTENCY = WARN を設定し、一定期間実行します (できれば 1 日の中で最も負荷が高い時間帯を含む) 条件が許せば、2 ~ 3 日間観察して、ログにアラームがあるかどうかを確認することをお勧めします
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 警告;
2. 手順 1 でアラームが生成されなかった場合は、ENFORCE_GTID_CONSISTENCY を ON に設定します。
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = ON;
3. GTID_MODE = OFF_PERMISSIVE に設定します。次のステップに進む前に、すべてのサーバーがこのステップを完了する必要があります。
SET @@GLOBAL.GTID_MODE = OFF_PERMISSIVE;
このコマンドの効果: サーバーは GTID を生成しませんが、GTID なしのトランザクションを受け入れることができ、GTID のあるトランザクションも受け入れることができます。
4. GTID_MODE = OFF_PERMISSIVE を設定します。
SET @@GLOBAL.GTID_MODE = ON_PERMISSIVE;
このコマンドの効果: サーバーは GTID を生成しますが、GTID なしのトランザクションも受け入れることができ、GTID のあるトランザクションも受け入れることができます。
5. オンライン匿名トランザクションの数が 0 であることを確認し、GTID_MODE=ON を設定します。
「ONGOING_ANONYMOUS_TRANSACTION_COUNT」のようなステータスを表示;
SET @@GLOBAL.GTID_MODE = ON;
6. スレーブを再起動し、GTID モードに設定します。
STOP SLAVE [FOR CHANNEL 'channel'];
マスターを MASTER_AUTO_POSITION = 1 [チャンネル 'チャンネル' の場合]; に変更します。
START SLAVE [FOR CHANNEL 'channel'];
7. gtid パラメータをパラメータ ファイルに設定します。
ENFORCE_GTID_CONSISTENCY = オン
GTID_MODE=ON
上記は binlog 検証を表示するために記述でき、binlog は gtid が有効かどうかを反映できます。
2. オンラインでGTIDモードを終了する操作手順
1. コピーをオフにし、コピー場所を見つけて、従来のモードに切り替えます。
スレーブを停止します。
マスターを master_host='xxx'、master_port=3306、master_user='repl'、master_password='root'、master_log_file='3306-bin.000056'、master_log_pos=897553222、MASTER_AUTO_POSITION = 0; に変更します。
## MASTER_LOG_FILE、MASTER_LOG_POSとしてスレーブライブラリのRelay_Master_Log_File、Exec_Master_Log_Posを使用してコピー開始位置を指定します。
## MASTER_AUTO_POSITION = 0 を指定する必要があります。指定しないと、次のエラーが報告されます。
スレーブを開始します。
2. マスターとバックアップの GTID_MODE を順番に ON_PERMISSIVE、OFF_PERMISSIVE に設定します
@@global.gtid_mode=ON_PERMISSIVE を設定します。
@@global.gtid_mode=OFF_PERMISSIVE を設定します。
3. global.gtid_owned 変数文字列が空であることを確認します
@@global.gtid_owned を選択します。
4. マスター データベースとスタンバイ データベースの GTID をオフにする
SET @@GLOBAL.GTID_MODE = オフ;
enforce_gtid_consistency=OFF
5. gtid パラメータをパラメータ ファイルに設定します。
ENFORCE_GTID_CONSISTENCY = オフ
GTID_MODE=オフ