Restaurar em várias regiões

Esta página descreve como restaurar o Cassandra em várias regiões.

Numa implementação multirregional, o Apigee hybrid é implementado em várias localizações geográficas em diferentes centros de dados. É importante ter em atenção que, se tiver várias organizações do Apigee na sua implementação, o processo de restauro restaura os dados de todas as organizações. Numa configuração com várias organizações, não é suportada a restauração apenas de uma organização específica.

A restaurar o Cassandra

Numa implementação multirregional, existem duas formas possíveis de recuperar uma região com falhas. Este tópico descreve as seguintes abordagens:

  • Recupere regiões com falhas: descreve os passos para recuperar regiões com falhas com base numa região em bom estado.
  • Restaurar regiões com falhas: descreve os passos para restaurar regiões com falhas a partir de uma cópia de segurança. Esta abordagem só é necessária se todas as regiões híbridas forem afetadas.

Recupere regiões com falhas

Para recuperar regiões com falhas a partir de uma região em bom estado, siga estes passos:

  1. Redirecione o tráfego da API das regiões afetadas para a região com bom funcionamento. Planeie a capacidade em conformidade para suportar o tráfego desviado das regiões com falhas.
  2. Desativar a região afetada. Para cada região afetada, siga os passos descritos no artigo Desative uma região híbrida. Aguarde a conclusão da desativação antes de avançar para o passo seguinte.
  3. Restaurar a região afetada. Para restaurar, crie uma nova região, conforme descrito no artigo Implementação multirregional no GKE, GKE on-prem e AKS.

Restaurar a partir de uma cópia de segurança

A cópia de segurança do Cassandra pode residir no Cloud Storage ou num servidor remoto com base na sua configuração. Para restaurar o Cassandra a partir de uma cópia de segurança, siga estes passos:

  1. Elimine a implementação híbrida do Apigee de todas as regiões:
    apigeectl delete -f overrides.yaml
  2. Restaure a região pretendida a partir de uma cópia de segurança. Para mais informações, consulte o artigo Restaurar uma região a partir de uma cópia de segurança.

  3. Remova as referências das regiões eliminadas e adicione as referências das regiões restauradas nos metadados KeySpaces.
  4. Obtenha o nome da região através da opção 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

    where:

    • APIGEE_JMX_USER é o nome de utilizador do utilizador de operações JMX do Cassandra. Usado para autenticar e comunicar com a interface JMX do Cassandra. Consulte cassandra:auth:jmx:username.
    • APIGEE_JMX_PASSWORD é a palavra-passe do utilizador das operações JMX do Cassandra. Consulte cassandra:auth:jmx:password.
  5. Atualize a replicação do KeySpaces.
    1. Crie um contentor de cliente e estabeleça ligação ao cluster do Cassandra através da interface CQL.
    2. Obtenha a lista de espaços de chaves de utilizadores a partir da interface 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

      where:

      • CASSANDRA_SEED_HOST é o anfitrião de sementes multirregião do Cassandra. Para a maioria das instalações em várias regiões, use o endereço IP de um anfitrião na sua primeira região. Consulte os artigos Configurar o Apigee hybrid para várias regiões e cassandra:externalSeedHost.
      • APIGEE_DDL_USER e APIGEE_DDL_PASSWORD são o nome de utilizador e a palavra-passe do administrador para o utilizador da linguagem de definição de dados (LDD) do Cassandra.

        Consulte cassandra.auth.ddl.password na referência de propriedades de configuração e Opções da linha de comandos na documentação do cqlsh do Apache Cassandra.

    3. Para cada espaço de chaves, execute o seguinte comando a partir da interface CQL para atualizar as definições de replicação:
      ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'REGION_NAME':3};

      where:

      • KEYSPACE_NAME é o nome do espaço de chaves indicado no resultado do passo anterior.
      • REGION_NAME é o nome da região obtido no passo 4.