本地备份快照
1、备份前需要在Elasticsearch的配置文件 elasticsearch.yml 中增加设置,然后需要重启es,如果es中有这个配置那么不需要进行这一步操作,直接忽略此步骤。
path.repo: ["/mount/backups"] //文件会存储到es同一级根目录
2、本地执行备份命令
#创建备份快照仓库
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mount/backups" //本地es生产快照路径,这个路径可以自己随便指定
}
}
#指定备份的index,生成快照
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=false
{
"indices": "index_1,index_2"//需要备份的index,不指定将备份所有的index
}
3、查看备份状态:
GET _snapshot/my_backup/snapshot_1 //获取 snapshot_1 的执行状态
生产集群还原es快照
1、生产主节点需要在Elasticsearch的配置文件 elasticsearch.yml 中增加设置,然后需要重启es。注意从节点不需要配置这个
path.repo: ["/mount/backups"] //文件会存储到es同一级根目录
2、在kibana中执行主节点生产快照,提前在主节点es中生成该目录/mount/backups
,这个目录根据自己情况指定
--创建仓库,创建备份快照
PUT /_snapshot/my_backup //my_backup快照名称
{
"type": "fs",
"settings": {
"location": "/mount/backups" //本地es生产快照路径,这个路径可以自己随便指定
}
}
3、将本地/mount目录下的backups备份的快照拷贝放入主节点服务器/mount
目录下
4、执行还原操作,执行此操作的时候,从节点需要先关闭,等执行完该命令之后再启动从节点。注意事项:还原前需要把老的
POST /_snapshot/my_backup/snapshot_1/_restore?wait_for_completion=false
{
"indices": "index_1",
"rename_replacement": "restored_index_1"
}
#如果没有这个
{
"indices": "index_1",
"rename_replacement": "restored_index_1"
}就是恢复所有的索引
#通过上面的 api,我们可以将 index_1 索引恢复到 restored_index_1 中。这个恢复过程完全是基于文件的,因此效率会比较高。
#如果只有一个索引的话可以直接执行以下操作进行还原
POST /_snapshot/my_backup/snapshot_1/_restore?wait_for_completion=false
5、执行完上面操作,数据已经同步到主节点了,然后对数据进行分片和创建副本操作
分片和副本参数说明:
number_of_shards
:分片数量,默认值是 5number_of_replicas
:副本数量,默认值是 1
我们有三个节点,在每个节点上都创建一个分片。每个分片在另两个节点上各创建一个副本。
# 设置分片和副本,根据自己情况设置分片和副本
PUT /自己索引名
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
}
}
参考文档
备份还原:https://developer.aliyun.com/article/767043?utm_content=g_1000151932
备份还原:https://www.toutiao.com/i6994312724490732065/
索引分片和索引副本:https://blog.csdn.net/weixin_38305440/article/details/109265248