Recreate a follower index
editRecreate a follower index
editWhen a document is updated or deleted, the underlying operation is retained in
the Lucene index for a period of time defined by the
index.soft_deletes.retention_lease.period
parameter. You configure
this setting on the leader index.
When a follower index starts, it acquires a retention lease from the leader index. This lease informs the leader that it should not allow a soft delete to be pruned until either the follower indicates that it has received the operation, or until the lease expires.
If a follower index falls sufficiently behind a leader and cannot
replicate operations, Elasticsearch reports an indices[].fatal_exception
error. To
resolve the issue, recreate the follower index. When the new follow index
starts, the remote recovery process recopies the
Lucene segment files from the leader.
Recreating the follower index is a destructive action. All existing Lucene segment files are deleted on the cluster containing the follower index.
To recreate a follower index, access Cross-Cluster Replication and choose the Follower indices tab.
Select the follower index and pause replication. When the follower index status changes to Paused, reselect the follower index and choose to unfollow the leader index.
The follower index will be converted to a standard index and will no longer display on the Cross-Cluster Replication page.
In the side navigation, choose Index Management. Select the follower index from the previous steps and close the follower index.
You can then recreate the follower index to restart the replication process.
Use the API
Use the pause follow API to pause the replication process. Then, close the follower index and recreate it. For example:
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" }