レプリカの管理

このページでは、リードレプリカのレプリケーションを有効または無効にする方法、レプリカをスタンドアロンのインスタンスにプロモートする方法、レプリカを削除する方法を説明します。リードレプリカの使用方法については、レプリケーションを構成するための要件とヒントをご覧ください。

レプリケーションを無効にする

デフォルトでは、レプリカのレプリケーションは有効に設定されています。ただし、レプリケーションを無効にすることができます。たとえば、デバッグの実行時や、インスタンスの状態を分析する場合などです。準備が完了したら、レプリケーションを明示的に再有効化します。レプリケーションを無効化または再有効化すると、レプリカが再起動されます。

レプリケーションを無効にしてもレプリカのインスタンスは停止されませんが、読み取り専用のインスタンスになり、マスター インスタンスからのレプリケーションは実行されなくなります。このインスタンスには引き続き課金されます。無効化されたレプリカでレプリケーションを再有効化したり、レプリカを削除したり、レプリカをスタンドアロンのインスタンスにプロモートしたりすることができます。レプリカを停止することはできません。

レプリケーションを無効化する手順は次のとおりです。

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. レプリカ インスタンスの名前をクリックして開きます。
  3. ボタンバーの [レプリケーションを無効にする] をクリックします。
  4. [OK] をクリックします。

gcloud

gcloud sql instances patch [REPLICA_NAME] --no-enable-database-replication

cURL

コマンドライン プロンプトでこの cURL コマンドを実行するには、gcloud auth print-access-token コマンドを使用してアクセス トークンを取得します。 インスタンス: patch ページの API Explorer を使用して REST API リクエストを送信することもできます。

ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"databaseReplicationEnabled" : "False" }}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[REPLICA_NAME]

レプリケーションの有効化

レプリカが長期間レプリケーションされていないと、マスターとの同期に長時間かかります。この場合は、レプリカを削除し、新しいレプリカを作成します。

レプリケーションを有効化する手順は次のとおりです。

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. レプリカ インスタンスの名前をクリックして選択します。
  3. ボタンバーの [レプリケーションを有効にする] をクリックします。
  4. [OK] をクリックします。

gcloud

gcloud sql instances patch [REPLICA_NAME] --enable-database-replication

cURL

コマンドライン プロンプトでこの cURL コマンドを実行するには、gcloud auth print-access-token コマンドを使用してアクセス トークンを取得します。 インスタンス: patch ページの API Explorer を使用して REST API リクエストを送信することもできます。

ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"settings": {"databaseReplicationEnabled" : "True" }}' \
     -X PATCH \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[REPLICA_NAME]

レプリカのプロモート

スタンドアロンの Cloud SQL インスタンスへのレプリカのプロモートは、元に戻せない操作です。一度プロモートすると、インスタンスをリードレプリカに変換し直すことはできません。

スタンドアロンのインスタンスにレプリカをプロモートする手順は次のとおりです。

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. レプリカ インスタンスの名前をクリックして選択します。
  3. ボタンバーの [レプリカをプロモート] をクリックします。
  4. [OK] をクリックします。

gcloud

gcloud sql instances promote-replica [REPLICA_NAME]
  

cURL

コマンドライン プロンプトでこの cURL コマンドを実行するには、gcloud auth print-access-token コマンドを使用してアクセス トークンを取得します。 Instances:promoteReplica ページの API Explorer を使用して REST API リクエストを送信することもできます。

ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Length: 0' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[REPLICA_NAME]/promoteReplica

昇格したインスタンスが正しく構成されていることを確認します。具体的には、自動バックアップを有効にする必要があります。また、必要に応じて高可用性対応のインスタンスを構成することを検討してください。

レプリケーションのステータスの確認

管理クライアントを使用して個々のレプリカ インスタンスにログインすると、ステータスや指標を含むレプリケーションの詳細を取得できます。Google Cloud Console または gcloud コマンドライン ツールを使用すると、レプリケーションの概要を取得できます。

注: Cloud SQL の外部にマスター インスタンスを持つレプリカのレプリケーション ステータスを、Google Cloud Console で確認することはできません。

レプリケーションのステータスを確認する手順は次のとおりです。

Console

  1. Google Cloud Console の Cloud SQL インスタンス ページに移動します。

    Cloud SQL インスタンス ページに移動

  2. レプリカ インスタンスの名前をクリックして選択します。
  3. レプリケーションのステータスが、ページ上部のバナーに表示されます。

gcloud

レプリカ インスタンスの場合、以下のようにしてレプリケーションのステータスを確認します。

gcloud sql instances describe [REPLICA_NAME]

出力内で、databaseReplicationEnabledmasterInstanceName プロパティを見つけます。

マスター インスタンスの場合、以下のようにしてレプリカがあるかどうかを確認します。

gcloud sql instances describe [MASTER_INSTANCE_NAME]

出力内で、replicaNames プロパティを見つけます。

MySQL クライアント

  1. MySQL クライアントを使用してレプリカに接続します。

    詳しくは、外部アプリケーションのための接続オプションをご覧ください。

  2. レプリカのステータスを確認します。
    SHOW SLAVE STATUS \G
  3. コマンドの出力で、次の指標を見つけます。
    • Master_Host: マスター インスタンスの名前。
    • Slave_IO_Running: マスターのバイナリログを読み取るための I/O スレッドが実行されているかどうかを示します。レプリケーションが開始されている場合は、Yes になります。
    • Slave_SQL_Running: リレーログのイベントを実行するための SQL スレッドが実行されているかどうかを示します。レプリケーションが開始されている場合は、Yes になります。
    • Seconds_Behind_Master: スレーブ SQL スレッドによるマスター バイナリログの処理が遅延している秒数。O または小さい秒数でなければなりません。

    コマンドからの出力の詳細については、レプリケーションのステータスの確認をご覧ください。

次のステップ