Elasticsearch 数据迁移

Elasticsearch 数据迁移,第1张

这里主要介绍的是基于 Linux(CentOS7) 系统,不同服务器集群之前的数据迁移。Elasticsearch 可以通过快照(snapshot)相关的命令对索引进行备份和恢复。(这个备份是增量的,同一个索引在第一次备份的基础上进行第二次备份只会备份新变化的数据)

假定旧集群有三个节点,分别对应三台服务器: 192168110 、 192168111 、 192168112

在旧集群中指定 192168110 作为 NFS(Network File System)服务端,其它两台服务器作为 NFS 客户端,分别安装 NFS:

以下步骤只需要在 NFS 服务端执行。

创建数据共享目录,目录结构可以根据自己的实际情况修改:

修改配置文件:

相关参数的含义如下:

重启 NFS 服务端:

最后确保 NFS 保客户端能够访问 NFS 服务端的数据共享目录。

以下步骤需要在每台 NFS 客户端服务器执行。

在 NFS 客户端服务器创建数据挂载目录,这里方便起见,目录结构和 NFS 服务端共享目录一致:

将 NFS 服务端共享目录挂载到各个 NFS 客户端:

这样所有的 ES 节点就可以使用同一个数据共享目录。

在旧集群每个 ES 节点的 elasticsearchyml 中,设置 ES 快照仓库目录为前边 NFS 配置的数据共享目录,也就是 ES 数据要备份到的目录:

修改完成后重启 ES 服务。

连接旧集群中某一个节点发送 PUT 请求来创建快照仓库,例如使用 192168110 节点,可以使用 Postman、Kibana 发送请求:

或者直接在对应节点的服务器上执行如下命令:

创建索引的快照就是对索引进行备份,如下发送一个 PUT 请求来生成 index_1 、 index_2 索引的快照:

或者:

可以在 NFS 的数据共享目录中( /opt/data/es_backup )得到最终生成的索引快照文件。

查看快照仓库的信息:

查看指定快照:

查看仓库中所有的快照信息:

删除指定快照:

删除快照仓库:

参考文章第一部分的内容,在新集群的服务器上搭建 NFS 环境。

给新集群每个 ES 节点配置快照仓库的目录,也就是新集群中的 NFS 数据共享目录:

连接新集群中某个 ES 节点发送 PUT 请求创建快照仓库,和之前的一样:

先将旧集群中生成的索引快照文件拷贝到新集群的快照仓库目录下。

再连接集群中的某 ES 个节点,发送 POST 请求从索引快照中恢复数据:

或者:

如果不要参数,则是恢复快照中的全部索引:

一般情况下,我们会结合索引的大小,在旧群集中生成指定索引的快照文件,然后拷贝到新集群的快照仓库来恢复索引数据,恢复完后就可以删除对应的索引快照文件(如果有需要的话也可以备份起来),重复这个步骤直到所有索引数据迁移而完毕。

如果集群中的数据量比较大,比如上百个G,整个迁移过程还是比较耗时的,耐心等待吧。

开始菜单--->程序,打开SQL Server Management Studio(即我们的SQL 2005)

连接服务器后,找到我们需要迁移的数据,右键点击属性

在数据库属性里面,点击文件,可查看数据库文件和数据库日志文件的存放路径

确定没有任何其它用户连接到此数据库后,点击该数据库-->任务-->分离

我们可以看到分离以后,刚刚那个数据库,已经不在此列表

进入刚刚我们第3步属性里面看到的数据库文件路径如下图把我们的ZNLCRMmdf数据库文件和ZNLCRM_LogLdf数据库日志文件拷贝到另外一台服务器

在另外台服务器上打开SQL数据库与第1步一样点击数据库--->附加

在附加数据库里面,点击添加,如下图所示

找到刚刚拷贝过来的ZNLCRMmdf文件选中该文件,依次点击确定(注意日志文件会自动一起加载过来)

然后我们就可以看到,一个完整的数据库就直接被迁移过来如下图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12914529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存