面试题答案
一键面试1. 配置仓库(Repository)
- 注册仓库类型插件:如果使用的是非默认的仓库类型(如 AWS S3、Azure 等),需要先安装并注册对应的插件。例如,对于 AWS S3 仓库,要安装
repository-s3
插件。 - 定义仓库配置:通过 Elasticsearch API 来定义仓库。以本地文件系统仓库为例,使用以下 API 请求:
PUT _snapshot/my_backup_repo
{
"type": "fs",
"settings": {
"location": "/path/to/backup"
}
}
my_backup_repo
是仓库的名称,可以自定义。type
表示仓库类型,fs
为本地文件系统类型。settings.location
是备份文件存储的路径,该路径必须对 Elasticsearch 进程有读写权限。
对于 AWS S3 仓库,配置示例如下:
PUT _snapshot/my_s3_backup_repo
{
"type": "s3",
"settings": {
"bucket": "my-s3-bucket",
"region": "us-west-1",
"access_key": "your-access-key",
"secret_key": "your-secret-key"
}
}
bucket
是 S3 存储桶名称。region
是 S3 存储桶所在区域。access_key
和secret_key
是 AWS 访问密钥。
2. 触发快照创建
- 创建全量快照:使用以下 API 创建一个全量快照:
PUT _snapshot/my_backup_repo/my_snapshot_1
my_backup_repo
是之前定义的仓库名称。my_snapshot_1
是快照的名称,可以自定义。
可以在请求体中添加一些可选参数,如 include_global_state
来决定是否包含全局状态(默认为 true
):
PUT _snapshot/my_backup_repo/my_snapshot_1
{
"include_global_state": false
}
- 创建增量快照:Elasticsearch 会自动检测自上次快照以来发生变化的部分并进行增量备份。只需使用与全量快照相同的 API 来创建新的快照,Elasticsearch 会处理增量逻辑:
PUT _snapshot/my_backup_repo/my_snapshot_2
3. 监控快照状态
- 查看所有快照状态:使用以下 API 查看指定仓库中所有快照的状态:
GET _snapshot/my_backup_repo/_all
- 查看单个快照状态:查看特定快照的详细状态:
GET _snapshot/my_backup_repo/my_snapshot_1
响应中会包含快照的状态(如 IN_PROGRESS
、SUCCESS
、FAILED
)、开始时间、结束时间等信息。
4. 快照清理与管理
- 删除快照:如果不再需要某个快照,可以使用以下 API 删除:
DELETE _snapshot/my_backup_repo/my_snapshot_1
- 清理仓库:如果要删除整个仓库及其所有快照,先删除仓库中的所有快照,然后使用以下 API 删除仓库:
DELETE _snapshot/my_backup_repo