123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- [[shard-tool]]
- == elasticsearch-shard
- In some cases the Lucene index or translog of a shard copy can become
- corrupted. The `elasticsearch-shard` command enables you to remove corrupted
- parts of the shard if a good copy of the shard cannot be recovered
- automatically or restored from backup.
- [WARNING]
- You will lose the corrupted data when you run `elasticsearch-shard`. This tool
- should only be used as a last resort if there is no way to recover from another
- copy of the shard or restore a snapshot.
- When Elasticsearch detects that a shard's data is corrupted, it fails that
- shard copy and refuses to use it. Under normal conditions, the shard is
- automatically recovered from another copy. If no good copy of the shard is
- available and you cannot restore from backup, you can use `elasticsearch-shard`
- to remove the corrupted data and restore access to any remaining data in
- unaffected segments.
- [WARNING]
- Stop Elasticsearch before running `elasticsearch-shard`.
- To remove corrupted shard data use the `remove-corrupted-data` subcommand.
- There are two ways to specify the path:
- * Specify the index name and shard name with the `--index` and `--shard-id`
- options.
- * Use the `--dir` option to specify the full path to the corrupted index or
- translog files.
- [float]
- === Removing corrupted data
- `elasticsearch-shard` analyses the shard copy and provides an overview of the
- corruption found. To proceed you must then confirm that you want to remove the
- corrupted data.
- [WARNING]
- Back up your data before running `elasticsearch-shard`. This is a destructive
- operation that removes corrupted data from the shard.
- [source,txt]
- --------------------------------------------------
- $ bin/elasticsearch-shard remove-corrupted-data --index twitter --shard-id 0
- WARNING: Elasticsearch MUST be stopped before running this tool.
- Please make a complete backup of your index before using this tool.
- Opening Lucene index at /var/lib/elasticsearchdata/nodes/0/indices/P45vf_YQRhqjfwLMUvSqDw/0/index/
- >> Lucene index is corrupted at /var/lib/elasticsearchdata/nodes/0/indices/P45vf_YQRhqjfwLMUvSqDw/0/index/
- Opening translog at /var/lib/elasticsearchdata/nodes/0/indices/P45vf_YQRhqjfwLMUvSqDw/0/translog/
- >> Translog is clean at /var/lib/elasticsearchdata/nodes/0/indices/P45vf_YQRhqjfwLMUvSqDw/0/translog/
- Corrupted Lucene index segments found - 32 documents will be lost.
- WARNING: YOU WILL LOSE DATA.
- Continue and remove docs from the index ? Y
- WARNING: 1 broken segments (containing 32 documents) detected
- Took 0.056 sec total.
- Writing...
- OK
- Wrote new segments file "segments_c"
- Marking index with the new history uuid : 0pIBd9VTSOeMfzYT6p0AsA
- Changing allocation id V8QXk-QXSZinZMT-NvEq4w to tjm9Ve6uTBewVFAlfUMWjA
- You should run the following command to allocate this shard:
- POST /_cluster/reroute
- {
- "commands" : [
- {
- "allocate_stale_primary" : {
- "index" : "index42",
- "shard" : 0,
- "node" : "II47uXW2QvqzHBnMcl2o_Q",
- "accept_data_loss" : false
- }
- }
- ]
- }
- You must accept the possibility of data loss by changing parameter `accept_data_loss` to `true`.
- Deleted corrupt marker corrupted_FzTSBSuxT7i3Tls_TgwEag from /var/lib/elasticsearchdata/nodes/0/indices/P45vf_YQRhqjfwLMUvSqDw/0/index/
- --------------------------------------------------
- When you use `elasticsearch-shard` to drop the corrupted data, the shard's
- allocation ID changes. After restarting the node, you must use the
- <<cluster-reroute,cluster reroute API>> to tell Elasticsearch to use the new
- ID. The `elasticsearch-shard` command shows the request that
- you need to submit.
- You can also use the `-h` option to get a list of all options and parameters
- that the `elasticsearch-shard` tool supports.
|