Restaurar en varias regiones

En esta página se describe cómo recuperar o restaurar Cassandra en varias regiones.

En una implementación multirregional, Apigee hybrid se implementa en varias ubicaciones geográficas en diferentes centros de datos. Si se produce un error en una o varias regiones, pero siguen habiendo regiones correctas, puedes usar una de ellas para recuperar las regiones de Cassandra con errores con los datos más recientes.

En caso de que se produzca un fallo catastrófico en todas las regiones híbridas, se puede restaurar Cassandra. Es importante tener en cuenta que, 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 se puede restaurar solo una organización específica.

En este tema se describen los dos métodos para recuperar regiones fallidas:

Recuperar regiones fallidas

Para recuperar las regiones fallidas de una región correcta, sigue estos pasos:

  1. Redirige el tráfico de la API de las regiones afectadas a la región que funciona correctamente. Planifica la capacidad en consecuencia para admitir el tráfico desviado de las regiones con errores.
  2. Retira la región afectada. Sigue los pasos que se indican en Retirar una región híbrida para cada región afectada. Espera a que se complete la retirada antes de continuar con el siguiente paso.

  3. Restaura la región afectada. Para restaurar, cree una región, tal como se describe en Despliegues para varias regiones en GKE, GKE On‐Prem y AKS.

Restaurar a partir de una copia de seguridad

La copia de seguridad de Cassandra puede residir en Cloud Storage o en un servidor remoto, según tu configuración. Para restaurar Cassandra a partir de una copia de seguridad, sigue estos pasos:

  1. Elimina la implementación de Apigee hybrid de todas las regiones:
    apigeectl delete -f overrides.yaml
  2. Restaura la región que quieras a partir de una copia de seguridad. Para obtener más información, consulta Restaurar una región a partir de una copia de seguridad.

  3. Quita las referencias de las regiones eliminadas y añade las referencias de las regiones restauradas en los metadatos KeySpaces.
  4. Obtén el nombre de la región mediante la opción nodetool status.
    kubectl exec -n apigee -it apigee-cassandra-default-0 -- bash
          nodetool  -u APIGEE_JMX_USER -pw APIGEE_JMX_PASSWORD status |grep -i Datacenter

    donde:

    • APIGEE_JMX_USER es el nombre de usuario de las operaciones JMX de Cassandra. Se usa para autenticar y comunicarse con la interfaz JMX de Cassandra. Consulta cassandra:auth:jmx:username.
    • APIGEE_JMX_PASSWORD es la contraseña del usuario de operaciones JMX de Cassandra. Consulta cassandra:auth:jmx:password.
  5. Actualiza la replicación de KeySpaces.
    1. Crea un contenedor de cliente y conéctalo al clúster de Cassandra a través de la interfaz CQL.
    2. Obtén la lista de espacios de claves de usuario desde la interfaz de CQL:
      cqlsh CASSANDRA_SEED_HOST -u APIGEE_DDL_USER -p APIGEE_DDL_PASSWORD
            --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system

      donde:

      • CASSANDRA_SEED_HOST es el host de inicialización multirregional de Cassandra. En la mayoría de las instalaciones multirregión, usa la dirección IP de un host de tu primera región. Consulta Configurar Apigee Hybrid para varias regiones y cassandra:externalSeedHost.
      • APIGEE_DDL_USER y APIGEE_DDL_PASSWORD son el nombre de usuario y la contraseña de administrador del usuario del lenguaje de definición de datos (DDL) de Cassandra. Los valores predeterminados son "ddl_user" y "iloveapis123".

        Consulta cassandra.auth.ddl.password en la referencia de propiedades de configuración y Opciones de línea de comandos en la documentación de cqlsh de Apache Cassandra.

    3. En cada espacio de claves, ejecuta el siguiente comando desde la interfaz de CQL para actualizar los ajustes de replicación:
      ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'REGION_NAME':3};

      donde:

      • KEYSPACE_NAME es el nombre del espacio de claves que aparece en el resultado del paso anterior.
      • REGION_NAME es el nombre de la región obtenido en el paso 4.