PolarSearch oferece o recurso de snapshot para fazer backup dos dados de índice de um cluster em seu próprio bucket do Object Storage Service (OSS) ou restaurar dados de um bucket do OSS. Esse recurso permite migrar dados entre clusters e executar backups e recuperações personalizadas para clusters PolarSearch. Trata-se de uma solução flexível e de baixo custo para proteção e transferência de dados.
Este recurso está atualmente em visualização. Para utilizá-lo, envie um ticket para solicitar a ativação.
Pré-requisitos
-
A versão do seu PolarSearch deve ser 3.0.0.0.0 ou posterior.
NotaPara verificar a versão do PolarSearch, acesse o PolarSearch pelo endpoint de busca e consulte o campo
version.number. Ative o Alibaba Cloud Object Storage Service (OSS) e crie um bucket para armazenar os snapshots.
É necessário um usuário RAM com a política
AliyunOSSFullAccessanexada. Para mais informações, consulte Adicionar permissões a um usuário RAM.
Faturamento
O recurso de snapshot é gratuito. No entanto, armazenar arquivos de snapshot no bucket do OSS gera taxas de armazenamento e requisição. Para mais detalhes, consulte Visão geral do faturamento do OSS.
Registrar um repositório de snapshots
Antes de utilizar o recurso de snapshot, registre um repositório de snapshots e associe-o ao seu bucket do OSS. Use a seguinte API para criar o repositório:
PUT /_snapshot/{repo-name}
{
"type": "oss",
"settings": {
"endpoint": "{endpoint}",
"bucket": "{bucket-name}",
"base_path": "{path-name}",
"region": "{region}",
"access_key": "{your-AccessKey-ID}",
"secret_key": "{your-AccessKey-Secret}",
"session_token": "{your-STS-Token}",
"compress": true,
"chunk_size": "512mb"
}
}
Descrição dos parâmetros
Parâmetro | Descrição |
| Nome personalizado para o repositório. |
|
Tipo do repositório. Defina como |
| Endpoint do seu bucket do OSS. Para mais informações, consulte Regiões e Endpoints. |
| Nome do seu bucket do OSS. |
| (Opcional) Caminho do diretório raiz no bucket do OSS onde os arquivos de snapshot serão armazenados. |
| Região onde o bucket está localizado. |
|
|
Seu AccessKey ID. |
|
|
Sua AccessKey Secret. |
|
|
(Opcional) O STS Token da sua função RAM. Importante
Ao usar um STS Token, defina os parâmetros |
|
|
(Opcional) Define se os arquivos de metadados do snapshot, como mapeamentos e configurações de índice, devem ser compactados. Este parâmetro não afeta os arquivos de dados. O valor padrão é false. |
|
|
(Opcional) Limite de tamanho para uploads fragmentados durante o processo de snapshot. Dados que excederem esse tamanho serão enviados ao OSS em partes. O valor padrão é 1 GB. |
Exemplo
Substitua os parâmetros no comando abaixo pelas suas informações.
curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"type": "oss",
"settings": {
"endpoint": "{endpoint}",
"bucket": "{bucket-name}",
"base_path": "{path-name}",
"region": "{region}",
"access_key": "{your-AccessKey-ID}",
"secret_key": "{your-AccessKey-Secret}"
}
}'
Criar um snapshot: fazer backup de dados no OSS
Após registrar o repositório de snapshots, crie um snapshot para um índice específico usando a seguinte API:
PUT /_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable":false
}
Descrição dos parâmetros
Categoria do parâmetro | Nome do parâmetro | Descrição |
Parâmetro de requisição |
| Define se o sistema deve aguardar a conclusão da operação de snapshot. O valor padrão é
|
Parâmetros do corpo da requisição |
| Índices a serem incluídos no backup. É possível usar o caractere curinga ( Nota O uso do caractere curinga ( |
| Define se um índice inexistente deve ser ignorado para prosseguir com o snapshot. O valor padrão é | |
| Permite a criação de snapshots parciais. Se definido como |
Exemplo
Substitua os parâmetros no comando abaixo pelas suas informações.
curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"indices": "{index-name}",
"ignore_unavailable": false
}'
Visualizar snapshots
Use a seguinte API para visualizar informações sobre todos os snapshots no seu repositório de snapshots do OSS:
GET /_snapshot/{repo-name}/_all?pretty
Exemplo
Substitua os parâmetros no comando abaixo pelas suas informações.
curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"
Restaurar dados
Execute o comando abaixo para restaurar dados de índice de um snapshot específico:
Para restaurar um snapshot de um cluster PolarSearch para outro cluster PolarSearch, o cluster PolarSearch de destino deve registrar o mesmo repositório de snapshots usado pelo cluster PolarSearch de source. Se a restauração ocorrer dentro do mesmo cluster PolarSearch, não é necessário registrar novamente; execute a restauração de dados diretamente.
POST /_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable": true
}
Parâmetros
Categoria do parâmetro | Nome do parâmetro | Descrição |
Parâmetro de requisição |
| Define se o sistema deve aguardar a conclusão da restauração do snapshot. O valor padrão é
|
Parâmetros do corpo da requisição |
| Especifica os índices a serem restaurados. O caractere curinga |
| Define se um índice inexistente deve ser ignorado para continuar a criação do snapshot. O valor padrão é | |
| Permite a criação de snapshots parciais. Se definido como | |
| Substitui as configurações de índice do snapshot durante a restauração. Por exemplo, altere o número de réplicas para corresponder à configuração do cluster de destino. | |
| Lista de configurações de índice a serem ignoradas durante a restauração. Geralmente usado para ignorar configurações específicas do cluster de source. |
Exemplo
Substitua os parâmetros no comando abaixo pelas suas informações.
curl -X POST "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"indices": "{index-name}",
"ignore_unavailable": true
}'