栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

es通过快照方式迁移数据

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

es通过快照方式迁移数据

自建es之间数据迁移

本文主要讲述快照方式,其他方式可自行百度


下面是在自建es中操作迁移数据,操作的时候可借助与kibana进行操作,也可通过postman或者curl命令操作

源es

1.先在es配置文件中添加仓库配置

docker exec -it elastic-dev /bin/bash
cd config/

vi elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0
path.repo: ["/usr/share/elasticsearch/data/back"]

然后退出重启容器生效

2.创建仓库

kibana:

PUT /_snapshot/new_cs
{
    "type": "fs",
    "settings":{
        "location": "new_cs"
    }
}

3.查看仓库

GET /_snapshot

4.创建快照备份(指定索引或者备份整个,看自己需要)

指定索引:

PUT /_snapshot/new_cs/data
{
  "indices": "index1,index2",
  "include_global_state": true
}

备份整个es:

PUT /_snapshot/new_cs/data

5.查看快照进度

GET /_snapshot/new_cs/data/_status
目标es

1.将源es备份的快照目录打包并发送到目标es服务器

源服务器操作
docker exec -it elastic-1 /bin/bash
cd data/back/
tar czf new_cs.tar.gz new_cs
exit

docker cp c897bd3c016d:/usr/share/elasticsearch/data/back/new_cs.tar.gz ./
scp new_cs.tar.gz root@172.16.0.11:/root

2.在目标es中创建仓库目录并重启生效

目标服务器操作
docker exec -it elastic-2 /bin/bash
cd config/

vi elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0
path.repo: ["/usr/share/elasticsearch/data/back"]

然后退出重启容器生效

3.将发送过来的备份文件拷贝到容器对应的仓库中

docker cp new_cs.tar.gz fa8fdsa92b162:/usr/share/elasticsearch/data/back/
docker exec -it elastic-2 /bin/bash
cd data/back/
tar xf new_cs.tar.gz

4.同样的建立一个仓库

    PUT /_snapshot/new_es
{
    "type": "fs",
    "settings":{
        "location": "new_es"
    }
}

注意:两边的仓库目录和备份名称一定要一样

5.执行恢复数据

POST /_snapshot/new_cs/data/_restore?wait_for_completion=true

同步自建es数据到腾讯云es 自建es执行

1.安装腾讯云提供的备份快照到cos的插件(因为腾讯云es必须通过块存储去同步数据,所以要先将备份数据备份到cos)

插件地址:https://github.com/tencentyun/elasticsearch-repository-cos/releases

尽量下载和你es版本一样的插件

docker cp repository-cos-7.9.2.zip c897bd3c016d:/usr/share/elasticsearch/plugin/
docker exec -it elastic-1 /bin/bash
cd plugin/
unzip -d repository-cos repository-cos-7.9.2.zip
rm -rf repository-cos-7.9.2.zip
chown elasticsearch repository-cos
exit

docker restart elastic-1
必须要重启es插件才能生效

2.通过repository-cos插件调用腾讯云cos创建仓库

PUT _snapshot/my_cos_backup
{
    "type": "cos",
    "settings": {
        "app_id": "xxxxxxx",
        "access_key_id": "xxxxxx",
        "access_key_secret": "xxxxxxx",
        "bucket": "xxxxxx",
        "region": "ap-guangzhou",
        "compress": true,
        "chunk_size": "500mb",
        "base_path": "/"
    }
}
  • app_id:腾讯云账号 APPID。在账号信息里面可以找到
  • access_key_id:腾讯云 API 密钥 SecretId。
  • access_key_secret:腾讯云 API 密钥 SecretKey。
  • bucket:COS Bucket 名字,不带 appId 后缀的 bucket 名。这个需要先创建
  • region:COS Bucket 地域,必须与 ES 集群同地域。
  • base_path:备份目录。

3.创建快照

PUT _snapshot/my_cos_backup/snapshot_1

4.查看快照进度

GET _snapshot/my_cos_backup/snapshot_1
返回结果中的state字段为SUCCESS则说明快照已经备份成功
腾讯云es执行

1.创建仓库(和前面一样)

PUT _snapshot/my_cos_backup
{
    "type": "cos",
    "settings": {
        "app_id": "xxxxxxx",
        "access_key_id": "xxxxxx",
        "access_key_secret": "xxxxxxx",
        "bucket": "xxxxxx",
        "region": "ap-guangzhou",
        "compress": true,
        "chunk_size": "500mb",
        "base_path": "/"
    }
}

2.执行恢复数据

POST /_snapshot/my_cos_backup/snapshot_1/_restore
{
"indices": "*,-.*"
}

"indices": "*,-.*"这个匹配规则的意思是恢复所有除了以.开头的索引,也就是排除那些kibana建立的索引

  • indices:只恢复 某些 索引,忽略快照中存在的其他索引。
  • rename_pattern:查找所提供的模式能匹配上的正在恢复的索引。
  • rename_replacement:将匹配的索引重命名成替代的模式。

3.查看恢复状态

查看执行索引状态
GET index_1/_recovery
查看指定索引的状态,返回结果中 status 为 green,则说明索引已经完全恢复
GET _cluster/health/index_1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913698.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号