Faça backup dos dados de índice para o OSS e restaure sob demanda com snapshots manuais do Elasticsearch. Use-os para migração de dados, recuperação point-in-time, configuração de ambientes de desenvolvimento/teste ou backups pré-operação.
O backup e a restauração exigem o plugin elasticsearch-repository-oss, pré-instalado em todas as instâncias do Alibaba Cloud Elasticsearch. Não é possível desinstalá-lo.
Os snapshots armazenam apenas dados de índice, excluindo índices de monitoramento (.monitoring,.security_audit), metadados, translog, configurações, pacotes, plugins e logs. Execute todos os comandos no Kibana Dev Tools. Faça login no console do Kibana .
Crie um repositório de snapshots
Um repositório de snapshots armazena snapshots em um bucket do OSS. Prepare um bucket do OSS da classe Standard na mesma região da sua instância do Elasticsearch (Crie um bucket). O usuário RAM precisa da política AliyunOSSFullAccess (Conceda permissões a um usuário RAM).
Exemplo: crie um repositório chamado my_backup.
Clusters do Alibaba Cloud
PUT _snapshot/my_backup/
{
"type": "oss",
"settings": {
"endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
"access_key_id": "xxxx",
"secret_access_key": "xxxxxx",
"bucket": "xxxxxx",
"compress": true,
"chunk_size": "500mb",
"base_path": "snapshot/"
}
}
Clusters autogerenciados 8.x
Clusters autogerenciados exigem a instalação manual do plugin elasticsearch-repository-oss. Adicione o prefixo oss.client. a todos os nomes de parâmetros.
PUT /_snapshot/my_backup
{
"type": "oss",
"settings": {
"oss.client.endpoint": "oss-cn-shanghai.aliyuncs.com",
"oss.client.access_key_id": "xxx",
"oss.client.secret_access_key": "xxx",
"oss.client.bucket": "xxxxxx",
"oss.client.base_path":"snapshot/",
"oss.client.compress": true
}
}
Parâmetros
|
Parâmetro |
Descrição |
|
endpoint |
O endpoint interno do bucket do OSS. Regiões e endpoints. |
|
access_key_id |
O AccessKey ID do usuário RAM. Obtenha um par de AccessKey. |
|
secret_access_key |
O AccessKey Secret do usuário RAM. Obtenha um par de AccessKey. |
|
bucket |
O nome de um bucket do OSS existente. |
|
compress |
Compacta os metadados do snapshot (mappings e configurações de índice). Não afeta os arquivos de dados. Padrão: |
|
chunk_size |
Tamanho máximo de chunk para uploads no OSS. Arquivos que excedem esse limite são divididos em múltiplos chunks. |
|
base_path |
O caminho de armazenamento dentro do bucket. O padrão é a raiz. Use subdiretórios para isolar snapshots por cluster ou ambiente, como |
Verifique a conectividade do repositório
POST _snapshot/my_backup/_verify
Uma resposta bem-sucedida lista todos os nós conectados ao repositório. Em caso de falha, verifique o endpoint, o nome do bucket e as permissões do usuário RAM.
Consulte informações do repositório
# Get information about all repositories
GET _snapshot
# Get information about a specific repository
GET _snapshot/my_backup
Crie um snapshot
Snapshot de todos os índices
PUT _snapshot/my_backup/snapshot_1
Esse comando cria um snapshot chamado snapshot_1 para todos os índices abertos. O snapshot é executado de forma assíncrona. Para aguardar a conclusão, adicione wait_for_completion=true:
PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true
Um repositório pode armazenar múltiplos snapshots. O primeiro é um backup completo; os subsequentes são incrementais e armazenam apenas os dados alterados.
Snapshot de índices específicos
PUT _snapshot/my_backup/snapshot_2
{
"indices": "index_1,index_2",
"ignore_unavailable": true,
"include_global_state": false
}
|
Parâmetro |
Descrição |
|
indices |
Lista separada por vírgulas dos índices para backup. Aceita wildcards, como |
|
ignore_unavailable |
Se |
|
include_global_state |
Se |
Informações do snapshot
# View all snapshots
GET _snapshot/my_backup/_all
# View a specific snapshot
GET _snapshot/my_backup/snapshot_1
# View the detailed status of a snapshot, including statistics for each index and shard
GET _snapshot/my_backup/snapshot_1/_status
Exclua um snapshot
DELETE _snapshot/my_backup/snapshot_1
Se um snapshot estiver em andamento, esse comando interrompe o processo e exclui quaisquer dados parciais já criados.
Não exclua arquivos de snapshot diretamente pelo console do OSS ou por outras ferramentas. Essa ação quebra a cadeia de backup incremental e pode corromper todos os snapshots subsequentes, tornando-os irrecuperáveis.
Restaure a partir de um snapshot
Antes de restaurar dados:
Evite restaurar índices do sistema (com prefixo
.), pois isso pode quebrar o acesso ao Kibana.Feche ou exclua qualquer índice existente com o mesmo nome no cluster de destino antes de restaurar. Caso contrário, a restauração falhará.
Para restauração entre regiões, primeiro migre os dados do snapshot no OSS para a região de destino (Implementação da migração) e depois restaure para o cluster de destino.
Crie um repositório no cluster de destino
Crie um repositório no cluster de destino apontando para o local de backup no OSS. Use os mesmos parâmetros descritos em Crie um repositório de snapshots.
PUT _snapshot/my_backup_restore/
{
"type": "oss",
"settings": {
"endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com",
"access_key_id": "xxxx",
"secret_access_key": "xxxxxx",
"bucket": "xxxxxx",
"compress": true,
"chunk_size": "500mb",
"base_path": "snapshot/"
}
}
Restaure um índice específico
Restaure e renomeie um índice para evitar conflitos de nomes:
POST /_snapshot/my_backup_restore/snapshot_1/_restore
{
"indices": "index_1",
"rename_pattern": "index_(.+)",
"rename_replacement": "restored_index_$1"
}
|
Parâmetro |
Descrição |
|
indices |
O índice a ser restaurado do snapshot. Todos os outros índices são ignorados. |
|
rename_pattern |
Padrão regex que corresponde aos nomes dos índices a serem restaurados. |
|
rename_replacement |
Padrão de substituição para índices renomeados. Aceita referências a grupos de captura. |
Restaure índices que não são do sistema
POST _snapshot/my_backup_restore/snapshot_1/_restore
{"indices": "*,-.monitoring*,-.security*,-.kibana*,-.internal.alerts*,-.alerts*","ignore_unavailable": true}
Esse padrão de exclusão abrange os índices do sistema mais comuns. Outras versões podem incluir índices adicionais, como.ds-ilm-history-*e.slo-*. Ajuste conforme o seu cluster. Para a versão 8.x, exclua também os índices de suporte a data streams adicionando-.ds*.
Restaure todos os índices
POST _snapshot/my_backup_restore/snapshot_1/_restore
A API _restore é executada de forma assíncrona. Para aguardar a conclusão, adicione wait_for_completion=true:
POST _snapshot/my_backup_restore/snapshot_1/_restore?wait_for_completion=true
Restaure para o Indexing Service
Ao restaurar para uma instância do Indexing Service, use ignore_index_settings para ignorar configurações incompatíveis:
POST /_snapshot/my_backup_restore/snapshot_1/_restore
{
"indices": "index_1",
"ignore_index_settings": [
"index.apack.cube.following_index"
]
}
Status da restauração de snapshots
Monitore o progresso da restauração com a API _recovery.
# Check the restoration status of a specific index
GET restored_index_1/_recovery
# Check restoration status for all indexes (may include unrelated shards)
GET /_recovery/
Principais campos de saída:
|
Campo |
Descrição |
|
type |
Tipo de recuperação. |
|
source |
Repositório e snapshot de origem. |
|
percent |
Percentual de progresso da restauração. |
Cancele a restauração
Cancele uma restauração excluindo o índice de destino:
DELETE /restored_index_3
Essa ação interrompe a restauração e exclui todos os dados já restaurados para esse índice.