ping

java -Xmx64m -Xms64m \
-jar KVHOME/lib/kvstore.jar ping [-verbose] [-json] [-shard <shardId>]
-host <hostname> -port <port> or
-helper-hosts  <host:port>[,host:port]*>
-username <user>
-security <security-file-path> 

ストアに接続して、実行中のサービスのステータスを取得します。このユーティリティは、ストアのヘルスに関する簡潔なサマリーと、そのストアのトポロジに関する詳細情報の両方を提供します。赤/黄/緑のステータスが示され、ストアが完全に正常であるかどうか、ストアでいくつかの障害が発生しているが動作可能であるかどうか、ストアにクリティカルな問題があるかどうかを知ることができます。pingは、-helper-hostsまたは-host/-port引数で指定されたノードを使用して、ストアを記述するトポロジ・メタデータを検出します。そのトポロジを使用して、pingは、ストアに関連付けられているすべてのRN、SN、アービタおよび管理サービスに接続します。特定のシャードを指定して、そのステータス情報を返すこともできます。

既存の-hostフラグと-portフラグのかわりに-helper-hostsフラグを指定します。複数のヘルパー・ホストが使用されている場合、このユーティリティには、ストアとの最初の接続ポイントにするために使用できるノードが複数あり、ストアの一部のノードが使用できなくなった場合に成功する可能性が高くなります。

情報のサブセットを返すには、–shard <shardId>を指定します。

pingのコマンドライン・パラメータ

pingユーティリティのコマンドライン・パラメータは、次のとおりです。

  • -hostは、ストア内の特定のホストの名前を識別します。このオプションは、特定のホストのSNAに接続できるかどうかをチェックする場合に使用します。

    このパラメータを指定する場合は、-portも指定する必要があります。また、-hostパラメータと-portパラメータを指定する場合は、-helper-hostsを指定しないでください。

  • -portは、ストア内の特定のホストのリスニング・ポートを識別します。このパラメータは、-hostパラメータも使用している場合にのみ使用します。

  • -helper-hostsは、ストア内の1つ以上のhost:portペアのカンマ区切りリストを示します。このパラメータは、ストア全体のヘルスをチェックする場合に使用します。

    –helper-hostsパラメータを使用すると、-hostフラグと-portフラグを指定できません。

    複数のヘルパー・ホストが指定されている場合、このユーティリティには、ストアとの最初の接続ポイントにするために使用できるノードが複数あり、ストアの一部のノードが使用できなくなった場合に成功する可能性が高くなります。次に例を示します。

    -helper-hosts hst1:5000,hst2:5100, hst3:5100
  • -usernameは、ストアをpingするユーザーの名前です。ストアが認証を必要とするように構成されている場合、このパラメータは必須です。このユーザーには、少なくともストアに対するSYSVIEWアクセス権が必要です。組込みのdbadminロールで十分です。

  • -securityは、クライアント・セキュリティ構成ファイルです。ストアが認証を必要とするように構成されている場合、このパラメータは必須です。このファイルに含まれるパラメータの詳細は、Javaダイレクト・ドライバ開発者ガイドSSLの構成を参照してください。次に例を示します。

    oracle.kv.auth.username=clientUID1
    oracle.kv.auth.pwdfile.file=/home/nosql/login.pwd
    oracle.kv.transport=ssl
    oracle.kv.ssl.trustStore=/home/nosql/client.trust

    Kerberosを使用している場合、このファイルは次のようになります。

    oracle.kv.auth.kerberos.keytab = kerberos/mykeytab
    oracle.kv.auth.username = krbuser@EXAMPLE.COM
    oracle.kv.auth.external.mechanism=kerberos
    oracle.kv.auth.kerberos.services=
    node01:oraclenosql/node01.example.com@EXAMPLE.COM
    oracle.kv.auth.kerberos.mutualAuth=false
  • -verboseはオプションです。これを指定すると、pingユーティリティは、ユーティリティの現在のアクションに関する追加情報を提供します。

  • -jsonを指定すると、pingユーティリティはその出力をJSON形式で書き込みます。

  • -shard <shardId>はオプションであり、指定した特定のシャードIDに関するステータス情報のサブセットを返します。

    次に例を示します。

    bash-4.1$ java -jar $KVHOME/lib/kvstore.jar ping -host mynode.mycompany.com 
    -port 5000 -shard rg2 Pinging components of store mystore based upon topology 
    sequence #2376    shard rg2 
    500 partitions and 3 storage nodes 
    Time: 2018-09-28 06:57:10 UTC   Version: 18.3.2 
    Shard Status: healthy 
    Admin Status: healthy 
    Zone [name=myshardzone id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]   
    RN Status: online:3 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0 
    Storage Node [sn10] on nodeA:5000    Zone: [name=myshardzone id=zn1 
    type=PRIMARY allowArbiters=false masterAffinity=false]    
    Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC  
    Build id: a72484b8b33c Edition: Enterprise 
             Rep Node [rg2-rn1]      Status: RUNNING,MASTER sequenceNumber:71,166 
    haPort:5010 available storage size:12 GB
    Storage Node [sn11] on nodeB:5000    Zone: [name=myshardzone id=zn1 
    type=PRIMARY allowArbiters=false masterAffinity=false]    
    Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC
    Build id: a72484b8b33c Edition: Enterprise
             Rep Node [rg2-rn2]      Status: RUNNING,REPLICA sequenceNumber:71,166 
    haPort:5011 available storage size:14 GB delayMillis:0 catchupTimeSecs:0 
    Storage Node [sn12] on nodeC:5000    Zone: [name=myshardzone id=zn1 
    type=PRIMARY allowArbiters=false masterAffinity=false]    
    Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC 
    Build id: a72484b8b33c Edition: Enterprise
             Rep Node [rg2-rn3]      Status: RUNNING,REPLICA sequenceNumber:71,166 
    haPort:5012 available storage size:24 GB delayMillis:0 catchupTimeSecs:0

pingの終了コード

このユーティリティによって返される可能性がある終了コードは、次のとおりです。終了コードは、プロセス終了コードとして返されることもあれば、JSON出力の一部として返されることもあります。

名前 コード 説明
EXIT_OK 0 ストア内のすべてのサービスが見つかり、既知の正常な状態(RUNNINGなど)にあります。
EXIT_OPERATIONAL 1 ストア内の1つ以上のサービスにアクセスできなかったか、不明または使用不可の状態にあります。この場合、ストアは、すべてのシャード間のすべてのデータ操作に加え、すべての管理操作をサポートする必要がありますが、パフォーマンスが低下した状態になる可能性があります。ストアの一部が使用できなくなる前に、なんらかの処置を行って問題を検出し、修正する必要があります。
EXIT_NO_ADMIN_QUORUM 2 管理サービスのレプリケーション・グループに定数がないか、まったく使用できず、ストア構成を変更する管理操作を実行することはできません。ストアでは、管理定数が失われても通常のデータ操作はすべてサポートされますが、この状態では、ストアの完全な機能をリストアするために早急な対応が必要です。
EXIT_NO_SHARD_QUORUM 3 1つ以上のシャードに定数がなく、書込みリクエストを受け入れることができないか、完全に使用できなくなっています。この状態では、ストアの機能をリストアするために早急な対応が必要です。この終了コードはEXIT_NO_ADMIN_QUORUMよりも優先されるため、この終了コードが使用されている場合、管理機能も縮小されるか、使用できなくなることがあります。
EXIT_USAGE 100 pingコマンドの使用方法が正しくありません。
EXIT_TOPOLOGY_FAILURE 101 pingは、操作を行うためにトポロジを見つけることができませんでした。これは、ストアの問題、ネットワークの問題、またはpingに渡されたパラメータに関する使用上の問題である可能性があります。たとえば、指定された-host/-portペアがストアの一部でないか、-helper-hostsで指定されたホストのいずれにも接続できません。
EXIT_UNEXPECTED 102 ユーティリティで予期しないエラーが発生しました。

ノート:

終了コード1から3は、いずれかのサービスに問題があるという結論を下す前に最初にチェックする必要があるネットワーク接続の問題を示している可能性があります。

pingレポートのテキスト出力

デフォルトでは、pingユーティリティは、人間が判読できる形式でストアのヘルスをレポートします。次に例を示します。

ノート:

コマンド出力が使用可能なスペースに収まるように、追加の改行が挿入されています。

$ java -Xmx64m -Xms64m -jar <KVHOME>/lib/kvstore.jar ping -host nodeA -port 1310
Pinging components of store mystore based upon topology sequence #108
100 partitions and 3 storage nodes
Time: 2018-09-28 06:57:10 UTC   Version: 18.3.2
Shard Status: healthy:1 writable-degraded:0 read-only:0 offline:0
Admin Status: healthy
Zone [name=MyDC id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]
RN Status: online:3 offline:0 maxDelayMillis:0 maxCatchupTimeSecs:0
Storage Node [sn1] on nodeA:13100
Zone: [name=MyDC id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]
Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC  
Build id: a72484b8b33c
        Admin [admin1]         Status: RUNNING,MASTER
        Rep Node [rg1-rn1]     Status: RUNNING,MASTER
        sequenceNumber:227 haPort:13117 available storage size:16 GB
Storage Node [sn2] on nodeB:13200
    Zone: [name=MyDC id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]
    Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC 
    Build id: a72484b8b33c
        Admin [admin2]         Status: RUNNING,REPLICA
        Rep Node [rg1-rn2]     Status: RUNNING,REPLICA
            sequenceNumber:227 haPort:13217 available storage size:14 GB delayMillis:0
            catchupTimeSecs:0
Storage Node [sn3] on nodeC:13300
    Zone: [name=MyDC id=zn1 type=PRIMARY allowArbiters=false masterAffinity=false]
    Status: RUNNING   Ver: 18.3.2 2018-09-17 09:33:45 UTC
    Build id: a72484b8b33c
        Admin [admin3]         Status: RUNNING,REPLICA
        Rep Node [rg1-rn3]     Status: RUNNING,REPLICA
            sequenceNumber:227 haPort:13317 available storage size:24 GB delayMillis:0
            catchupTimeSecs:0 

pingレポートのJSON出力

-jsonコマンドライン・パラメータを指定すると、このユーティリティはそのレポートをJSON形式で提供します。

ノート:

この出力が使用可能なスペースに収まるように、追加の改行が挿入されています。

bash-3.2$ java -Xmx64m -Xms64m \
-jar dist/lib/kvstore.jar ping -host node01 \
-port 5000 -json
{
  "operation" : "ping",
  "returnCode" : 5000,
  "description" : "No errors found",
  "returnValue" : {
    "topology" : {
      "storeName" : "orcl",
      "sequenceNumber" : 9,
      "numPartitions" : 0,
      "numStorageNodes" : 2,
      "time" : 1539857069504,
      "version" : "18.3.2"
    },
    "adminStatus" : "healthy",
    "shardStatus" : {
      "healthy" : 1,
      "writable-degraded" : 1,
      "read-only" : 0,
      "offline" : 0,
      "total" : 2
    },
    "zoneStatus" : [ {
      "resourceId" : "zn1",
      "name" : "Atlanta",
      "type" : "PRIMARY",
      "allowArbiters" : false,
      "masterAffinity" : false,
      "rnSummaryStatus" : {
        "online" : 2,
        "offline" : 0,
        "read-only" : 0,
        "hasReplicas" : false
      }
    }, {
      "resourceId" : "zn2",
      "name" : "Boston",
      "type" : "SECONDARY",
      "allowArbiters" : false,
      "masterAffinity" : false,
      "rnSummaryStatus" : {
        "online" : 1,
        "offline" : 0,
        "read-only" : 0,
        "hasReplicas" : true,
        "maxDelayMillis" : 0,
        "maxCatchupTimeSecs" : 0
      }
    } ],
    "snStatus" : [ {
      "resourceId" : "sn1",
      "hostname" : "node01",
      "registryPort" : 5000,
      "zone" : {
        "resourceId" : "zn1",
        "name" : "Atlanta",
        "type" : "PRIMARY",
        "allowArbiters" : false,
        "masterAffinity" : false
      },
      "serviceStatus" : "RUNNING",
      "version" : "18.3.2 2018-09-17 09:33:45 UTC  Build id: a72484b8b33c Edition: Enterprise",
      "adminStatus" : {
        "resourceId" : "admin1",
        "status" : "RUNNING",
        "state" : "MASTER",
        "authoritativeMaster" : true
      },
      "rnStatus" : [ {
        "resourceId" : "rg1-rn1",
        "status" : "RUNNING",
        "requestsEnabled" : "ALL",
        "state" : "MASTER",
        "authoritativeMaster" : true,
        "sequenceNumber" : 23,
        "haPort" : 5002,
        "availableStorageSize" : "3 GB"
      }, {
        "resourceId" : "rg2-rn1",
        "status" : "RUNNING",
        "requestsEnabled" : "ALL",
        "state" : "MASTER",
        "authoritativeMaster" : true,
        "sequenceNumber" : 23,
        "haPort" : 5003,
        "availableStorageSize" : "3 GB"
      } ],
      "anStatus" : [ ]
    }, {
      "resourceId" : "sn2",
      "hostname" : "node02",
      "registryPort" : 6000,
      "zone" : {
        "resourceId" : "zn2",
        "name" : "Boston",
        "type" : "SECONDARY",
        "allowArbiters" : false,
        "masterAffinity" : false
      },
      "serviceStatus" : "RUNNING",
      "version" : "18.3.2 2018-09-17 09:33:45 UTC  Build id: a72484b8b33c Edition: Enterprise",
      "adminStatus" : {
        "resourceId" : "admin2",
        "status" : "RUNNING",
        "state" : "REPLICA"
      },
      "rnStatus" : [ {
        "resourceId" : "rg1-rn2",
        "status" : "RUNNING",
        "requestsEnabled" : "ALL",
        "state" : "REPLICA",
        "sequenceNumber" : 23,
        "haPort" : 6003,
        "availableStorageSize" : "3 GB",
        "networkRestoreUnderway" : false,
        "delayMillis" : 0,
        "catchupTimeSecs" : 0,
        "catchupRateMillisPerMinute" : 0
      } ],
      "anStatus" : [ ]
    } ],
    "exitCode" : 0
  }
}