更新时间:2023-06-20 GMT+08:00
使用备份与恢复迁移集群数据
- 云ES之间的数据迁移,请参见迁移集群。
- 自建ES到云ES之间的数据迁移和第三方友商ES到云ES之间的数据迁移,可以参考本章操作指导。
前提条件
- 使用备份与恢复时,需确认如下2点:
- 目的端ES版本≥源端ES版本
- 目的端ES的候选主节点数>源端ES的候选主节点数的一半
- 备份与恢复不支持增量数据同步,需停止数据更新后再进行备份。
- CSS服务中已创建好目的端Elasticsearch集群。
操作步骤
- 创建一个支持s3协议的共享存储仓库。
- 在自建或第三方友商Elasticsearch中创建快照备份仓库,用于存放ES快照数据。
例如,在Elasticsearch中创建一个“my_backup”的备份仓库,关联到存储仓库OSS。
PUT _snapshot/my_backup { # 存储仓库类型。 "type": "oss", "settings": { # 步骤1中存储仓库的内网访问域名。 "endpoint": "http://oss-xxx.xxx.com", # 存储仓库的用户ID和密码。 "access_key_id": "xxx", "secret_access_key": "xxx", # 步骤1创建的存储仓库的bucket名称。 "bucket": "patent-esbak", # 是否打开快照文件的压缩功能。 "compress": false, # 配置此参数可以限制快照数据的分块大小。当上传的快照数据超过这个数值,数据就会被分块上传到存储仓库中。 "chunk_size": "1g", # 仓库的起始位置,默认是根目录。 "base_path": "snapshot/" } }
- 为自建或第三方友商Elasticsearch创建快照。
- 查看集群的快照创建进度。
- 执行如下命令可以查看所有快照信息:
GET _snapshot/my_backup/_all
- 执行如下命令可以查看指定快照“snapshot_1”的信息:
GET _snapshot/my_backup/snapshot_1
- 执行如下命令可以查看所有快照信息:
- 将快照数据从存储仓库迁移到对象存储服务OBS中。
对象存储迁移服务(OMS)支持多种云服务商数据迁移到对象存储服务OBS中。
- 在CSS服务的Elasticsearch集群中创建一个存储仓库关联到OBS,用于恢复自建或第三方友商Elasticsearch的快照数据。
例如,在集群中创建一个“my_backup_all”的存储仓库,关联上一步数据迁移目的端的OBS。
PUT _snapshot/my_backup_all/ { "type" : "obs", "settings" : { # OBS的内网访问域名。 "endpoint" : "obs.xxx.xxx.com", "region" : "xxx", # 访问OBS的用户名和密码。 "access_key": "xxx", "secret_key": "xxx", # OBS的桶名称,和上一步迁移目的端的OBS桶名保持一致。 "bucket" : "esbak", "compress" : "false", "chunk_size" : "1g", # 注意“snapshot”后面没有/。 "base_path" : "snapshot", "max_restore_bytes_per_sec": "100mb", "max_snapshot_bytes_per_sec": "100mb" } }
- 在CSS服务的Elasticsearch集群中恢复快照数据。
- 查看所有快照信息。
GET _snapshot
- 恢复快照。
- 恢复某一快照的所有索引。例如恢复名为“snapshot_1”的快照的所有索引数据。
POST _snapshot/my_backup_all/snapshot_1/_restore?wait_for_completion=true
- 恢复某一快照的部分索引。例如名为“snapshot_1”的快照中只恢复非“.”开头的索引。
POST _snapshot/my_backup/snapshot_1/_restore {"indices":"*,-.monitoring*,-.security*,-.kibana*","ignore_unavailable":"true"}
- 恢复某一快照中的指定索引,并重命名。例如在名为“snapshot_1”的快照中,将索引“index_1”恢复为“restored_index_1”,“index_2”恢复为“restored_index_2”。
POST /_snapshot/my_backup/snapshot_1/_restore { # 只恢复索引“index_1”和“index_2”,忽略快照中的其他索引。 "indices": "index_1,index_2" # 查找正在恢复的索引,该索引名称需要与提供的模板匹配。 "rename_pattern": "index_(.+)", # 重命名查找到的索引。 "rename_replacement": "restored_index_$1" }
- 恢复某一快照的所有索引。例如恢复名为“snapshot_1”的快照的所有索引数据。
- 查看所有快照信息。
- 查看快照恢复结果。
- 查看所有快照的恢复结果:
GET /_recovery/
- 查看指定索引的快照恢复结果: GET {index_name}/_recovery
GET {index_name}/_recovery
- 查看所有快照的恢复结果:
父主题: 源端为Elasticsearch