0

我能够运行 curator 从源索引中获取快照并在目标索引中恢复相同的快照。但是在下一次快照和恢复操作后,我对目标索引所做的所有更新都会丢失。

是否可以指定不覆盖目标索引的更新?

源索引: test_index

目标索引: dest_test_index

快照操作.yml 文件

actions:
  1:
    action: snapshot
    description: Snapshot selected indices to 'repository' with the snapshot name or name pattern in 'name'.  Use all other options as assigned
    options:
      repository: esbackup
      name:
      wait_for_completion: True
      max_wait: 3600
      wait_interval: 10
    filters:
    - filtertype: pattern
      kind: regex
      value: '^(test_index)$'
      exclude:

恢复-action.yml 文件

actions:
  1:
    action: create_index
    description: "Create the temporary index with dest_index_v2 name"
    options:
      name: dest_index_v2
  2:
    action: close
    description: >-
      Close index dest_indiex_v2.
    options:
      ignore_empty_list: True
      skip_flush: False
      delete_aliases: False
      ignore_sync_failures: True
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: dest_index_v2
  3:
    action: restore
    description: >-
      Restore test_index from the most recent snapshot in temp index dest_index_v2.
    options:
      repository: esbackup
      # If name is blank, the most recent snapshot by age will be selected
      name:
      # If indices is blank, all indices in the snapshot will be restored
      indices: ['test_index']
      rename_pattern: test_index
      rename_replacement: dest_index_v2
      wait_for_completion: True
      max_wait: 3600
      wait_interval: 10
    filters:
    - filtertype: none
  4:
    action: open
    description: >-
      Open index pattern dest_index_v2.
    options:
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: dest_index_v2
      exclude:
  5:
    description: "Reindex dest_index_v2 into dest_test_index"
    action: reindex
    options:
      wait_interval: 9
      max_wait: -1
      request_body:
        source:
          index: dest_index_v2
        dest:
          index: dest_test_index
    filters:
    - filtertype: none
  6:
    action: delete_indices
    description: >-
      Delete index dest_index_v2. Ignore the error if the filter does not result in an
      actionable list of indices (ignore_empty_list) and exit cleanly.
    options:
      ignore_empty_list: False
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: dest_index_v2
4

1 回答 1

1

如果您正在寻找一些将更新的目标索引与源索引(您从快照恢复)合并的弹性搜索设置,那么简短的答案是NO

您可以编写自定义代码来执行以下操作,以确保目标索引更新不会丢失。

  1. 将源索引(test_index)恢复到集群中的一个临时索引,我们称这个索引为temp_index
  2. 使用 Operation 类型从temp_index 目标索引(您可以在此处参考文档dest_test_indexop_type=createcreate

希望这可以解决您的目的。

于 2020-12-24T10:55:42.923 回答