ユースケース4: リージョンの削除

組織は、3つのオンプレミスKVStoreをフランクフルト、ロンドンおよびダブリンにそれぞれ1つずつデプロイします。要件に従って、3つすべてのリージョンにいくつかのMR表を作成しました。ビジネスの縮小の一環として、ダブリン・リージョンを除外して、2つのリージェントを対象としたNoSQL Databaseを使用することに決めました。次のいくつかのトピックでは、前の各項で設定したNoSQL環境から既存のリージョンを削除する方法について学習します。

3つのリージョンで構成される複数リージョンNoSQL Databaseをまだ設定していない場合は、次で説明したステップを実行してください。

前提条件

複数リージョンNoSQL Databaseからリージョンを削除する際の前提条件について学習します。

複数リージョンNoSQL Databaseからリージョンを削除する前に、次のことを実行することをお薦めします。
  • そのリージョンにリンクされているすべてのMR表への書込みを停止します。
  • そのリージョン内のMR表に対するすべての書込みが他のリージョンにレプリケートされていることを確認します。これは、異なるリージョン間でデータの一貫性を維持するのに役立ちます。

ノート:

現在のリリースの時点では、Oracle NoSQL Databaseで事前に表を読取り専用にすることはできません。そのため、特定のMR表への書込みをアプリケーション・レベルで停止する必要があります。

リージョンの分離

複数リージョンNoSQL Databaseからリージョンを分離する方法について学習します。

リージョンを削除する場合は、参加している他のすべてのリージョンからそのリージョンを分離することをお薦めします。リージョンを分離すると、複数リージョンNoSQL DatabaseのすべてのMR表からそのリージョンが切断されます。

リージョンを分離すると、次のようになります。
  • 分離リージョンでは、他のリージョンからの書込みを表示できません。
  • 他のリージョンでは、分離リージョンからの書込みを表示できません。

ノート:

複数リージョンNoSQL Databaseから削除するリージョンを事前に分離することは必須ではありませんが、より明確であると考えられることから、このアプローチが提案されています。

ステップ:

複数リージョンNoSQL Database環境からリージョンを分離する際には、2つのタスクを実行します。具体的には次のようにします。

  1. 次に示すDDLコマンドを使用して、他のリージョンのすべてのMR表からターゲット・リージョンを削除します。
  2. 分離するリージョン内のすべてのMR表から他のすべてのリージョンを削除します。

リージョン削除のためのMR表の変更を参照してください。

次に例を示します。

  1. 他の2つのリージョン(フランクフルトおよびロンドン)のusers MR表からダブリン・リージョンを削除します。
    # Connect to the KVStore deployed in the 'fra' region from the SQL shell
    [~]$java -jar $KVHOME/lib/sql.jar \
    -helper-hosts host1:5000,host2:5000,host3:5000 \
    -store mrtstore
    
    –- drop the 'dub' region from the 'users' MR table
    sql-> ALTER TABLE users DROP REGIONS dub;
    Statement completed successfully
    # Connect to the KVStore deployed in the 'lnd' region from the SQL shell
    [~]$java -jar $KVHOME/lib/sql.jar \
    -helper-hosts host4:5000,host5:5000,host6:5000 \
    -store mrtstore
    
    –- drop the 'dub' region from the 'users' MR table
    sql-> ALTER TABLE users DROP REGIONS dub;
    Statement completed successfully
  2. ダブリン・リージョンのusers MR表から他のリージョン(フランクフルトおよびロンドン)を削除します。
    # Connect to the KVStore deployed in the 'dub' region from the SQL shell
    [~]$java -jar $KVHOME/lib/sql.jar \
    -helper-hosts host7:5000,host8:5000,host9:5000 \
    -store dubstore
    
    –- drop 'fra' and 'lnd' regions from the 'users' MR table
    sql-> ALTER TABLE users DROP REGIONS fra,lnd;
    Statement completed successfully

分離リージョン内のMR表の削除

削除するリージョンが分離されたことを確認した後、そのリージョンで作成されたすべてのMR表を安全に削除できます。MR表の削除は、ローカル表の削除とまったく同じです。

次に例を示します。

分離リージョン(ダブリン)からusers MR表を削除します。

# Connect to the KVStore deployed in the 'dub' region from the SQL shell
[~]$java -jar $KVHOME/lib/sql.jar \
-helper-hosts host7:5000,host8:5000,host9:5000 \
-store dubstore

–- drop the 'users' MR table
sql-> DROP TABLE users;
Statement completed successfully

分離リージョンの削除

最後に、分離リージョンを他のすべてのリージョンから削除できます。

ノート:

分離リージョンを削除することは必須ではありません。将来の使用に備えて、分離リージョンを他のリージョンから削除しないで残しておくこともできます。

ステップ:

他のリージョンから分離リージョンを削除するには、次のようにします。

  1. sqlプロンプトに接続し、ローカルKVStoreに接続します。
  2. SQLプロンプトから次のDDLコマンドを実行します。
    DROP REGION <region name>;
  3. オプションで、次のコマンドを実行して、分離リージョンが正常に削除されていることを確認できます。
    SHOW REGIONS;

次に例を示します。

他の2つのリージョン(フランクフルトおよびロンドン)からダブリン・リージョンを削除します。

# Connect to the KVStore deployed in the 'fra' region from the SQL shell
[~]$java -jar $KVHOME/lib/sql.jar \
-helper-hosts host1:5000,host2:5000,host3:5000 \
-store mrtstore

–- drop the 'dub' region
sql-> DROP REGION dub;
Statement completed successfully

– List the regions 
sql-> SHOW REGIONS;
regions

    fra (local, active)
    lnd (remote, active)
# Connect to the KVStore deployed in the 'lnd' region from the SQL shell
[~]$java -jar $KVHOME/lib/sql.jar \
-helper-hosts host4:5000,host5:5000,host6:5000 \
-store mrtstore

–- drop the 'dub' region
sql-> DROP REGION dub;
Statement completed successfully

– List the regions 
sql-> SHOW REGIONS;
regions

    lnd (local, active)
    fra (remote, active)