Todos os produtos
Search
Central de documentação

Elasticsearch:Manual backup and restoration

Última atualização: Sep 12, 2026

Faça backup dos dados de índice para o OSS e restaure-os sob demanda com snapshots manuais do Elasticsearch. Utilize esse recurso para migração de dados, recuperação pontual (point-in-time), configuração de ambientes de desenvolvimento/teste ou backups prévios a operações.

O backup e a restauração exigem o plugin elasticsearch-repository-oss, pré-instalado em todas as instâncias do Alibaba Cloud Elasticsearch e que não pode ser desinstalado.

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. Log on to the Kibana console .

Crie um repositório de snapshots

Um repositório de snapshots armazena os snapshots em um bucket do OSS. Prepare um bucket do OSS da classe Standard na mesma região da sua instância do Elasticsearch (Create a bucket). O usuário RAM precisa ter a política AliyunOSSFullAccess (Grant permissions to a RAM user).

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

Endpoint interno do bucket do OSS. Regions and endpoints.

access_key_id

AccessKey ID do usuário RAM. Obtain an AccessKey pair.

secret_access_key

AccessKey Secret do usuário RAM. Obtain an AccessKey pair.

bucket

Nome de um bucket do OSS existente.

compress

Comprime os metadados do snapshot (mapeamentos e configurações de índice). Não afeta arquivos de dados. Padrão: false.

chunk_size

Tamanho máximo do bloco para uploads no OSS. Arquivos que excedem esse limite são divididos em vários blocos.

base_path

Caminho de armazenamento dentro do bucket. O padrão é a raiz. Use subdiretórios para isolar snapshots por cluster ou ambiente, como snapshot/prod/ ou snapshot/dev/.

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.

Obtenha 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. A execução ocorre de forma assíncrona. Para aguardar a conclusão, adicione wait_for_completion=true:

PUT _snapshot/my_backup/snapshot_1?wait_for_completion=true

Caso não utilize esse parâmetro, execute GET _snapshot/my_backup/snapshot_1/_status para verificar o status do snapshot. Um state com valor SUCCESS indica que o snapshot foi concluído.

Aviso

Antes de liberar a instância do Elasticsearch, confirme se o snapshot está completo. Caso contrário, poderá ocorrer perda de dados.

Um repositório pode conter vários 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 curingas, como logs-*.

ignore_unavailable

Se definido como true, ignora índices inexistentes em vez de gerar falha.

include_global_state

Quando configurado como false, exclui o estado global do cluster. Recomendado para backups focados apenas em dados.

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 houver um snapshot em andamento, esse comando interrompe o processo e remove quaisquer dados parciais criados.

Ao excluir um snapshot usando o Kibana Dev Tools ou a API DELETE _snapshot, o plugin limpa automaticamente os arquivos correspondentes no bucket do OSS. Não é necessário excluí-los manualmente pelo console do OSS.

Importante

Sempre exclua snapshots com o comando DELETE _snapshot. Não apague arquivos de snapshot diretamente pelo console do OSS ou 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 de 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 da restauração. Caso contrário, a operação falhará.

  • Para restauração entre regiões, primeiro migre os dados do snapshot no OSS para a região de destino e depois restaure-os no cluster alvo. Se a lista suspensa de instâncias estiver vazia ao criar um snapshot manual no console, o service de backup pode não estar ativado para sua conta ou estar mal configurado. Para migração de dados entre regiões, use o backup manual com replicação entre regiões do OSS:

    1. Na região de source, como Hangzhou, crie um bucket do OSS e configure snapshots manuais do Elasticsearch para fazer backup nesse bucket.

    2. Configure uma regra de replicação entre regiões do OSS para sincronizar os dados com um bucket na região de destino, como Shanghai. Para migração de dados do OSS, consulte Migration implementation.

    3. Crie uma nova instância do Elasticsearch na região de destino.

    4. Na instância do Elasticsearch de destino, registre um repositório de snapshots apontando para o bucket do OSS nessa região e restaure o snapshot.

Crie um repositório no cluster de destino

Crie um repositório no cluster de destino apontando para o local de backup no OSS. Utilize os mesmos parâmetros descritos em Create a snapshot repository.

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

Índice a ser restaurado do snapshot. Todos os outros índices serão ignorados.

rename_pattern

Padrão regex correspondente aos nomes dos índices a serem restaurados.

rename_replacement

Padrão de substituição para índices renomeados. Suporta referências a grupos de captura.

Restaure índices que não sejam de 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 cobre índices de sistema comuns. Outras versões podem incluir adicionais, como .ds-ilm-history-* e .slo-* . Ajuste conforme seu cluster. Para a versão 8.x, exclua também índices de suporte a data streams adicionando -.ds* .

Restaure todos os índices

POST _snapshot/my_backup_restore/snapshot_1/_restore

A API _restore executa 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 do snapshot

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. O valor snapshot indica recuperação a partir de um snapshot.

source

Repositório e snapshot de source.

percent

Porcentagem de progresso da restauração.

Cancele a restauração

Cancele uma restauração excluindo o índice de destino:

DELETE /restored_index_3
Importante

Essa ação interrompe a restauração e exclui todos os dados já restaurados para esse índice.

Perguntas frequentes

Quanto tempo leva para fazer backup de uma grande quantidade de dados no OSS e qual é o custo?

  • Estimativa de tempo: Como referência, o backup de aproximadamente 80 GB de dados leva cerca de 30 minutos. O tempo real depende do volume de dados e da largura de banda da instância. Para acelerar o processo, aumente o parâmetro chunk_size ao criar o repositório de snapshots ou faça upgrade da largura de banda da instância.

  • Estimativa de custo: Armazenar dados de backup no OSS gera taxas de armazenamento e tráfego do OSS. O custo efetivo varia conforme o volume de dados e o tipo de armazenamento escolhido.

O que fazer se um snapshot falhar ou um índice não puder ser excluído?

  • Solucione falhas de snapshot:

    • Se o snapshot falhar com QpsLimitExceeded, o limitador de QPS do OSS foi acionado. Reiniciar o nó não resolve esse problema. Reagende o backup para horários de baixa demanda, como entre 03:00 e 04:00, ou contate o suporte do OSS para aumentar o limite.

    • Caso a falha ocorra devido à pressão de memória do nó ou coleta de lixo (GC), reinicie o nó para liberar memória em cache e tente criar o snapshot novamente.

  • Excluir um índice envolvido em um snapshot: Não é possível excluir diretamente um índice que esteja sendo processado em um snapshot. Antes da exclusão, execute o comando abaixo para visualizar o status:

    GET _snapshot/_status

    Na resposta, verifique a lista indices de cada snapshot cujo state seja STARTED. Os índices listados estão em processo de backup. Aguarde a conclusão do snapshot ou cancele-o antes de excluir o índice. É seguro excluir um índice que não aparece na lista indices de nenhum snapshot com state igual a STARTED.

Referências