第6章 管理手順

目次

ストアのバックアップ
スナップショットの作成
スナップショットの管理
ストアのリカバリ
Loadプログラムの使用
スナップショットからの直接リストア
Avroスキーマの管理
スキーマの追加
スキーマの変更
スキーマの無効化および有効化
スキーマの表示
ストレージ・ノードの容量の増加
障害が発生したストレージ・ノードの置換
障害が発生したディスクの置換
機能していないゾーンの修復
失われた管理サービス・クォーラムへの対処
ストレージ・ノード・エージェントにホストされているサービスの無効化
ストアの検証
ストアの監視
イベント
ストアのパラメータの設定
パラメータの変更
ストア全体ポリシー・パラメータの設定
管理パラメータ
ストレージ・ノード・パラメータ
レプリケーション・ノード・パラメータ
セキュリティ・パラメータ
管理再起動
レプリケーション・ノード再起動
Oracle NoSQL Databaseデプロイの削除
不適切なストレージ・ノードHAポート範囲の修正

この章には、Oracle NoSQL Databaseの管理者にとって一般的に有用な手順が含まれています。

注意

Oracle NoSQL Databaseのストレージ・ノードおよび管理では、埋込みデータベース(Oracle Berkeley DB、Java Edition)を利用します。このデータベースで保持されるファイルを直接操作することはできません。通常、オラクル社カスタマ・サポートから要求されないかぎり、KVROOTの下にあるファイルおよびディレクトリを移動、削除または変更するのはお薦めしません。特に、jdb接尾辞で終わるファイルは移動および削除しないでください。これは、KVROOTの下のenvディレクトリにあります。

ストアのバックアップ

KVStoreをバックアップするには、ストア内のノードのスナップショットを作成し、作成したスナップショットを安全な場所にコピーします。Oracle NoSQL Databaseの分散特性や規模の点から、1つのマシンにストア全体のバックアップが収容されることはあまりないということに注意してください。次の手順では、スナップショットの格納場所と格納方法については説明しません。

スナップショットの作成

スナップショットによって、同じシャード内の全レコード間の整合性はとられますが、各シャードのパーティション間の整合性はとられません。基になるスナップショット操作は、潜在的な不整合を最小限に抑えるために可能なかぎり並列で実行されます。

管理CLIでスナップショットを作成するには、snapshot createコマンドを使用します。

kv-> snapshot create -name <snapshot name>

このコマンドを使用すると、名前付きのスナップショットを作成または削除できます。(スナップショットの名前は、<name>パラメータを使用して指定します。)現在ストアに格納されているすべてのスナップショットを削除することもできます。

たとえば、スナップショットの作成と削除を行うには、次のようにします。

kv-> snapshot create -name Thursday
Created snapshot named 110915-153514-Thursday on all 3 nodes
kv-> snapshot remove -name 110915-153514-Thursday
Removed snapshot 110915-153514-Thursday 

現在ストアに格納されているすべてのスナップショットを削除することもできます。

kv-> snapshot create -name Thursday
Created snapshot named 110915-153700-Thursday on all 3 nodes
kv-> snapshot create -name later
Created snapshot named 110915-153710-later on all 3 nodes
kv-> snapshot remove -all
Removed all snapshots

注意

スナップショットは、構成の(トポロジ的な)変更が行われている間は作成しないでください。スナップショットに整合性がなく、使用できなくなる可能性があるためです。スナップショットの作成時に、pingを使用してから、後でロードまたはリストア中に使用できるよう、マスターを識別する情報を保存します。詳細は、「スナップショットの管理」を参照してください。

スナップショットの管理

スナップショットを実行すると、システムの各レプリケーション・ノード(マスターとレプリカの両方を含む)からデータが収集されます。操作が成功しないノードがシャード内に1つでもあると、その操作は失敗します。

スナップショットのストア外コピーを作成する場合、シャードごとに1つのノードに対してのみスナップショット・データをコピーします。可能なかぎり、スナップショットの作成時にマスターとして稼働していたノードから取得したスナップショット・データをコピーします。

スナップショットの作成時に、現在マスターとして稼働しているノードを、pingコマンドを使用して特定できます。ストア内のシャードごとに1つのマスターが存在し、MASTERというキーワードで識別されます。たとえば、次の例では、ストレージ・ノードsn1で実行されているレプリケーション・ノードrg1-rn1が現在のマスターです。

java -Xmx256m -Xms256m \
-jar KVHOME/lib/kvstore.jar ping -port 5000 -host node01
Pinging components of store mystore based upon topology sequence #107
300 partitions and 3 storage nodes
Time: 2015-03-04 21:07:44 UTC   Version: 12.1.3.2.15
Shard Status: total:1 healthy:1 degraded:0 noQuorum:0 offline:0
Zone [name=Boston id=zn1 type=PRIMARY]
    RN Status: total:3 online:3 maxDelayMillis:0 maxCatchupTimeSecs:0
Storage Node [sn1] on node01:5000
    Zone: [name=Boston id=zn1 type=PRIMARY]    Status: RUNNING
    Ver: 12cR1.3.2.15 2015-03-04 06:35:02 UTC  Build id: 8e70b50c0b0e
        Admin [admin1]          Status: RUNNING,MASTER
        Rep Node [rg1-rn1]      Status: RUNNING,MASTER
            sequenceNumber:31 haPort:5011
Storage Node [sn2] on node02:5000
    Zone: [name=Boston, id=zn1 type=PRIMARY]   Status: RUNNING
    Ver: 12cR1.3.2.15 2015-03-04 06:35:02 UTC  Build id: 8e70b50c0b0e
        Rep Node [rg1-rn2]      Status: RUNNING,REPLICA
            sequenceNumber:31 haPort:5011 delayMillis:0
            catchupTimeSecs:0
Storage Node [sn3] on node03:5000
    Zone: [name=Boston, id=zn1 type=PRIMARY]   Status: RUNNING
    Ver: 12cR1.3.2.15 2015-03-04 06:35:02 UTC  Build id: 8e70b50c0b0e
        Rep Node [rg1-rn3]      Status: RUNNING,REPLICA
            sequenceNumber:31 haPort:5011 delayMillis:0
            catchupTimeSecs:0

前述の情報を保存し、後でロードまたはリストア中に使用できるよう、個々のスナップショットに関連付ける必要があります。

注意

スナップショットには、管理データベースが含まれます。ストアのリストア方法によっては、管理データベースが有用な場合も有用でない場合もあります。

ローカル・ストレージ・ノードのスナップショット・データは、KVROOTディレクトリ内のディレクトリに格納されます。ストア内の各ストレージ・ノードに次の名前のディレクトリが作成されます。

KVROOT/<store>/<SN>/<resource>/snapshots/<snapshot_name>/files

説明:

  • <store>は、ストアの名前です。

  • <SN>は、ストレージ・ノードの名前です。

  • <resource>は、ストレージ・ノードで実行されているリソースの名前です。通常これは、レプリケーション・ノードの名前です。

  • <snapshot_name>は、スナップショットの名前です。

スナップショット・データは、多数のファイルで構成され、それらはすべて重要です。次に例を示します。

 > ls /var/kvroot/mystore/sn1/rg1-rn1/snapshots/110915-153828-later
00000000.jdb 00000002.jdb 00000004.jdb 00000006.jdb
00000001.jdb 00000003.jdb 00000005.jdb 00000007.jdb