分散データベースのデプロイの例

この例では、高可用性のためにOracle Data Guardを使用して、複数のレプリカを備えた一般的なシステム管理Oracle Globally Distributed Databaseをデプロイする方法を示します。

システム管理の分散データベースをデプロイするには、シャードグループおよびシャードを作成し、シャードとして使用するデータベースを作成および構成し、DEPLOYコマンドを実行してロールベースのグローバル・サービスを作成します。

システム管理のデータ分散方法では、シャードにデータをマップする必要はありません。これは、コンシステント・ハッシュによるパーティション化を使用して、データがシャード間に自動的に分散されるためです。パーティション化アルゴリズムにより、データがシャード間に均一およびランダムに分散されます。システム管理の分散方法の概念に関する詳細は、システム管理のデータ分散を参照してください。

Oracle Globally Distributed Databaseトポロジの例

次のシステム管理Oracle Globally Distributed Database構成について検討します。この構成では、シャードグループsg1にプライマリ・シャードが格納され、シャードグループsg2およびsg3にスタンバイ・レプリカが格納されます。

さらに、シャードグループsg2のレプリカはOracle Active Data Guardのスタンバイ(読取り専用アクセスでオープンされたデータベース)であり、シャードグループsg3のレプリカは未オープンのマウント済データベースだと仮定します。



表3-1 サンプルのシステム管理トポロジのホスト名

トポロジ・オブジェクト 説明
シャード・カタログ・データベース

すべての分散データベース・トポロジに、シャード・カタログが必要です。この例では、シャード・カタログ・データベースに2つのスタンバイがあります(データ・センターごとに1つ)。

プライマリ

  • データ・センター= 1
  • ホスト名= cathost
  • DB_UNIQUE_NAME = catcdb
  • PDB名= catpdb
  • 接続サービス名= catpdb

アクティブ・スタンバイ

  • データ・センター= 1
  • ホスト名= cathost1

スタンバイ

  • データ・センター= 2
  • ホスト名= cathost2
リージョン

この構成には2つのデータ・センターが関与しているため、対応する2つのリージョンがシャード・カタログ・データベースに作成されています。

データ・センター1

  • リージョン名= dc1

データ・センター2

  • リージョン名= dc2
シャード・ディレクタ(グローバル・サービス・マネージャ)

それぞれのリージョンには、そのデータ・センター内のホストで実行するシャード・ディレクタが必要です。

データ・センター1

  • シャード・ディレクタ・ホスト名= gsmhost1
  • シャード・ディレクタ名= gsm1

データ・センター2

  • シャード・ディレクタ・ホスト名= gsmhost2
  • シャード・ディレクタ名= gsm2
シャードグループ

データ・センター1

  • sg1
  • sg2

データ・センター2

  • sg3
シャード
  • ホスト名= shardhost1, …, shardhost9
  • DB_UNIQUE_NAME = cdb1、…、cdb9
  • PDB名= pdb1, pdb2, pdb3

    スタンバイ・レプリカのPDB名は、それらに対応するプライマリのPDB名と同じになります

サンプル分散データベースのデプロイ

次のステップを実行して、サンプルのシステム管理分散データベースをデプロイします。このデータベースは、高可用性のためにOracle Data Guardを使用して、複数のレプリカを備えています。

  1. ホストcathost、cathost1、cathost2、gsmhost1、gsmhost2、およびホストshardhost1からshardhost9をプロビジョニングして構成します。
  2. ホストcathost、cathost1、cathost2およびshardhost1からshardhost9にOracle Databaseソフトウェアをインストールします。

    詳細は、「Oracle Databaseソフトウェアのインストール」を参照してください。

  3. ホストgsmhost1およびgsmhost2にシャード・ディレクタをインストールします。

    詳細は、「シャード・ディレクタ・ソフトウェアのインストール」を参照してください。

  4. シャード・カタログ・データベースを作成し、cathostでOracle TNSリスナーを起動します。

    さらに、カタログのスタンバイ・レプリカをcathost1およびcathost2に作成して、それらのスタンバイにプライマリ・カタログへの変更が適用されていることを確認します。

    詳細は、「シャード・カタログ・データベースの作成」を参照してください。

  5. ホストshardhost1、shardhost2およびshardhost3に、シャード・データを格納する3つのプライマリ・データベースを作成します。

    それに対応するレプリカを作成します。その場所と名前は、次のとおりです。

    • shardhost4 (cdb4)およびshardhost7 (cdb7)に、shardhost1 (cdb1/pdb1)のレプリカ
    • shardhost5 (cdb5)およびshardhost8 (cdb8)に、shardhost2 (cdb2/pdb2)のレプリカ
    • shardhost6 (cdb6)およびshardhost9 (cdb9)に、shardhost3 (cdb3/pdb3)のレプリカ

    9つのコンテナ・データベース(CDB)のdb_unique_nameは、cdb1からcdb9にする必要があります。そこにあるPDBの名前は、3つのプライマリおよびレプリカでpdb1、pdb2およびpdb3にする必要があります。

    CDBのサービス名はcdb1からcdb9にする必要があり、そのPDBシャードのサービス名はpdb1、pdb2、およびpdb3です。

    詳細は、「シャード・データベースの作成」を参照してください。

  6. すべてのポート番号がデフォルトであるとすると、分散データベース・トポロジを構成するには、次のGDSCTLコマンドを発行します。このとき、ドメインとパスワードは適切な値に置き換えます。
    1. ホストgsmhost1で、GDSCTLから次のコマンドを実行します。

      create shardcatalog -database cathost.example.com:1521/catpdb.example.com -user mydbsadmin/mydbsadmin_password -region dc1,dc2
      add gsm -gsm gsm1 -region dc1 -catalog cathost.example.com:1521/catpdb.example.com -pwd gsmcatuser_password
      start gsm -gsm gsm1

      詳細は、「シャード・カタログの作成」および「シャード・ディレクタの追加と起動」を参照してください。

    2. ホストgsmhost2で、GDSCTLから次のコマンドを実行します。

      connect mydbsadmin/mydbsadmin_password@cathost.example.com:1521/catpdb.example.com
      add gsm -gsm gsm2 -region dc2 -catalog cathost.example.com:1521/catpdb.example.com -pwd gsmcatuser_password
      start gsm -gsm gsm2
      

      詳細は、「シャード・ディレクタの追加と起動」を参照してください。

    3. ホストgsmhost1に戻って、GDSCTLから次のコマンドを実行して、分散データベースの設定を完了します。

      add shardgroup -shardgroup sg1 -deploy_as primary -region dc1
      add shardgroup -shardgroup sg2 -deploy_as active_standby -region dc1
      add shardgroup -shardgroup sg3 -deploy_as standby -region dc2
      add cdb -connect shardhost1.example.com:1521/cdb1.example.com -pwd gsmrootuser_password
      add cdb -connect shardhost2.example.com:1521/cdb2.example.com -pwd gsmrootuser_password

      shardhost3からshardhost9およびcdb3からcdb9でADD CDBコマンドを繰り返してから、次のコマンドを実行します。

      add shard -connect shardhost1.example.com:1521/pdb1.example.com -pwd gsmuser_password -shardgroup sg1 -cdb cdb1
      add shard -connect shardhost2.example.com:1521/pdb2.example.com -pwd gsmuser_password -shardgroup sg1 -cdb cdb2
      add shard -connect shardhost3.example.com:1521/pdb3.example.com -pwd gsmuser_password -shardgroup sg1 -cdb cdb3
      add shard -connect shardhost4.example.com:1521/pdb1.example.com -pwd gsmuser_password -shardgroup sg2 -cdb cdb4
      add shard -connect shardhost5.example.com:1521/pdb2.example.com -pwd gsmuser_password -shardgroup sg2 -cdb cdb5
      add shard -connect shardhost6.example.com:1521/pdb3.example.com -pwd gsmuser_password -shardgroup sg2 -cdb cdb6
      add shard -connect shardhost7.example.com:1521/pdb1.example.com -pwd gsmuser_password -shardgroup sg3 -cdb cdb7
      add shard -connect shardhost8.example.com:1521/pdb2.example.com -pwd gsmuser_password -shardgroup sg3 -cdb cdb8
      add shard -connect shardhost9.example.com:1521/pdb3.example.com -pwd gsmuser_password -shardgroup sg3 -cdb cdb9

      詳細は、必要に応じたシャードグループの追加シャードCDBの追加、およびシャードPDBの追加を参照してください。

    4. コマンドCONFIG VNCRADD INVITEDNODEを使用して、VNCRエントリのすべてが有効でデプロイメントが成功するために不足がないことを確認します。

      詳細は、「ホスト・メタデータの追加」を参照してください。

    5. GDSCTLからDEPLOYを実行して、分散データベースの構成を完了します。

      詳細は、構成のデプロイを参照してください。

    6. 読取り/書込みアクセスと読取り専用アクセスのサービスを分散データベースに追加して開始します。

      add service -service oltp_rw_srvc -role primary
      start service -service oltp_rw_srvc
      add service -service oltp_ro_srvc -role physical_standby
      start service -service oltp_ro_srvc
      

      詳細は、「グローバル・データベース・サービスの作成と開始」を参照してください。

  7. コマンドGDSCL CONFIGCONFIG SHARD、およびCONFIG SERVICEを使用すると、シャードとサービスのすべてがオンラインになっていて実行されていることを確認できます。

    詳細は、「シャード・ステータスの確認」を参照してください。