レプリカを管理する

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

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

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

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

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

Console

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

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

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

gcloud

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

cURL

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

ACCESS_TOKEN="$(gcloud auth application-default 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 Platform Console で Cloud SQL の [インスタンス] ページに移動します。

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

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

gcloud

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

cURL

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

ACCESS_TOKEN="$(gcloud auth application-default 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 Platform Console で Cloud SQL の [インスタンス] ページに移動します。

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

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

gcloud

gcloud sql instances promote-replica [REPLICA_NAME]
  

cURL

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

ACCESS_TOKEN="$(gcloud auth application-default 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 Platform Console または gcloud コマンドライン ツールを使用して、レプリケーションの概要を取得できます。

注: レプリカのマスター インスタンスが Cloud SQL の外部にある場合、Google Cloud Platform Console を使用して、そのレプリカのレプリケーションのステータスを確認できません。

レプリケーションのステータスを確認するには、次の手順に従います。

Console

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

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

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

gcloud

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

gcloud sql instances describe [REPLICA_NAME]

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

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

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 または小さい秒数でなければなりません。

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

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...