ノート:

OCIコンソールを使用してPostgreSQLプライマリ・データベースと2つのスタンバイ・データベースを設定し、データ・レプリケーションを検証します

イントロダクション

PostgreSQLは、オープン・ソースのオブジェクト・リレーショナル・データベース管理システムです。拡張性と拡張性が高く、多くの機能があります。PostgreSQLは、複数のデータ・センター間のデータ・レプリケーションをサポートします。

データを変更できるサーバーは、マスター・サーバーまたはプライマリ・サーバーと呼ばれます。プライマリの変更を追跡するサーバーは、スタンバイ・サーバーと呼ばれます。プライマリ・サーバーに昇格するまで接続できないスタンバイ・サーバーはウォーム・スタンバイ・サーバーと呼ばれ、接続を受け入れて読取り専用問合せを処理できるスタンバイ・サーバーはホット・スタンバイ・サーバーと呼ばれます。

リソース・マネージャは、OCIリソースのプロビジョニング処理を自動化できるOracle Cloud Infrastructure (OCI)サービスです。Terraformを使用する場合、Resource Managerでは、「infrastructure-as-a-code」モデルを使用してリソースをインストール、構成および管理できます。

Oracle Cloud Infrastructureは、データベースへのステートフル接続、CPUまたはGPUによるRAW処理、数百万のストレージIOPS、GB/sのスループットなど、一貫した高パフォーマンスを必要とするワークロード用に設計されています。最初はゼロトラスト・アーキテクチャです。Oracle Cloudの設計においては、すべてのアプリケーションに対して優れたパフォーマンスを発揮するクラウドが必要でしたが、コスト・パフォーマンスも向上しました。

目標

OCI Resource ManagerでTerraformコードを使用して、1つのプライマリ・サーバーと2つのホット・スタンバイ・サーバーを構成します。これは、3つの異なるアベイラビリティ・ドメインの3つのコンピュート・インスタンスにデプロイされます。

デプロイメント後、プライマリ・サーバーからスタンバイ・サーバーへの表のレプリケーションを確認し、ホット・スタンバイ・データベースに接続してデータを問い合せます。

  1. terraformスタックを使用して、ネットワーク(PostgreSQLプライマリ・サーバーと2つのスタンバイ・サーバー)をデプロイします。

  2. プライマリにサンプル表を作成し、表にいくつかのレコードを挿入します。

  3. 次に、これらのサンプル表および行が両方のスタンバイ・サーバーにレプリケートされているかどうかを確認します。

タスク1: スタックの作成

  1. ブラウザでOracle Cloudにデプロイのリンクを開きます。

  2. まだサインインしていない場合は、テナンシおよびユーザー資格証明を入力します。

  3. スタックをデプロイするリージョンを選択します。

  4. 「スタック情報」ページで、「Oracle使用条件を確認して同意します」チェック・ボックスを選択します。「スタック情報」セクションに詳細が表示されます。

  5. 「次へ」をクリックします。

  6. 「変数の構成」ページで、次の設定を構成します:

    ノート: このチュートリアルでは、パブリック・サブネットにPostgreSQLバージョン12をデプロイしています。

    変数:

    1. 必要な可用性ドメインおよびPostgreSQLバージョンを選択します。

    2. 「プライベート・サブネットに作成」チェック・ボックスの選択を解除します。

    3. 「拡張オプションの表示」チェック・ボックスを選択し、ネットワーク、コンピュート、ストレージ、スタンバイおよびその他の設定の詳細を指定します。

      変数:

      Variables3:

    4. 必要なOS、バックアップ・ポリシーおよびその他の詳細を指定します。

      変数:

    5. OCPUおよびメモリーに必要な値を指定します。

      1. プライマリ・ノードのシェイプおよびreplicatユーザーを選択します。

        変数:

      2. Hotstandby1の詳細を指定します(AD-2の選択)。

        変数:

      3. Hotstandby2の詳細を指定します(AD-3の選択)。

        変数:

    6. 「次へ」をクリックします。

  7. 「レビュー」ページで詳細を確認し、リソースをすぐにプロビジョニングするために「適用の実行」チェック・ボックスが選択されていることを確認します。

    スタック・レビュー

  8. 「Create」をクリックします。

    ジョブ・ログ

  9. 次のスクリーンショットに示すように、スタック・ジョブのログをモニターします(「開発者サービス」「リソース・マネージャ」「スタック」に移動します)。

    スタック・ナビゲーション

    スタック・ページ

    スタック・ジョブ・ステータス

    スタック・ジョブ・ログ

ノート: このチュートリアルで使用されるテスト設定では、スタックが適用され、選択したシェイプに対して11分でリソースが正常に構成されました。これは、選択した構成設定によって異なります。

スタック・ジョブの成功

次のスクリーンショットは、完了したプライマリおよびスタンバイ・サーバー構成を示しています。

PGコンピュート実行中

タスク2: 接続とレプリケーションの確認

  1. プライマリ・ノードにopcユーザーとしてsshし、次のコマンドを実行します。

    sudo su - postgres

    pgprimaryログイン

  2. プライマリ・ノードに表order_detailsを作成します。

    CREATE TABLE order_details (order_detail_id integer CONSTRAINT order_details_pk PRIMARY KEY, order_id integer NOT NULL, order_date date, qty integer, ACCEPTED_QUANTITY integer);

  3. 作成された表の説明

    \dt order_details

  4. データを問い合せると、0行が返されます。

    select * from order_details;

    Pgprimaryテーブル

  5. standby1サーバーにログインし、order_details表がレプリケートされていることを確認します。

    Pgstandbyテーブル

  6. standby2サーバーにログインし、order_details表がレプリケートされていることを確認します。

    pgstandby2表

  7. プライマリ・データベース表order_detailsに2行挿入します。

    BEGIN; INSERT INTO order_details (order_detail_id,order_id,order_date,qty,ACCEPTED_QUANTITY) values (101,1,'2022-07-14',10,5); INSERT INTO order_details (order_detail_id,order_id,order_date,qty,ACCEPTED_QUANTITY) values (102,2,'2022-07-14',100,100); COMMIT;

    Pgprimary挿入

  8. standby1サーバーの行がレプリケートされたことを確認します。

    pgstandy1検証

  9. standby2サーバーの行もここにレプリケートされていることを確認してください。

    pgstandy2で次のことを確認します。

謝辞

その他の学習リソース

docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。