云搜索服务 ES 实例支持数据备份和恢复能力,结合对象存储 TOS 的跨区域复制功能,可以在火山引擎云搜索服务中实现跨地域离线迁移数据。本文介绍使用 ES 的备份与恢复能力实现跨地域迁移数据的流程。
在华南地域的源端 ES 实例需要将数据迁移到华北地域的目标端 ES 实例中。
源端 ES 实例通过执行数据备份,将生成的快照文件存储在相同地域的 TOS 存储桶中。
源端 TOS 存储桶通过跨地域复制功能,将快照文件拷贝到目标地域的 TOS 存储桶。
登录对象存储控制台。
在左侧导航栏选择桶列表,然后在桶列表页面筛选并单击源端地域的目标桶名称。
在左侧导航栏选择容错与容灾 > 跨区域复制,然后单击创建规则。
在创建跨区域复制规则对话框,选择目标 TOS 存储桶,配置跨地域复制规则,然后单击确定。
此处仅简单介绍 TOS 跨区域复制规则的参数配置,如需详细了解,请参见跨区域复制。
配置 | 说明 |
---|---|
源存储桶所在地 | 源存储桶所在地域。 |
源存储桶 | 源存储桶名称。 |
目的存储桶所在地 | 选择需要复制文件的目的存储桶所在地域。 |
目的存储桶 | 选择需要复制文件的目的存储桶。 |
目的存储类型 | 选择跨区域复制后的文件存储类型,本文以继承目标桶为例。 |
同步范围 | 选择跨区域复制的源数据范围,本文以整个存储桶为例。
|
同步历史对象 | 选择是否需要同步历史文件到目的存储桶,本文以同步历史数据为例。
|
查看同步进度。
跨区域复制规则创建完成后,自动启用规则。跨区域复制采用异步复制机制,根据您的文件大小,需要的时间为几分钟至几小时不等。当提示同步100%,则表示同步完成。
同步完成后,您也可以前往目标端 TOS 存储桶,查看文件是否已经同步。
目标端 ES 实例通过备份恢复,从 TOS 存储读取数据并恢复目标索引数据。
登录目标端 ES 实例的 Kibana 控制台。
基于目标端 TOS 存储桶创建一个快照存储库。
在 Dev Tools 页面执行以下命令,创建快照存储库。
PUT _snapshot/<repository-name>/ { "type": "s3", "settings": { "bucket" : "tosbucket-name", "path_style_access" : "false", "endpoint" : "tos-s3-cn-beijing.ivolces.com", "protocol" : "https", "client" : "default", "base_path" : "manual-snapshot-o-00****hn7-doc-shnapshot-source", "region" : "cn-beijing", "access_key": "AK****NTQyYjY5YTY", "secret_key": "Tm1Oa*****VE0TVdZeVkyWQ==" } }
配置项 | 描述 |
---|---|
| 自定义设置快照存储库的名称,如 doc_restore_1。 |
type | 指定存储库类型,设置为 |
bucket | 目标端 TOS 存储桶的名称,即可以从该存储桶中读取已存在的快照文件。 |
path_style_access | 是否使用路径样式访问存储库,一般保持默认 false 即可。 |
endpoint | 目标端 TOS 存储桶的访问地址。 |
protocol | 通信协议,默认为 HTTPS。 |
client | 指定与存储库通信所使用的客户端,一般保持默认 default 即可。 |
base_path | 目标端 TOS 桶存放快照文件的路径。 |
region | 目标端 TOS 桶所属地域。 |
access_key | 访问 TOS 存储桶的账号 Access Key。 |
secret_key | 访问 TOS 存储桶的账号 Secret Access Key。 |
恢复目标索引数据。
在 Dev Tools 页面执行以下命令,恢复目标索引数据。
POST /_snapshot/<repository-name>/<snapshot-name>/_restore { "indices": "custom*" }
<repository-name>
:快照存储库,即您创建的存储库名称。<snapshot-name>
:快照名称,即在源端 ES 创建的快照名称;也可以从 TOS 存储路径中获取。indices
:需要恢复的目标索引。多个索引使用英文逗号(,)分隔;使用减号(-)表示删除索引;使用通配符(*)匹配符合该表达式的索引。{ "accepted" : true }
跨地域恢复索引数据后,您可以在目标实例中查看集群健康状态、索引健康状态、索引名称、占用存储大小等信息。
GET /_cluster/health?pretty=true
命令,查看集群健康状态。GET /_cat/indices?v
命令,查看索引详情。customer
的索引,健康状态为green
,其主分片和副本分片占用集群总存储空间 22.7KB。