elastichsearch数据备份,恢复,及迁移

迁移注意事项

  • 保证ES集群不再接受新的数据(如果是备份的话,这一点可以不考虑,但是做数据迁移的话,建议这样做).
  • 不建议直接在生产环境做这些操作,最好是先在本地搭建一个和生产环境一样的集群环境,创建一些测试数据,把整个过程先跑一遍,然后再到生产环境操作。
  • 配置文件中指定path.repo路径,如: path.repo :  /data/backups/elasticsearch
本文假设ES集群有3个节点,IP分别是: 192.168.0.1, 193.168.0.2, 192.168.0.3

注册快照仓库

ES是通过快照的方式来实现数据备份,并且是以增量的方式,所以一般第一次做的话会花费较长的时间。为了做快照,那么就需要注册一个快照仓库,告诉ES我们的快照应该如何保存以及将快照保存到哪里.
ES的快照仓库支持如下几种形式:
  • 共享的文件系统,如NAS
  • Amazon S3
  • HDFS (Hadoop Distributed File System)
  • Azure Cloud
通常选择注册第一种形式。
任意选择一个节点,执行如下命令
$ curl -XPUT  http://192.168.0.1:9200/_snapshot/my_backup -d '
{
    "type": "fs",
    "settings": {
        "location": "/data/backups/elasticsearch"
    }
}
'
这样就注册了一个名为 my_backup 的仓库,这里的 location 需要注意,最好是设置一个每个节点都能访问并且有写权限的共享目录,如smb目录等(如果整个集群就一个节点那么设置为本地目录也无所谓)。 我自己在做的时候由于设置了本地目录 /data/backups/elasticsearch , 最后做出来发现快照被分别保存在集群每个节点的 /data/backups/elasticsearch 目录下,并且一个节点保存了一些信息。最后做数据迁移的时候,不得不从每个节点将快照文件拷贝出来,然后合并到一起。
除了 location 外,还有一些其他选项可以设置:
  • compress 是否压缩
  • max_snapshot_bytes_per_sec 制作快照的速度,默认20mb/s
  • max_restore_bytes_per_sec 快照恢复的速度,默认20mb/s
更新仓库设置如下:
$ curl -XPOST http://192.168.0.1:9200/_snapshot/my_backup/
{
    "type": "fs",
    "settings": {
        "location": "/data/backups/elasticsearch",
        "max_snapshot_bytes_per_sec" : "50mb",
        "max_restore_bytes_per_sec" : "50mb",
        "compress" : true
    }
}
这里需要注意一点是,注册仓库用的是 PUT , 而更新仓库设置用的是 POST .

检查注册的仓库信息

$ curl -XGET http://192.168.0.1:9200/_snapshot/my_backup
 

开始备份

指定快照名称为 snapshot_20150812
$ curl -XPUT http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812
执行上面的上面的命令会马上返回,并在后台执行备份操作, 如果想等到备份完成,可以加上参数 wait_for_completion=true
 
$ curl -XPUT http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812?wait_for_completion=true

默认是备份所有的索引indices, 如果要指定index,可以

 
$ curl -XPUT http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812
{
"indices": "index_1,index_2"
}
这个备份过程需要的时间视数据量而定.

查看备份状态

整个备份过程中,可以通过如下命令查看备份进度
$ curl -XGET http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812/_status
主要由如下几种状态:
  • INITIALIZING    集群状态检查,检查当前集群是否可以做快照,通常这个过程会非常快
  • STARTED         正在转移数据到仓库
  • FINALIZING      数据转移完成,正在转移元信息
  • DONE             完成
  • FAILED              备份失败

取消备份

$ curl -XDELETE http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812

恢复备份

$ curl -XPOST http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812/_restore

同备份一样,也可以设置wait_for_completion=true等待恢复结果

 
$ curl -XPOST http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812/_restore?wait_for_completion=true
默认情况下,是恢复所有的索引,我们也可以设置一些参数来指定恢复的索引,以及重命令恢复的索引,这样可以避免覆盖原有的数据.
$ curl -XPOST http://192.168.0.1:9200/_snapshot/my_backup/snapshot_20150812/_restore 
{
    "indices": "index_1",
    "rename_pattern": "index_(.+)",
    "rename_replacement": "restored_index_$1"
}
  • 上面的indices, 表示只恢复索引’index_1’
  • rename pattern: 表示重命名索引以’index ‘开头的索引.
  • rename_replacement: 表示将所有的索引重命名为’restored_index_xxx’.如index_1会被重命名为restored_index_1.

查看恢复进度

# 查看所有索引的恢复进度
$ curl -XGET http://192.168.0.1:9200/_recovery/

# 查看索引restored_index_1的恢复进度
$ curl -XGET http://192.168.0.1:9200/_recovery/restored_index_1

 

取消恢复

只需要删除索引,即可取消恢复
$ curl -XDELETE http://192.168.0.1:9200/restored_index_1

备份快照迁移

如果需要将快照迁移到另一个集群.只需要将备份文件全部拷贝到要迁移的机器上, 然后再在新的集群上注册一个快照仓库,设置 location 的位置为备份文件所在的地方,然后执行恢复备份的命令即可。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据迁移和备份恢复策略是确保数据安全和可靠性的重要措施。下面是一些常用的策略: 1. 数据迁移策略: - 导出和导入:使用`mysqldump`命令将源数据库导出为SQL文件,然后使用`mysql`命令将SQL文件导入到目标数据库。 - 复制和同步:通过MySQL复制功能,将数据从源数据库复制到目标数据库,实现实时或定期的数据同步。 - 第三方工具:使用一些数据库迁移工具(如DMS、Liquibase等),可以更方便地进行数据迁移和同步。 2. 数据备份策略: - 定期全量备份:定期对整个数据库进行全量备份,以保留完整的数据副本。 - 增量备份:基于全量备份,通过记录增量日志或使用MySQL的二进制日志(Binary Log)进行增量备份,以减少备份时间和存储空间。 - 热备份:使用MySQL的在线备份工具(如Percona XtraBackup、MySQL Enterprise Backup等),可以在数据库运行时进行备份,减少对业务的影响。 3. 数据恢复策略: - 全量恢复:将全量备份文件还原到目标数据库,恢复所有数据。 - 增量恢复:先恢复全量备份,再将增量备份文件依次应用到目标数据库,实现数据的增量恢复。 - 点恢复:基于二进制日志(Binary Log)或增量备份,可以选择在特定时间点进行数据恢复,以满足特定需求。 4. 测试和验证: - 定期进行备份验证:定期恢复备份数据到测试环境,验证备份的完整性和可用性。 - 模拟灾难恢复:模拟灾难事件,测试数据恢复过程,确保备份和恢复策略的可行性和有效性。 无论是数据迁移还是备份恢复,都需要注意以下几点: - 定期执行:根据业务需求和数据变更频率,制定合理的执行计划,确保数据的及时备份和迁移。 - 存储安全:将备份数据存储在安全可靠的位置,以免遭受意外损坏或安全威胁。 - 监控和报警:对迁移和备份过程进行监控,并设置相应的报警机制,及时发现和解决潜在问题。 请注意,具体的迁移和备份恢复策略应根据业务需求、数据量和可用资源进行定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值