管理跨集群复制

编辑

使用以下信息来管理跨集群复制任务,例如检查复制进度、暂停和恢复复制、重新创建跟随者索引以及终止复制。

要开始使用跨集群复制,请访问 Kibana 并转到 管理 > 堆栈管理。在侧边导航中,选择 跨集群复制

检查复制统计信息

编辑

要检查跟随者索引的复制进度并查看详细的分片统计信息,请访问跨集群复制并选择 跟随者索引 选项卡。

选择您要查看复制详细信息的跟随者索引的名称。滑出面板会显示跟随者索引的设置和复制统计信息,包括由跟随者分片管理的读取和写入操作。

要查看更详细的统计信息,请单击 在索引管理中查看,然后在索引管理中选择跟随者索引的名称。打开选项卡以查看有关跟随者索引的详细统计信息。

API 示例

使用 获取跟随者统计信息 API 来检查分片级别的复制进度。此 API 提供对跟随者分片管理的读取和写入操作的深入了解。该 API 还报告可以重试的读取异常以及需要用户干预的致命异常。

暂停和恢复复制

编辑

要暂停和恢复领导者索引的复制,请访问跨集群复制并选择 跟随者索引 选项卡。

选择要暂停的跟随者索引,然后选择 管理 > 暂停复制。跟随者索引状态将更改为“已暂停”。

要恢复复制,请选择跟随者索引并选择 恢复复制

API 示例

您可以使用 暂停跟随者 API 来暂停复制,然后稍后使用 恢复跟随者 API 来恢复复制。如果您的初始配置不适合您的用例,则同时使用这些 API 可以使您调整跟随者分片任务的读取和写入参数。

重新创建跟随者索引

编辑

当文档被更新或删除时,底层操作会在 Lucene 索引中保留一段时间,这段时间由 index.soft_deletes.retention_lease.period 参数定义。您需要在领导者索引上配置此设置。

当跟随者索引启动时,它会从领导者索引获取保留租约。此租约会通知领导者,在跟随者指示已收到操作或租约过期之前,不应允许修剪软删除。

如果跟随者索引落后领导者太多而无法复制操作,则 Elasticsearch 会报告 indices[].fatal_exception 错误。要解决此问题,请重新创建跟随者索引。当新的跟随索引启动时,远程恢复过程会从领导者复制 Lucene 段文件。

重新创建跟随者索引是一个破坏性操作。所有现有的 Lucene 段文件都会在包含跟随者索引的集群上被删除。

要重新创建跟随者索引,请访问跨集群复制并选择 跟随者索引 选项卡。

选择跟随者索引并暂停复制。当跟随者索引状态更改为“已暂停”时,重新选择跟随者索引,然后选择取消跟随领导者索引。

跟随者索引将转换为标准索引,并且不再显示在“跨集群复制”页面上。

在侧边导航中,选择 索引管理。从之前的步骤中选择跟随者索引,然后关闭该跟随者索引。

然后,您可以重新创建跟随者索引以重新启动复制过程。

使用 API

使用 暂停跟随 API 来暂停复制过程。然后,关闭跟随者索引并重新创建它。例如

resp = client.ccr.pause_follow(
    index="follower_index",
)
print(resp)

resp1 = client.indices.close(
    index="follower_index",
)
print(resp1)

resp2 = client.ccr.follow(
    index="follower_index",
    wait_for_active_shards="1",
    remote_cluster="remote_cluster",
    leader_index="leader_index",
)
print(resp2)
response = client.ccr.pause_follow(
  index: 'follower_index'
)
puts response

response = client.indices.close(
  index: 'follower_index'
)
puts response

response = client.ccr.follow(
  index: 'follower_index',
  wait_for_active_shards: 1,
  body: {
    remote_cluster: 'remote_cluster',
    leader_index: 'leader_index'
  }
)
puts response
const response = await client.ccr.pauseFollow({
  index: "follower_index",
});
console.log(response);

const response1 = await client.indices.close({
  index: "follower_index",
});
console.log(response1);

const response2 = await client.ccr.follow({
  index: "follower_index",
  wait_for_active_shards: 1,
  remote_cluster: "remote_cluster",
  leader_index: "leader_index",
});
console.log(response2);
POST /follower_index/_ccr/pause_follow

POST /follower_index/_close

PUT /follower_index/_ccr/follow?wait_for_active_shards=1
{
  "remote_cluster" : "remote_cluster",
  "leader_index" : "leader_index"
}

终止复制

编辑

您可以取消跟随领导者索引以终止复制并将跟随者索引转换为标准索引。

访问跨集群复制并选择 跟随者索引 选项卡。

选择跟随者索引并暂停复制。当跟随者索引状态更改为“已暂停”时,重新选择跟随者索引,然后选择取消跟随领导者索引。

跟随者索引将转换为标准索引,并且不再显示在“跨集群复制”页面上。

然后,您可以选择 索引管理,从之前的步骤中选择跟随者索引,然后关闭该跟随者索引。

使用 API

您可以使用 取消跟随 API 来终止复制。此 API 会将跟随者索引转换为标准(非跟随者)索引。