En esta página se describe cómo restaurar Cassandra en una sola región.
En una implementación de una sola región, Apigee hybrid se implementa en un único centro de datos o región. Si tienes varias organizaciones de Apigee en tu implementación, el proceso de restauración restaurará los datos de todas las organizaciones. En una configuración de varias organizaciones, no puedes restaurar una organización específica.
Restaurar una región a partir de una copia de seguridad
En tu configuración, la copia de seguridad de Cassandra puede residir en Cloud Storage o en un servidor remoto. En cualquier caso, sigue estos pasos para restaurar el contenido:
- Verifica la versión híbrida.
Asegúrate de que la versión sea la misma que creó los archivos de copia de seguridad en el almacenamiento.apigeectl version
- Confirma que el clúster de Kubernetes en el que vas a restaurar la copia de seguridad no tenga una instalación anterior de Apigee Hybrid. Si vas a restaurar el clúster, usa los siguientes comandos para eliminar la instalación de Apigee hybrid:
apigeectl delete -f overrides.yamlkubectl -n apigee get apigeedatastore,apigeeredis,apigeetelemetry,org,env,arc # The output should be empty.apigeectl delete --all -f overrides.yaml - Abre el archivo
overrides.yamly asigna los valores que quieras a las propiedadesrestore: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"
Ejemplo
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 * * *" ...
Donde:
Propiedad Descripción namespaceYOUR_RESTORE_NAMESPACE
Espacio de nombres de la restauración. Usa el espacio de nombres como en el clúster original.
cassandra:hostNetworkhostNetworkes obligatorio y siempre debe tener el valorfalse.restore:enabledLa restauración está inhabilitada de forma predeterminada. Debe asignar el valor truea esta propiedad.restore:serviceAccountPathSA_JSON_FILE_PATH
La ruta del sistema de archivos a la cuenta de servicio que has creado para la copia de seguridad.
restore:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
Ruta del segmento de Cloud Storage en el que se almacenan los datos de la copia de seguridad, con el siguiente formato:
gs://BUCKET_NAME. El campogs://es obligatorio.restore:cloudProviderGCPLa propiedad
cloudProvider: "GCP"es obligatoria.restore:snapshotTimestampTIMESTAMP
Marca de tiempo de la copia de seguridad que se va a restaurar. Para comprobar qué marcas de tiempo se pueden usar, ve a
dbStorageBuckety consulta los archivos que hay en el contenedor. Cada nombre de archivo contiene una marca de tiempo. Por ejemplo:backup_20210203213003_apigee-cassandra-default-0.tgzDonde 20210203213003 es el valor de
snapshotTimestampque usarías si quisieras restaurar las copias de seguridad creadas en ese momento.backup:enabledLa copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor truea esta propiedad.backup:serviceAccountPathSA_JSON_FILE_PATH
Ruta del archivo JSON de la cuenta de servicio en tu sistema de archivos que se descargó al ejecutar
./tools/create-service-accountbackup:dbStorageBucketCLOUD_STORAGE_BUCKET_PATH
La ruta del segmento de Cloud Storage con este formato:
gs://BUCKET_NAME. El campogs://es obligatorio.backup:cloudProviderGCPLa propiedad
cloudProvider: "GCP"es obligatoria.backup:scheduleSCHEDULE
Hora en la que se inicia la copia de seguridad, especificada en la sintaxis estándar de crontab. Predeterminado:
0 2 * * *Almacenamiento que no es en la nube
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"Ejemplo
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 * * *" ...Donde:
Propiedad Descripción namespaceYOUR_RESTORE_NAMESPACE
Espacio de nombres de la restauración. Usa el espacio de nombres como en el clúster original.
cassandra:hostNetworkhostNetworkes obligatorio y siempre debe tener el valorfalse.restore:enabledLa restauración está inhabilitada de forma predeterminada. Debe asignar el valor truea esta propiedad.restore:keyFilePATH_TO_PRIVATE_KEY_FILE
La ruta del archivo de clave privada SSH (llamado
ssh_keyen el paso en el que creaste el par de claves SSH) en tu sistema de archivos local.restore:serverBACKUP_SERVER_IP
La dirección IP de tu servidor de copia de seguridad.
restore:storageDirectoryBACKUP_DIRECTORY
Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad. Debe ser un directorio de
home/apigee(el directorio de copia de seguridad se llamacassandra_backupen el paso en el que creaste el directorio de copia de seguridad).restore:cloudProviderHYBRIDLa propiedad
cloudProvider: "HYBRID"es obligatoria.restore:snapshotTimestampTIMESTAMP
Marca de tiempo de la copia de seguridad que se va a restaurar. Para comprobar qué marcas de tiempo se pueden usar, ve a
dbStorageBuckety consulta los archivos que hay en el contenedor. Cada nombre de archivo contiene una marca de tiempo. Por ejemplo:backup_20210203213003_apigee-cassandra-default-0.tgzDonde 20210203213003 es el valor de
snapshotTimestampque usarías si quisieras restaurar las copias de seguridad creadas en ese momento.backup:enabledLa copia de seguridad está inhabilitada de forma predeterminada. Debe asignar el valor truea esta propiedad.backup:keyFilePATH_TO_PRIVATE_KEY_FILE
La ruta del archivo de clave privada SSH en tu sistema de archivos local (llamado
ssh_keyen el paso en el que creaste el par de claves SSH).backup:serverBACKUP_SERVER_IP
La dirección IP de tu servidor de copia de seguridad.
backup:storageDirectoryBACKUP_DIRECTORY
Nombre del directorio de la copia de seguridad en el servidor de copias de seguridad. Debe ser un directorio de
home/apigee(el directorio de copia de seguridad se llamacassandra_backupen el paso en el que creaste el directorio de copia de seguridad).backup:cloudProviderHYBRIDLa propiedad
cloudProvider: "HYBRID"es obligatoria.backup:scheduleSCHEDULE
Hora en la que se inicia la copia de seguridad, especificada en la sintaxis estándar de crontab. Predeterminado:
0 2 * * * - Crea un nuevo despliegue de tiempo de ejecución híbrido. De esta forma, se creará un clúster de Cassandra y se empezarán a restaurar los datos de la copia de seguridad en el clúster:
${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 - Verifica el progreso del trabajo de restauración y confirma que
apigeedsy todos los demás pods están activos:- Para comprobar
apigeeds, haz lo siguiente:kubectl get apigeeds -n apigee
- Para comprobar todos los demás pods, sigue estos pasos:
kubectl get pods -n apigee
- Para comprobar
Una vez que se haya completado la restauración correctamente y se haya confirmado que los componentes del tiempo de ejecución están en buen estado, te recomendamos que configures una copia de seguridad en el clúster:
- Quita la configuración de
restoredel archivooverrides-restore.yaml. - Añada la configuración de
backupal archivooverrides-restore.yaml. - Aplica la configuración
backupcon el siguiente comando:./apigeectl apply -f ../overrides-restore.yaml