ユースケース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表からそのリージョンが切断されます。

たとえば、DUBリージョンを分離すると、次のようになります。
  • DUBでは、残りのリージョン、つまりFRAおよびLNDからの書込みを認識できません。
  • リージョンFRAおよびLNDでは、DUBリージョンからの書込みを認識できません。

注意:

複数リージョンNoSQL Databaseから削除するリージョンを事前に分離することは必須ではありませんが、より明確であると考えられることから、このアプローチが提案されています。
複数リージョンNoSQL Database環境からリージョンを分離する際には、2つのタスクを実行します。具体的には次のようにします。
  1. 参加している他のリージョンのすべてのMR表からターゲット・リージョンを削除します。
    1. FRAおよびLNDリージョンのUsers MR表からDUBリージョンを削除するには、各リージョンのkvプロンプトから次のコマンドを実行します。
      kv-> execute 'alter table Users drop regions DUB'
    2. オプションで、次のコマンドを実行して、リージョンが正常に削除されていることを確認できます。
      kv-> show table -name Users
  2. 分離するリージョン内のすべてのMR表から他のすべてのリージョンを削除します。
    1. DUBリージョンのUsers MR表からFRAおよびLNDリージョンを削除するには、kvプロンプトから次のコマンドを実行します。
      kv-> execute 'alter table Users drop regions FRA, LND'
    2. オプションで、次のコマンドを実行して、リージョンが正常に削除されていることを確認できます。
      kv-> show table -name Users

DUBリージョンがフランクフルト(FRA)リージョンのUsers表から削除されていることを確認します。

kv-> show table -name Users 
{ 
  "json_version" : 1, 
  "type" : "table", 
  "name" : "Users", 
  "shardKey" : [ "id" ], 
  "primaryKey" : [ "id" ], 
  "fields" : [ { 
    "name" : "id", 
    "type" : "INTEGER", 
    "nullable" : false, 
    "default" : null 
  }, { 
    "name" : "name", 
    "type" : "STRING", 
    "nullable" : true, 
    "default" : null 
  }, { 
    "name" : "team", 
    "type" : "STRING", 
    "nullable" : true, 
    "default" : null 
  } ], 
  "regions" : { 
    "2" : "LND", 
    "1" : "FRA" 
  } 
}

DUBリージョンがロンドン(LND)リージョンのUsers表から削除されていることを確認します。

kv-> show table -name Users 
{ 
  "json_version" : 1, 
  "type" : "table", 
  "name" : "Users", 
  "shardKey" : [ "id" ], 
  "primaryKey" : [ "id" ], 
  "fields" : [ { 
    "name" : "id", 
    "type" : "INTEGER", 
    "nullable" : false, 
    "default" : null 
  }, { 
    "name" : "name",
    "type" : "STRING",
    "nullable" : true,
    "default" : null
  }, { 
    "name" : "team", 
    "type" : "STRING", 
    "nullable" : true, 
    "default" : null 
  } ], 
  "regions" : { 
    "2" : "FRA", 
    "1" : "LND" 
  } 
}

FRAおよびLNDリージョンがダブリン(DUB)リージョンのUsers表から削除されていることを確認します。

kv-> show table -name Users 
{ 
  "json_version" : 1, 
  "type" : "table", 
  "name" : "Users", 
  "shardKey" : [ "id" ], 
  "primaryKey" : [ "id" ], 
  "fields" : [ { 
    "name" : "id", 
    "type" : "INTEGER", 
    "nullable" : false, 
    "default" : null 
  }, { 
    "name" : "name", 
    "type" : "STRING", 
    "nullable" : true, 
    "default" : null 
  }, { 
    "name" : "team", 
    "type" : "STRING", 
    "nullable" : true, 
    "default" : null 
  } ], 
  "regions" : { 
    "1" : "DUB" 
  } 
}

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

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

次に例を示します。
  1. DUBリージョンからUsers MR表を削除するには、kvプロンプトから次のコマンドを実行します。
    kv-> execute 'drop table Users'
  2. オプションで、次のコマンドを実行して、Users表が正常に削除されていることを確認できます。
    kv-> show tables

分離リージョンの削除

最後に、参加しているすべてのリージョンからリージョンを削除できます。

注意:

分離リージョンを削除することは必須ではありません。将来の使用に備えて、分離リージョンを他のリージョンから削除しないで残しておくこともできます。
参加している各リージョンから分離リージョンを削除するには、次の手順を実行します。
  1. ローカル・リージョンからkvプロンプトに接続し、ローカルのKVStoreに接続します。
  2. ローカル・リージョンからDUBを削除するには、次のコマンドを実行します。
    kv-> EXECUTE 'DROP REGION DUB'
  3. オプションで、次のコマンドを実行して、DUBリージョンが正常に削除されていることを確認できます。
    kv-> execute 'show regions'

DUBリージョンがフランクフルト(FRA)リージョンから削除されていることを確認します。

kv-> execute 'show regions' 

regions 
 FRA (local, active) 
 LND (remote, active)

DUBリージョンがロンドン(LND)リージョンから削除されていることを確認します。

kv-> execute 'show regions'
 
regions 
 LND (local, active) 
 FRA (remote, active)