管理跨集群复制
编辑管理跨集群复制
编辑使用以下信息来管理跨集群复制任务,例如检查复制进度、暂停和恢复复制、重新创建跟随者索引以及终止复制。
要开始使用跨集群复制,请访问 Kibana 并转到 管理 > 堆栈管理。在侧边导航中,选择 跨集群复制。
检查复制统计信息
编辑要检查跟随者索引的复制进度并查看详细的分片统计信息,请访问跨集群复制并选择 跟随者索引 选项卡。
选择您要查看复制详细信息的跟随者索引的名称。滑出面板会显示跟随者索引的设置和复制统计信息,包括由跟随者分片管理的读取和写入操作。
要查看更详细的统计信息,请单击 在索引管理中查看,然后在索引管理中选择跟随者索引的名称。打开选项卡以查看有关跟随者索引的详细统计信息。
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" }