Nesta página, descrevemos como restaurar o Cassandra em uma única região.
Em uma implantação de região única, a Apigee híbrida é implantada em um único data center ou região. Se você tiver várias organizações da Apigee na implantação, o processo de restauração vai restaurar dados para todas as organizações. Em uma configuração de várias organizações, não é possível restaurar uma organização específica.
Como restaurar uma região de um backup
Na sua configuração, o backup do Cassandra pode residir no Cloud Storage ou em um servidor remoto. Nos dois casos, execute as seguintes etapas para restaurar:
- Verifique a versão híbrida.
Verifique se a versão é a mesma que criou os arquivos de backup no armazenamento.apigeectl version
- Confirme se o cluster do Kubernetes que você está restaurando não tem uma instalação híbrida da Apigee anterior. Se você estiver restaurando para o cluster já existente, use os seguintes comandos para excluir a instalação atual da Apigee híbrida:
apigeectl delete -f overrides.yaml
kubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.
apigeectl delete --all -f overrides.yaml
- Abra o arquivo
overrides.yaml
e defina as propriedadesrestore
para os valores desejados:Cloud Storage
Parâmetros
namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true serviceAccountPath: "SA_JSON_FILE_PATH" dbStorageBucket: "CLOUD_STORAGE_BUCKET_PATH" cloudProvider: "GCP" # required verbatim "GCP" (all caps) schedule: "SCHEDULE"
Exemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" snapshotTimestamp: "20201001183903" ... backup: enabled: true serviceAccountPath: "/Users/myhome/.ssh/my_cassandra_backup.json" dbStorageBucket: "gs://myname-cassandra-backup" cloudProvider: "GCP" schedule: "0 2 * * *" ...
Em que:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para restauração. Use o namespace como no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e precisa ser sempre definido comofalse
.restore:enabled
A restauração é desativada por padrão. É preciso definir essa propriedade como true
.restore:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no sistema de arquivos para a conta de serviço que você criou para o backup.
restore:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do bucket do Cloud Storage em que os dados de backup são armazenados no seguinte formato:
gs://BUCKET_NAME
. Ogs://
é obrigatório.restore:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse
dbStorageBucket
e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo:backup_20210203213003_apigee-cassandra-default-0.tgz
Onde 20210203213003 é o valor
snapshotTimestamp
que você usaria se quisesse restaurar os backups criados nesse momento.backup:enabled
O backup está desativado por padrão. É preciso definir essa propriedade como true
.backup:serviceAccountPath
SA_JSON_FILE_PATH
O caminho no sistema de arquivos para o arquivo JSON da conta de serviço que foi salvo quando você executou
./tools/create-service-account
backup:dbStorageBucket
CLOUD_STORAGE_BUCKET_PATH
O caminho do bucket do Cloud Storage neste formato:
gs://BUCKET_NAME
. Ogs://
é obrigatório.backup:cloudProvider
GCP
A propriedade
cloudProvider: "GCP"
é obrigatória.backup:schedule
SCHEDULE
O horário de início do backup, especificado na sintaxe padrão de crontab. Padrão:
0 2 * * *
Não são do Cloud Storage
Parâmetros
namespace: YOUR_RESTORE_NAMESPACE # Use the namespace as in your original cluster. cassandra: hostNetwork: false ... restore: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) snapshotTimestamp: "TIMESTAMP" ... backup: enabled: true keyFile: "PATH_TO_PRIVATE_KEY_FILE" server: "BACKUP_SERVER_IP" storageDirectory: "/home/apigee/BACKUP_DIRECTORY" cloudProvider: "HYBRID" # required verbatim "HYBRID" (all caps) schedule: "SCHEDULE"
Exemplo
namespace: apigee cassandra: hostNetwork: false ... restore: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" snapshotTimestamp: "20201001183903" ... backup: enabled: true keyFile: "/Users/exampleuser/apigee-hybrid/hybrid-files/service-accounts/private.key" server: "34.56.78.90" storageDirectory: "/home/apigee/cassbackup" cloudProvider: "HYBRID" schedule: "0 2 * * *" ...
Em que:
Propriedade Descrição namespace
YOUR_RESTORE_NAMESPACE
Namespace para restauração. Use o namespace como no cluster original.
cassandra:hostNetwork
hostNetwork
é obrigatório e precisa ser sempre definido comofalse
.restore:enabled
A restauração é desativada por padrão. É preciso definir essa propriedade como true
.restore:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado
ssh_key
na etapa em que você criou o par de chaves SSH).restore:server
BACKUP_SERVER_IP
O endereço IP do servidor de backup.
restore:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de
home/apigee
(o diretório de backup se chamacassandra_backup
na etapa em que você criou o diretório de backup).restore:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.restore:snapshotTimestamp
TIMESTAMP
O carimbo de data/hora do snapshot de backup a ser restaurado. Para verificar quais carimbos de data/hora podem ser usados, acesse
dbStorageBucket
e observe os arquivos presentes no bucket. Cada nome de arquivo contém um valor de carimbo de data/hora. Exemplo:backup_20210203213003_apigee-cassandra-default-0.tgz
Onde 20210203213003 é o valor
snapshotTimestamp
que você usaria se quisesse restaurar os backups criados nesse momento.backup:enabled
O backup está desativado por padrão. É preciso definir essa propriedade como true
.backup:keyFile
PATH_TO_PRIVATE_KEY_FILE
O caminho no sistema de arquivos local para o arquivo de chave privada SSH (chamado
ssh_key
na etapa em que você criou o par de chaves SSH).backup:server
BACKUP_SERVER_IP
O endereço IP do servidor de backup.
backup:storageDirectory
BACKUP_DIRECTORY
O nome do diretório de backup no servidor de backup. Precisa ser um diretório dentro de
home/apigee
(o diretório de backup se chamacassandra_backup
na etapa em que você criou o diretório de backup).backup:cloudProvider
HYBRID
A propriedade
cloudProvider: "HYBRID"
é obrigatória.backup:schedule
SCHEDULE
O horário de início do backup, especificado na sintaxe padrão de crontab. Padrão:
0 2 * * *
- Crie uma nova implantação híbrida de ambiente de execução. Isso criará um novo cluster do Cassandra e começará
a restaurar os dados de backup no cluster:
${APIGEECTL_HOME}/apigeectl init -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
${APIGEECTL_HOME}/apigeectl apply -f overrides/overrides.yaml --restore
${APIGEECTL_HOME}/apigeectl check-ready -f overrides/overrides.yaml
- Verifique o progresso do job de restauração e confirme se
apigeeds
e todos os outros pods estão ativos:- Para verificar:
apigeeds
kubectl get apigeeds -n apigee
- Para verificar todos os outros pods, faça o seguinte:
kubectl get pods -n apigee
- Para verificar:
Após a conclusão bem-sucedida da restauração e da confirmação de que os componentes do ambiente de execução estão íntegros, recomendamos que você configure um backup no cluster:
- Remova a configuração
restore
do arquivooverrides-restore.yaml
. - Adicione a configuração
backup
ao arquivooverrides-restore.yaml
. - Aplique a configuração
backup
com o seguinte comando:./apigeectl apply -f ../overrides-restore.yaml