

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 检查 Neptune 实例的运行状况
<a name="access-graph-status"></a>

Amazon Neptune 提供了一种用于检查主机上的图形数据库状态的机制。这也是确认您能够连接到实例的好方法。

使用 `curl` 检查实例的运行状况并获取数据库集群状态：

```
curl -G https://your-neptune-endpoint:port/status
```

或者，从[引擎 1.2.1.0.R6 版本](engine-releases-1.2.1.0.R6.md)开始，您可以改用以下 CLI 命令：

```
aws neptunedata get-engine-status
```

如果实例运行正常，则 `status` 命令会返回具有以下字段的 [JSON 对象](#access-graph-status-sample-output)：
+ **`status`** – 如果实例没有遇到问题，则设置为 `"healthy"`。

  如果实例从崩溃中恢复或者进行了重启，并且最近一次服务器关闭时仍有活动的事务在运行，则 `status` 设置为 `"recovery"`。
+ **`startTime`** – 设置为当前服务器进程启动的 UTC 时间。
+ **`dbEngineVersion`** – 设置为在数据库集群上运行的 Neptune 引擎版本。

  如果此引擎版本发布以来已手动安装补丁程序，则版本号添加前缀 `"Patch-"`。
+ **`role`** – 如果实例为只读副本，则设置为 `"reader"`；如果实例为主实例，则设置为 `"writer"`。
+ **`dfeQueryEngine`** – 如果 [DFE 引擎](neptune-dfe-engine.md)已完全启用，则设置为 `"enabled"`；或者如果 DFE 引擎仅用于 `useDFE` 查询提示设置为 `true`（`viaQueryHint` 为默认值）的查询，则设置为 `viaQueryHint`。
+ **`gremlin`** – 包含有关您的集群上可用的 Gremlin 查询语言的信息。具体而言，它包含一个`version`字段，用于指定引擎正在使用的当前 TinkerPop 版本。
+ **`sparql`** – 包含有关您的集群上可用的 SPARQL 查询语言的信息。具体而言，它包含一个 `version` 字段，用于指定引擎正在使用的当前 SPARQL 版本。
+ **`opencypher`** – 包含有关您的集群上可用的 openCypher 查询语言的信息。具体而言，它包含一个 `version` 字段，用于指定引擎正在使用的当前 OperCypher 版本。
+ **`labMode`** – 包含引擎正在使用的 [实验室模式](features-lab-mode.md) 设置。这是实验室模式设置的选择性列表，不是完整设置。有关在使用的完整设置，请参阅[集群参数组](https://docs.aws.amazon.com//neptune/latest/userguide/parameter-groups.html)。
+ **`rollingBackTrxCount`** – 如果有事务正在回滚，则此字段将设置为此类事务的数量。如果没有，则该字段根本不会出现。
+ **`rollingBackTrxEarliestStartTime`** – 设置为正在回滚的最早事务的开始时间。如果没有回滚任何事务，则该字段根本不会出现。
+ **`features`** – 包含有关在您的数据库集群上启用的特征的状态信息：
  + **`lookupCache`** – [查找缓存](feature-overview-lookup-cache.md) 的当前状态。此字段仅出现在 `R5d` 实例类型上，因为这些是可能存在查找缓存的仅有实例。该字段是采用以下形式的 JSON 对象：

    ```
    "lookupCache": {
      "status": "current lookup cache status"
    }
    ```

    在 `R5d` 实例上：
    + 如果启用了查找缓存，则状态将列为 `"Available"`。
    + 如果已禁用查找缓存，则状态将列为 `"Disabled"`。
    + 如果已达到实例上的磁盘限制，则状态将列为 `"Read Only Mode - Storage Limit Reached"`。
  + **`ResultCache`** – [缓存查询结果](gremlin-results-cache.md) 的当前状态。此字段是采用以下形式的 JSON 对象：

    ```
    "ResultCache": {
      "status": "current results cache status"
    }
    ```
    + 如果已启用结果缓存，则状态将列为 `"Available"`。
    + 如果缓存已禁用，则状态将列为 `"Disabled"`。
  + **`IAMAuthentication`**— 指定是否已在数据库集群上启用 AWS Identity and Access Management (IAM) 身份验证：
    + 如果启用了 IAM 身份验证，则状态将列为 `"enabled"`。
    + 如果禁用 IAM 身份验证，则状态将列为 `"disabled"`。
  + **`Streams`** – 指定您的数据库集群上是否已启用 Neptune 流：
    + 如果启用了流，则状态将列为 `"enabled"`。
    + 如果流已禁用，则状态将列为 `"disabled"`。
  + **`AuditLog`** – 如果启用了审计日志，则等于 `enabled`，否则为 `disabled`。
  + **`SlowQueryLogs`** – 如果启用了[慢速查询日志记录](slow-query-logs.md)，则等于 `info` 或 `debug`，否则为 `disabled`。
  + **`QueryTimeout`** – 查询超时的值（以毫秒为单位）。
+ **`settings`** – 应用于实例的设置：
  + **`clusterQueryTimeoutInMs`** – 为整个集群设置的查询超时值（以毫秒为单位）。
  + **`SlowQueryLogsThreshold`** – 为整个集群设置的查询超时值（以毫秒为单位）。
+ **`serverlessConfiguration`** – 如果集群以无服务器模式运行，则为该集群的无服务器设置：
  + **`minCapacity`**— 数据库集群中无服务器实例可以缩小到的最小大小，以 Neptune 容量单位 () 为单位NCUs。
  + **`maxCapacity`**— 数据库集群中无服务器实例可以增长到的最大大小，以 Neptune 容量单位 () 为单位NCUs。

## 实例状态命令的输出示例
<a name="access-graph-status-sample-output"></a>

以下是实例状态命令（在本例中，在 `R5d` 实例上运行）的输出示例：

```
{
  'status': 'healthy',
  'startTime': 'Thu Aug 24 21:47:12 UTC 2023',
  'dbEngineVersion': '1.2.1.0.R4',
  'role': 'writer',
  'dfeQueryEngine': 'viaQueryHint',
  'gremlin': {'version': 'tinkerpop-3.6.2'},
  'sparql': {'version': 'sparql-1.1'},
  'opencypher': {'version': 'Neptune-9.0.20190305-1.0'},
  'labMode': {
    'ObjectIndex': 'disabled',
    'ReadWriteConflictDetection': 'enabled'
  },
  'features': {
    'SlowQueryLogs': 'disabled',
    'ResultCache': {'status': 'disabled'},
    'IAMAuthentication': 'disabled',
    'Streams': 'disabled',
    'AuditLog': 'disabled'
  },
  'settings': {
    'clusterQueryTimeoutInMs': '120000',
    'SlowQueryLogsThreshold': '5000'
  },
  'serverlessConfiguration': {
    'minCapacity': '1.0',
    'maxCapacity': '128.0'
  }
}
```

如果实例出现问题，此状态命令将返回 `HTTP 500` 错误代码。如果主机无法访问，此请求将超时。请确保您正在从 Virtual Private Cloud (VPC) 内访问实例并且您的安全组允许对其访问。