arrow_back

レプリケーションを構成して Cloud SQL for PostgreSQL でポイントインタイム リカバリを有効化する

ログイン 参加
700 以上のラボとコースにアクセス

レプリケーションを構成して Cloud SQL for PostgreSQL でポイントインタイム リカバリを有効化する

ラボ 1時間 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP922

Google Cloud セルフペース ラボのロゴ

概要

ポイントインタイム リカバリを使用すると、インスタンスを特定の時点の状態に復元できます。たとえば、エラーによってデータが失われた場合、データベースをエラーが発生する前の状態に復元できます。ポイントインタイム リカバリを実行すると、常に新しいインスタンスが作成されます。既存のインスタンスに対してポイントインタイム リカバリを実行することはできません。新しいインスタンスは、ソース インスタンスの設定を継承します。

このラボでは、Cloud SQL for PostgreSQL インスタンスに対して、ポイントインタイム リカバリの構成とテストを行います。

演習内容

  • Cloud SQL for PostgreSQL インスタンスに対してポイントインタイム リカバリを有効にする。
  • ポイントインタイム リカバリを実行する。
  • 復元されたデータベースが、以前の状態を反映したものであることを確認する。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

対象者

このハンズオンラボの内容は、PostgreSQL のデータベース管理者に最適です。このラボは、PostgreSQL をサポートする Google Cloud リソースの設定と構成を実際に経験することを目的としています。

タスク 1. Cloud SQL for PostgreSQL インスタンスでバックアップを有効にする

このタスクでは、Cloud SQL for PostgreSQL インスタンスでスケジュール バックアップを有効にします。

  1. Cloud Shell で、インスタンスの詳細を表示します。
export CLOUD_SQL_INSTANCE=postgres-orders gcloud sql instances describe $CLOUD_SQL_INSTANCE

承認を求められたら、[承認] ボタンをクリックします。

  1. Cloud Shell で、現在の UTC 時刻を 24 時間形式で取得します。

    date +"%R"
  2. Cloud Shell で次のコマンドを入力して、スケジュール バックアップを有効にします。ここで HH:MM は、前のステップで表示された時刻よりも前の時刻に置き換えます。

gcloud sql instances patch $CLOUD_SQL_INSTANCE \ --backup-start-time=HH:MM 注: このラボの目的上、必ずバックアップの開始時刻を、前のステップで表示された時刻よりも前の時刻に指定してください。これは、このラボの実行中にバックアップが開始しないようにするためです。

たとえば、date コマンドで現在の時刻が 14:25 と表示された場合、HH:MM13:2512:00 などの時刻に置き換えます。有効な時刻を 24 時間形式で指定してください。指定した時刻が有効でない場合、リクエストが無効であるというエラーが表示されます。

  1. 変更内容を確定します。format パラメータにより、目的のフィールドのみが抽出されます。
gcloud sql instances describe $CLOUD_SQL_INSTANCE --format 'value(settings.backupConfiguration)'

この例では、バックアップが 7 日間に設定され、毎日 14:00 に実行されることを示す次のようなレスポンスが表示されます。

backupRetentionSettings={'retainedBackups': 7, 'retentionUnit': 'COUNT'}; enabled=True;kind=sql#backupConfiguration; startTime=14:00; transactionLogRetentionDays=7 Cloud SQL for PostgreSQL インスタンスでバックアップを有効にする

タスク 2. ポイントインタイム リカバリを有効にして実行する

このタスクでは、Cloud SQL for PostgreSQL インスタンスに対してポイントインタイム リカバリを有効にして構成します。ポイントインタイム リカバリを実行すると、常に新しいインスタンスが作成されます。既存のインスタンスに対してポイントインタイム リカバリを実行することはできません。新しいインスタンスは、ソース インスタンスの設定を継承します。

ポイントインタイム リカバリを有効にする

このステップでは、ポイントインタイム リカバリを有効にします。

  • Cloud Shell でポイントインタイム リカバリを有効にします。
gcloud sql instances patch $CLOUD_SQL_INSTANCE \ --enable-point-in-time-recovery \ --retained-transaction-log-days=1

このコマンドが完了するまでに 1~2 分かかります。

Cloud SQL for PostgreSQL データベースを変更する

このステップでは、データベースの orders.distribution_centers テーブルに 1 行を追加します。ポイントインタイム リカバリの実行後は、この行はデータベースに含まれないはずです。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー アイコン)で、[データベース] > [SQL] をクリックし、postgres-orders という名前の Cloud SQL インスタンスをクリックします。

  2. Cloud コンソールの [このインスタンスとの接続] セクションで [Cloud Shell を開く] をクリックします。コマンドが Cloud Shell に自動的に入力されます。

  3. コマンドを実行し、パスワードの入力を求められたら「supersecret!」と入力します。Cloud Shell で psql セッションが開始します。

  4. psql でデータベースを orders に変更します。

\c orders
  1. パスワードの入力を求められたら「supersecret!」と再度入力します。

  2. psqldistribution_centers テーブルの行数を取得します。

SELECT COUNT(*) FROM distribution_centers;

出力:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 10 (1 row)
  1. Cloud Shell で新しいタブを開き(+)、現在の UTC 時刻を RFC 3339 形式で取得します。このタイムスタンプは、次のタスクで作成するポイントインタイム レプリカに使用します。
date --rfc-3339=seconds

数秒間待機し、次のステップで行う変更が、このタイムスタンプの時刻よりも後に発生するようにします。

注: このラボでは、タイムスタンプとして、ポイントインタイム リカバリを有効にした後で(有効でない場合、正常に完了したバックアップが開始点として必要になります)、ソース インスタンスを変更する前の時刻を指定する必要があります。そのように指定しない場合、ソースの変更がクローンに複製されるため、ロールバックを確認できません。
  1. psql で次のコマンドを実行し、orders.distribution_centers テーブルに 1 行を追加して新しい行数(COUNT)を取得します。
INSERT INTO distribution_centers VALUES(-80.1918,25.7617,'Miami FL',11); SELECT COUNT(*) FROM distribution_centers;

出力:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 11 (1 row)
  1. psql を終了します。
\q

ポイントインタイム リカバリを実行する

このステップでは、特定の時点における Cloud SQL インスタンス postgres-orders のクローンを作成します。

  • Cloud Shell で、次のコマンドを実行してポイントインタイム クローンを作成します。
export NEW_INSTANCE_NAME=postgres-orders-pitr gcloud sql instances clone $CLOUD_SQL_INSTANCE $NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'

TIMESTAMP プレースホルダを、先ほど 2 番目の Cloud Shell タブで date コマンドを実行して表示された正確なタイムスタンプに置き換える必要があります。

この TIMESTAMP は UTC タイムゾーン、RFC 3339 形式(例: '2021-11-01 15:00:00')で指定する必要があります。TIMESTAMP は、データベースの状態を復元する時点の時刻を示します。単一引用符で囲む必要があります。RFC3339 の変化形もサポートされています(例: '2021-11-01T15:00:00.000Z')。

レプリカが作成されて使用できるようになるまでに 10 分以上かかる場合があります。その間に、次のタスクに進みます。

ポイントインタイム リカバリを有効にして実行する

タスク 3. データベースが正しい時点に復元されたことを確認する

このタスクでは、ポイントインタイム リカバリのタイムスタンプよりも後の時点で元のデータベースに追加したデータ行が、複製されたデータベースにないことを確認します。

  1. Cloud コンソールの [概要] ページで、[すべてのインスタンス] パンくずリストをクリックし、postgres-orders-pitr という名前の Cloud SQL インスタンスをクリックします。

この時点で、レプリカがオンラインになるまで待ちます。

  1. Cloud コンソールの [このインスタンスとの接続] セクションで [Cloud Shell を開く] をクリックします。コマンドが Cloud Shell に自動的に入力されます。

  2. コマンドを実行し、パスワードの入力を求められたら「supersecret!」と入力します。Cloud Shell で psql セッションが開始します。

  3. psql でデータベースを orders に変更します。

\c orders
  1. パスワードの入力を求められたら「supersecret!」と再度入力します。

  2. psqldistribution_centers テーブルの行数を取得します。

SELECT COUNT(*) FROM distribution_centers;

出力:

orders=> SELECT COUNT(*) FROM distribution_centers; count ------- 10 (1 row)

新しい Cloud SQL for PostgreSQL インスタンスの distribution_centers テーブルには、クローン作成時のソース インスタンスと同じく 10 行あることがわかります。クエリで 11 行が返された場合は、元のインスタンスではなくレプリカ インスタンスに接続されていることを確認します。

クローンされたデータベースに復元タイムスタンプの時点よりも後に加えた変更が含まれていない

お疲れさまでした

このラボでは、Cloud SQL for PostgreSQL インスタンスに対してポイントインタイム リカバリの構成とテストを行いました。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2024 年 4 月 23 日

ラボの最終テスト日: 2023 年 12 月 6 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。