Ani*_*dey 6 snapshot elasticsearch
我必须将 Windows 机器上的 Elasticsearch 索引传输到 Ubuntu 机器。我决定拍摄索引的快照,然后尝试在另一个系统上恢复它。
我成功地在 Windows 机器上对索引进行了快照。在elasticsearch.yml
我的 windows 机器上path.repo: ["F:\\mount\\backups"]
。
所以,在mount
我之下:
.
??? backups
??? old_backup
??? index
??? indices
? ??? old_index
? ??? 0
? ??? 1
? ??? 2
? ??? 3
? ??? 4
? ??? meta-snapshot_to_ubuntu.dat
??? meta-snapshot_to_ubuntu.dat
??? snap-snapshot_to_ubuntu.dat
Run Code Online (Sandbox Code Playgroud)
snapshot_to_ubuntu
我在 Windows 上制作的快照的名称在哪里。
我将此快照~/Documents/mount
放在 ubuntu 机器上,并使用path.repo: ["/home/animesh/Documents/mount/backups"]
in启动了一个 ES 2.3.0 实例elasticsearch.yml
。
我在命令行上运行以下命令:
curl -XGET localhost:9200/_snapshot/old_backup/snapshot_to_ubuntu?pretty=1
Run Code Online (Sandbox Code Playgroud)
并得到
{
"error" : {
"root_cause" : [ {
"type" : "repository_missing_exception",
"reason" : "[old_backup] missing"
} ],
"type" : "repository_missing_exception",
"reason" : "[old_backup] missing"
},
"status" : 404
}
Run Code Online (Sandbox Code Playgroud)
我哪里错了?
更新:
我运行了以下 curl 命令:
curl -X POST http://localhost:9200/_snapshot/old_backup/snapshot_to_ubuntu/_restore
Run Code Online (Sandbox Code Playgroud)
我得到:
{
"error": {
"root_cause": [
{
"type": "repository_missing_exception",
"reason": "[old_backup] missing"
}
],
"type": "repository_missing_exception",
"reason": "[old_backup] missing"
},
"status": 404
}
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,我想与您分享我是如何解决的。我会把所有的步骤写下来,希望对其他人也有帮助。
我必须将 GCP 服务器上的 Elasticsearch 索引传输到我的本地计算机。我决定拍摄索引快照,然后尝试在本地计算机上恢复它。
我假设您已经拥有快照
步骤是:
在本地计算机上创建一个包含要恢复的快照的目录
导航到elasticsearch.yml
文件。例如,在我的本地计算机上,您可以在此处找到该文件:/usr/local/Cellar/elasticsearch/7.8.1/libexec/config/elasticsearch.yml
path.repo: [PATH_TO_BACKUP_DIR]
在文件上添加存储库路径:elasticsearch.yml
。例如:path.repo: ["/mount/backups", "/mount/longterm_backups"]
保存、退出并重启elasticsearch
所有节点重新启动后,可以使用以下命令注册共享文件系统存储库,名称为my_fs_backup
curl -X PUT“localhost:9200/_snapshot/my_fs_backup?pretty”-H'内容类型:application/json'-d'{“type”:“fs”,“settings”:{“location”:“PATH_TO_BACKUP_DIR” , // 示例: location" : "/usr/local/etc/elasticsearch/elastic-backup" "compress": true } }'
检查您的配置:curl -X GET "localhost:9200/_snapshot/_all?pretty"
从快照恢复:
8.1获取所有快照: curl -X GET "localhost:9200/_snapshot/my_fs_backup/*?pretty
选择您想要的快照(如果您有多个快照)
使用此命令进行恢复:
curl -X POST "localhost:9200/_snapshot/BACKUP_NAME/SNAPSHOT_ID/_restore?pretty" -H 'Content-Type: application/json' -d'
{
"indices": "users, events",
"ignore_unavailable": true,
"include_global_state": true
}
Run Code Online (Sandbox Code Playgroud)
例如:
curl -X POST "localhost:9200/_snapshot/my_fs_backup/elastic-snapshot-2020.09.05-lwul1zb9qaorq0k9vmd5rq/_restore?pretty" -H 'Content-Type: application/json' -d'
{
"indices": "users, events",
"ignore_unavailable": true,
"include_global_state": true
}
Run Code Online (Sandbox Code Playgroud)
请注意,我只导入了 2 个索引 users
,events
希望能帮助到你
更多信息和扩展教程: Elastic website , jee-appy blogspot
alp*_*ert -1
curl -XGET localhost:9200/_snapshot/old_backup/snapshot_to_ubuntu?pretty=1
Run Code Online (Sandbox Code Playgroud)
该命令创建快照。因为您没有在 ubuntu 端创建存储库,所以会出现错误。
你想要的是恢复,所以你应该使用_restore
端点:
POST /_snapshot/old_backup/snapshot_to_ubuntu/_restore
Run Code Online (Sandbox Code Playgroud)
检查:https ://www.elastic.co/guide/en/elasticsearch/reference/2.3/modules-snapshots.html#_restore
归档时间: |
|
查看次数: |
8091 次 |
最近记录: |