如何解決 Amazon OpenSearch Service 中的「無法恢復索引 [.kibana],因為該索引已開啟」錯誤?

上次更新日期:2021 年 7 月 23 日

當我嘗試從 Amazon OpenSearch Service 中的手動快照恢復索引時,恢復失敗,並顯示錯誤訊息。如何解決此錯誤?

解決方案

在 Amazon OpenSearch Service 5.1 及更新版本中,OpenSearch Service 會監控 .kibana 索引,並在該索引刪除時重新建立索引。這種行為可能會造成恢復失敗,並顯示下列錯誤訊息:

{"error":{"root_cause":[{"type":"snapshot_restore_exception","reason":"[repository-name:snapshot-name/1A2B34aZQFWQpFOYYJfxmQ]
 cannot restore index [.kibana] because it's 
open"}],"type":"snapshot_restore_exception","reason":"[repository-name:snapshot-name/1A2B34aZQFWQpFOYYJfxmQ]
 cannot restore index [.kibana] because it's open"},"status":500}

若要解決這個問題,請執行下列步驟:

1.    恢復索引並重新命名 .kibana 索引,如下所示:

# restore indices.   
$ curl -XPOST -H 'Content-Type: application/json' 'https://your-domain-end-point/_snapshot/your-repository-name/your-snapshot-name/_restore' -d '
{
  "indices": "*",
  "ignore_unavailable": true,
  "include_global_state": true,
  "rename_pattern": ".kibana",
  "rename_replacement": "restored_.kibana"
}'

在此範例中,.kibana 索引會重新命名為 "restored_.kibana"。

2.    使用 _reindex API 操作會將 "restored_.kibana" 重新命名為原來的 ".kibana",如下所示:

# reindex restored_.kibana to .kibana 
$ curl -XPOST -H 'Content-Type: application/json' 'https://your-domain-end-point/_reindex' -d '
{
  "source": {
    "index": "restored_.kibana"
  },
  "dest": {
    "index": ".kibana"
  }
}'

您現在可以從手動快照恢復索引。

Amazon OpenSearch Service 是 Amazon Elasticsearch Service 的後繼者。


此文章是否有幫助?


您是否需要帳單或技術支援?