ApsaraDB for ClickHouse は、ClickHouse クラスターに付属する ZooKeeper クラスターの管理をサポートしています。現在、ZXID の使用率が高い場合に、ZooKeeper のリーダー切り替え操作をスケジュールできます。この操作により、ZooKeeper はリーダーを再選出して ZXID をリセットします。
前提条件
クラスターのステータスが [実行中] であること。
クラスターがクラスターの再起動中でないこと。
クラスターへの影響
クエリ: 影響を受けません。
書き込み操作:
ReplicatedMergeTree シリーズエンジンを使用するテーブルへの書き込み操作で、一時的な切断が発生します。
リーダーの切り替え中に書き込み中断が構成されている場合、リーダーの切り替えが開始されると、インスタンスは書き込み中断状態になります。インスタンスへのすべての書き込み操作は失敗します。
DDL 操作: 分散 DDL の実行がブロックされる可能性があります。
影響期間:
書き込み中断の構成なし: 約 1~2 分。
書き込み中断の構成あり: 約 2~10 分 (この期間中は書き込み操作は許可されません)。
メタデータの不整合が発生する可能性があります。
ZooKeeper のリーダー切り替え操作中、ClickHouse ノードと ZooKeeper 間のすべての接続が切断されます。このプロセス中に高頻度の書き込み操作が実行されると、メタデータの不整合が発生し、クラスター内の一部のテーブルが
Read-only状態になる可能性があります。メタデータの不整合の問題を効果的に回避するために、リーダーの切り替え期間中は書き込み周波数を減らすか、書き込み操作を停止することをお勧めします。
リーダー切り替え操作
ApsaraDB for ClickHouse コンソールにログインします。
左上のコーナーで、管理するクラスターがデプロイされているリージョンを選択します。
[クラスター] ページで、[Community Edition インスタンスリスト] を選択し、対象クラスターの ID をクリックします。
[クラスター情報] ページで、ページの左下隅にある [設定情報] の [ZooKeeper 設定] セクションで、[リーダー切り替えのスケジュール] をクリックします。
[リーダー切り替え設定] ダイアログボックスで、この操作の影響をよく読み、[OK] をクリックします。
[リーダー切り替え設定] 構成ダイアログボックスで、[書き込み中断の構成] と [操作モードの選択] を構成します。
[書き込み中断の構成]:
[書き込みの中断]: インスタンスは、リーダーの切り替え期間中に書き込み操作を禁止する状態になります。このプロセス中、インスタンスへのすべての書き込み操作は失敗します。プロセス全体は、最短で 2 分、最長で 10 分かかります。
[書き込みを中断しない]: リーダーの切り替え期間中、インスタンスはインスタンスへの書き込み操作を禁止せずに、直接リーダー切り替え操作を実行します。
[操作モードの選択]:
[リーダー切り替えのスケジュール]: [スケジュールされた時間] でクラスターのリーダー切り替え時間を設定します。クラスターは、スケジュールされた時間にリーダーの切り替えを開始します。
[即時リーダー切り替え]: クラスターはすぐにリーダーの切り替えを実行します。
[OK] をクリックします。
説明リーダーの切り替えが開始されると、クラスターのステータスは [リーダーの切り替え中] に変わります。ステータスが [実行中] に変わると、リーダー切り替え操作は完了です。
スケジュールされた操作の変更またはキャンセル
スケジュールされた操作を変更またはキャンセルできるのは、リーダー切り替え操作中にクラスターがすでにスケジュールされたリーダー切り替えモードに設定されている場合のみです。
ApsaraDB for ClickHouse コンソールにログインします。
左上のコーナーで、管理するクラスターがデプロイされているリージョンを選択します。
[クラスター] ページで、[Community Edition インスタンスリスト] を選択し、対象クラスターの ID をクリックします。
[クラスター情報] ページで、ページの左下隅にある [設定情報] の [ZooKeeper 設定] セクションで、[リーダー切り替えのスケジュール] をクリックします。
[リーダー切り替え設定] ダイアログボックスで、[スケジュールの変更] または [スケジュールのキャンセル] を選択します。
[スケジュールの変更]: クラスターのリーダー切り替え操作のすべての構成を変更できます。
[スケジュールのキャンセル]: クラスターのスケジュールされたリーダー切り替え操作をキャンセルします。