Replicação com Stand-by Morno

Mantenha um sistema de banco de dados stand-by atualizado continuamente em regiões separadas usando a Replicação PostgreSQL com Stand-by Quente.

A replicação com Warm Standby é uma ferramenta de recuperação de desastres que permite manter um sistema de banco de dados stand-by atualizado continuamente em regiões separadas. Ao implementar esse método, você pode reduzir o tempo de recuperação, proteger seus dados e garantir a continuidade dos negócios quando ocorrerem interrupções inesperadas. A replicação com Warm Standby suporta recuperação de desastres com RPO (Recovery Point Objective) SLO na mesma região e entre regiões, o que permite a proteção de dados contra eventos inesperados. Um stand-by quente na mesma região pode permitir maior dimensionamento horizontal, pois um único sistema de banco de dados suporta apenas 8 nós.

A replicação com Warm Standby aprimora os seguintes recursos

  • Recuperação de desastres e continuidade dos negócios: Ao replicar regularmente dados da região principal para regiões secundárias, você poderá recriar rapidamente aplicativos em outra região se ocorrer um desastre em toda a região.
  • Migração e expansão: Você pode migrar e expandir facilmente seus aplicativos para outras regiões.
  • Simplificação da Conformidade: As organizações sujeitas a requisitos regulatórios para alta disponibilidade ou distribuição geográfica, como entidades financeiras ou governamentais, podem atender aos padrões de conformidade com mais facilidade.

Atribuições do Sistema de Banco de Dados

Se a replicação com stand-by quente não estiver configurada, todos os sistemas de banco de dados existentes serão tratados como standalone, sem replicação. Cada sistema de banco de dados independente opera de forma independente e fornece acesso de leitura e gravação (Leitura/Gravação).

Quando você configura um banco de dados stand-by quente, esse banco de dados atua na atribuição stand-by quente. O banco de dados standalone associado atua na atribuição sistema de banco de dados principal. Veja a seguir mais informações sobre essas funções.

  • Atribuição Sistema de banco de dados principal:
    • Um sistema de banco de dados principal permite atualizações de dados por meio de seu ponto final principal e a replicação com configuração stand-by quente teria um sistema de banco de dados nessa atribuição.
    • Suporta operações de leitura e gravação (acesso de Leitura/Gravação).
    • Transmite continuamente logs de gravação à frente (WAL) para o sistema de banco de dados stand-by para replicação.
  • Atribuição Sistema de banco de dados stand-by quente:
    • O sistema de banco de dados stand-by quente é configurado na replicação entre regiões (CRR) como o sistema de réplica/DR.
    • É executado no modo somente leitura para garantir a consistência dos dados (acesso somente leitura).
    • Recebe continuamente atualizações de WAL do primário.
    • Pode ser promovido ao sistema principal durante um desastre, mas se limita a consultas de leitura (como relatórios, análises ou operações em escala de leitura).

Para obter informações sobre a configuração de extensões, consulte Configurações e Extensões.

Pré-requisitos

Observe e siga essas restrições e melhores práticas para configurar e configurar os sistemas de banco de dados stand-by principal e quente.

Requisitos de Forma

Você tem permissão para selecionar quaisquer formas heterogêneas ou operações de entrada/saída por segundo (IOPS) entre os bancos de dados stand-by principal e quente. No entanto, recomendamos configurá-los com a mesma forma e desempenho para garantir um failover contínuo para o sistema de banco de dados stand-by com um perfil de desempenho comparável no caso de um desastre.

IAM

Para usar os serviços do Oracle Cloud Infrastructure, você deve ter o acesso de segurança apropriado por meio de políticas do IAM. Se você receber erros de "permissão negada" ou "não autorizada", certifique-se de ter a associação de grupo e o acesso ao compartimento necessários.

Para obter acesso para usar a Replicação com o Warm Standby, crie a seguinte política:

Allow group <group_name> to manage { POSTGRES_DB_SYSTEM_REPLICATE } in [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ]

Se você já tiver uma política que conceda gerenciamento de postgres-db-systems no nível do banco de dados, essa política não será necessária porque POSTGRES_DB_SYSTEM_REPLICATE já está incluído nas permissões postgres-db-systems mais amplas.

Aqui está um exemplo da política mais ampla:

Allow group <group_name> to manage postgres-db-systems in [ tenancy | compartment <compartment_name> | compartment id <compartment_ocid> ]

Credenciais de Administrador

Observação

Os usuários e as atribuições são replicados do banco de dados principal para o banco de dados stand-by quente. O banco de dados stand-by quente não pode ter usuários ou atribuições dedicadas.

O nome do usuário administrador do banco de dados stand-by quente é o mesmo que o nome do usuário administrador definido durante a criação do sistema de banco de dados principal.

Failover

O failover automático não é suportado. Execute o failover manualmente promovendo o sistema de banco de dados stand-by quente.

RPO (Recovery Point Objective)

Use o RPO (Recovery Point Objective) para ajudar a limitar a perda potencial de dados ao usar a replicação com o stand-by quente. Ative ou desative a aplicação de RPO dependendo dos requisitos do cliente, como necessidades de disponibilidade e proteção de dados.

RPO é a quantidade de dados, medidos em tempo, que podem ser perdidos em caso de desastre. O RPO é calculado como a diferença de tempo do relógio de parede entre o timestamp da gravação mais recente no banco de dados e o registro WAL mais antigo que ainda não foi replicado.

A seguir, mais informações sobre o RPO.

  • Os logs de gravação antecipada (WAL) na região principal são replicados de forma assíncrona para o stand-by quente em regiões secundárias.

  • O RPO rastreia o atraso de replicação, que representa a distância do stand-by em relação ao principal.

  • Valores suportados e padrão para o limite de imposição:
    • Intervalo suportado: 300 segundos (5 minutos) a 10.800 segundos (3 horas).
    • Valor padrão: 300 segundos (5 minutos).
  • Quando a imposição de RPO está ativada:
    • O OCI Database with PostgreSQL avalia continuamente o RPO ao confirmar uma transação.
    • Quando o atraso de replicação excede o valor de RPO configurado:

      • O sistema de banco de dados principal alterna automaticamente para o modo somente leitura.

      • Essa chave evita mais alterações de dados e perda excessiva de dados.

      • O stand-by quente é permitido recuperar o atraso, após o qual as operações normais são retomadas.

  • Quando a imposição do RPO é desativada:

    • O sistema de banco de dados continua as operações normais mesmo que o atraso de replicação exceda o RPO configurado.

    • O banco de dados principal não alterna para o modo somente leitura.

Versões de Banco de Dados Suportadas para Stand-by Quente

O recurso de stand-by dinâmico requer os sistemas de banco de dados stand-by principal e stand-by ativo com versão de banco de dados 14 ou superior.

Configurações e Extensões

Observação

As extensões instaladas no sistema de banco de dados principal devem ser sempre as mesmas ou um subconjunto das aplicadas no sistema de banco de dados stand-by quente.

Você pode criar configurações para o sistema de banco de dados stand-by quente em regiões de réplica. Essas configurações não são replicadas automaticamente dos sistemas de banco de dados stand-by principal para os sistemas de banco de dados stand-by quentes como parte da configuração Replicação com Stand-by Quente.

Configurando a Replicação com o Warm Standby

A replicação com Warm Standby fornece resiliência mantendo um banco de dados stand-by quente em regiões secundárias da OCI. Esse stand-by é atualizado continuamente do principal na região de origem e pode ser promovido manualmente no caso de uma falha.

Esta seção descreve as tarefas necessárias para configurar este ambiente.

Criando o Sistema de Banco de Dados Principal

  1. Na Console do OCI, selecione a região de origem na qual você deseja que o sistema de banco de dados principal resida.
  2. Crie um sistema de banco de dados conforme descrito em Criando um Sistema de Banco de Dados.
    Selecione Criar Novo Sistema de Banco de Dados como o tipo de criação e continue com as etapas de criação.
  3. Aguarde até que o status Source Region Database System mostre Active.
Nesse estágio, o banco de dados é standalone.

Criando o Sistema de Banco de Dados Standby Warm

  1. Na Console do OCI, selecione a região secundária na qual você deseja que o sistema de banco de dados stand-by morno resida.
  2. Crie um sistema de banco de dados conforme descrito em Criando um Sistema de Banco de Dados.
  3. Selecione Criar Sistema de Banco de Dados de Réplica como o tipo de criação.
    O painel Escolher sistema de banco de dados principal é aberto.
  4. Selecione a região de origem em Região.
    Todas as regiões inscritas pela tenancy são listadas.
  5. Selecione o sistema de banco de dados principal criado em Sistema de banco de dados no <compartment>.
    Verifique seu compartimento se você não vir o banco de dados principal.
  6. (Opcional) Ative Impor RPO (Recovery Point Objective) se suas necessidades de negócios o exigirem.
    Este recurso não está ativado por padrão.
  7. Conclua a criação do sistema de banco de dados stand-by quente.
  8. Selecione Enviar.
Depois que você submete o sistema de banco de dados stand-by para criação, ele aparece na página de lista de sistemas de banco de dados como sendo o estado Criando.

Verificando a Atribuição de Função

A seguir estão as instruções da Console.
  1. Na página de lista Sistemas de banco de dados, monitore o status do sistema de banco de dados stand-by quente que você criou. Se precisar de ajuda para localizar a página de lista ou o sistema de banco de dados, consulte Listando o OCI Database with PostgreSQL.
  2. Quando o status for Ativo, selecione-o.
  3. Na página de detalhes, localize a atribuição do sistema de banco de dados e confirme se seu valor agora é Principal.
  4. Selecione Réplica de Sistemas de BD.
  5. Na página de lista Sistemas de Banco de Dados Réplica, selecione o sistema de banco de dados stand-by aquecido que você criou.
  6. Na página de detalhes, confirme se a atribuição do sistema de banco de dados está definida como Stand-by Quente.

Listando Sistemas de Banco de Dados de Réplica

Na Console do Oracle Cloud, os sistemas de banco de dados de réplica associados são exibidos na página de detalhes do Sistema de Banco de Dados Principal, na qual os usuários podem exibir a lista de réplicas vinculadas ao sistema de banco de dados principal, juntamente com suas regiões e identificadores correspondentes. Consulte Obtendo um OCI Database with PostgreSQL. Para usar a API, consulte ListDbSystemReplicas na Referência da API. Para usar a CLI, consulte OCI psql db-system-replica-collection list-db-system-replicas na Referência de Comando da CLI do OCI.

Convertendo um Sistema de Banco de Dados Stand-by Quente em Stand-alone

  1. Abra a página de detalhes do sistema de banco de dados stand-by quente, conforme descrito em Verificando a Designação da Atribuição.
  2. Selecione Converter função em independente no menu Ações.
    O painel Converter função em independente é aberto.
  3. Selecione uma opção de conversão:
    • Repetição Pendente: O sistema aplica todos os logs de write-ahead replicados (WAL) ao banco de dados stand-by quente.
    • Imediato: A alteração de atribuição é executada instantaneamente, sem aplicar logs de gravação antecipada (WAL) pendentes.
  4. Selecione Enviar.
Acesse a página de detalhes do sistema de banco de dados para ver o status da conversão. Inicialmente, o sistema de banco de dados em conversão exibe o estado como Atualizando. Quando a conversão for concluída com sucesso, o estado exibirá Ativo. A atribuição do sistema de banco de dados mostra Independente.

O sistema de banco de dados principal que foi associado a ele é alterado automaticamente para o status stand-alone, pois não faz mais parte de uma Replicação com configuração de Stand-by Quente.

Convertendo um Sistema de Banco de Dados Stand-alone em Stand-by Quente

Você pode converter um sistema de banco de dados PostgreSQL existente para aquecer o stand-by e associá-lo a um sistema de banco de dados principal em outra região. Os dados no sistema de banco de dados existente são substituídos por uma cópia do sistema de banco de dados principal,
  1. Na Console do OCI, selecione a região de origem na qual reside o sistema de banco de dados principal que você deseja converter.
  2. Abra a página de detalhes do sistema de banco de dados PostgreSQL existente que você deseja converter conforme descrito em Obtendo Detalhes de um Sistema de Banco de Dados.
  3. Selecione Converter atribuição em réplica no menu Ações.
    O painel Converter atribuição em réplica é aberto.
  4. Selecione Criar Sistema de Banco de Dados de Réplica como o tipo de criação.
    O painel Escolher sistema de banco de dados principal é aberto.
  5. Selecione a região de origem em Região.
    Todas as regiões inscritas pela tenancy são listadas.
  6. Selecione o sistema de banco de dados principal desejado em Sistema de banco de dados no <compartment>.
    Verifique seu compartimento se você não vir o sistema de banco de dados PostgreSQL que deseja especificar como o banco de dados principal.
  7. Selecione Enviar.
Depois que você submete a conversão, o sistema de banco de dados aparece na página da lista de sistemas de banco de dados como estando no estado Atualizando. Após a conclusão da conversão, ela retorna ao estado Ativo em sua nova atribuição como um sistema de banco de dados stand-by quente.

Abra a página de detalhes do sistema de banco de dados stand-by quente convertido e confirme se o valor da atribuição do sistema de banco de dados é stand-by quente.

Abra a página de detalhes do sistema de banco de dados especificado como principal e confirme se o valor da atribuição do sistema de banco de dados é Principal. Selecione Sistemas de Banco de Dados Réplica para abrir o painel Sistema de Banco de Dados Réplica e garantir que o banco de dados stand-by quente associado convertido seja listado.

Alternando Atribuições entre Sistemas de Banco de Dados Standby Principal e Quente

Um switchover permite alternar com segurança as atribuições entre um sistema de banco de dados principal e seu sistema de banco de dados stand-by quente sem perda de dados. Após o switchover, o sistema de banco de dados stand-by quente se torna o novo sistema de banco de dados principal.
  1. Abra a página de detalhes do seu sistema de banco de dados principal, conforme descrito em Obtendo Detalhes do Sistema de Banco de Dados.
  2. Selecione Switchover no menu Ações.
    O painel Switchover é aberto.
  3. Selecione o sistema de banco de dados stand-by quente que você deseja promover para principal.
  4. Selecione Enviar.
Depois que você submete o switchover, o sistema de banco de dados principal aparece na página da lista de sistemas de banco de dados como sendo o estado Atualizando. Depois que o switchover é concluído, ele retorna ao estado Ativo em sua nova atribuição como um sistema de banco de dados stand-by quente. Da mesma forma, o sistema de banco de dados stand-by quente é convertido em principal.

Recuperação de Desastres

Esta seção descreve as ações a serem executadas quando ocorre uma interrupção na região principal e como restaurar operações normais após a recuperação da região.

Neste cenário de recuperação de desastres, o sistema de banco de dados principal está em uma região de origem, como PHX. O sistema de banco de dados principal tem acesso de Leitura/Gravação. O sistema de banco de dados stand-by quente é uma região de réplica, como LHR. O sistema de banco de dados stand-by quente tem acesso somente para Leitura e é sempre sincronizado com o sistema de banco de dados principal usando a replicação entre regiões.

Converter o Primário Original em Stand-by Quente

Depois que a região de origem é restaurada, o banco de dados principal original (PHX) permanece um sistema de banco de dados stand-alone.

Atualize a atribuição do sistema de banco de dados principal (PHX) original para um sistema de banco de dados stand-by quente, conforme descrito em Convertendo um Sistema de Banco de Dados Stand-alone em Stand-by Quente. Especifique o servidor de banco de dados stand-by aquecido original (LHR, agora convertido para stand-alone) como o sistema de banco de dados principal.

Agora, o sistema de banco de dados principal é LHR com acesso de Leitura/Gravação e o servidor de banco de dados stand-by quente é PHX com acesso somente leitura.

Restabelecer a Configuração do Banco de Dados Original

Use a função de switchover para retornar o sistema de banco de dados principal (LHR) atual de volta ao principal original (PHX), conforme descrito em Alternando Atribuições entre Sistemas de Banco de Dados Stand-by Principal e Quente. Depois que o switchover ocorre, o principal atualizado é PHX e o stand-by quente atualizado é LHR. Você pode retomar as operações normais do banco de dados com o principal na região de origem e o stand-by quente na região de réplica.

Aplicando RPO

Você pode ativar o RPO para um sistema de banco de dados principal e especificar o valor de RPO desejado das seguintes maneiras:

  • Ao configurar a Replicação com o Warm Standby

    A aplicação de RPO na configuração garante que a aplicação de RPO seja aplicada desde o início e que qualquer perda de dados potencial permaneça dentro do limite configurado. Se o RPO configurado for excedido, o sistema de banco de dados principal poderá fazer a transição temporariamente para o modo somente leitura até que o stand-by seja atingido.

    Para ativar o RPO na configuração, use o painel Escolher sistema de banco de dados principal. Para obter mais informações, consulte Criando o Sistema de Banco de Dados Stand-by Quente.

  • Após configurar a Replicação com o Warm Standby

    Para ativar (ou desativar) o RPO após a configuração:

    1. Abra a página de detalhes do banco de dados principal (conforme descrito em Obtendo Detalhes de um Sistema de Banco de Dados).
    2. Selecione Editar política de gerenciamento no menu Ações.
    3. No painel Editar política de gerenciamento, ative ou desative a imposição de RPO e configure o valor de RPO dentro do intervalo suportado.
    4. Salve as alterações.

    Suas alterações são aplicadas imediatamente.

Métricas

Use métricas para monitorar a replicação e o status do RPO para seus sistemas de banco de dados stand-by principal e morno.

Na página de detalhes do sistema de banco de dados, selecione Métricas para exibir a página Métricas. A seguir estão incluídas métricas.

Métricas do Banco de Dados Principal

  • RPO Atual (segundos): RPO atual do sistema de banco de dados principal. Exibe o atraso da replicação atual em segundos, indicando até que ponto o stand-by está atrás do principal.
  • Modo de transação atual: modo de transação atual do sistema de banco de dados principal.
    • 1: Leitura/Gravação
    • 0: Somente para leitura

      Um valor 0 indica que o sistema de banco de dados foi transformado em modo somente leitura devido à imposição do RPO.

  • Integridade do canal de replicação: Mostra se o canal de replicação entre o sistema de banco de dados principal e stand-by/réplica está íntegro.
    • 1: O status do par de replicação é ACTIVE
    • 0: O canal está inativo, indisponível ou o sistema de banco de dados foi interrompido

Métricas do Banco de Dados Stand-by Morno

  • Última época de repetição da transação: Exibe a hora em que o registro de logs de gravação antecipada da última transação repetida foi gerado no principal.
  • Último lag de repetição da transação: Exibe o intervalo de tempo em milissegundos entre a época em que a última transação foi repetida em um sistema de banco de dados stand-by aquecido e a época em que a mesma transação foi confirmada no sistema de banco de dados principal.
  • Integridade do canal de replicação: Mostra se o canal de replicação entre o sistema de banco de dados principal e stand-by/réplica está íntegro.
    • 1: O status do par de replicação é ACTIVE
    • 0: O canal está inativo, indisponível ou o sistema de banco de dados foi interrompido

Suporte da CLI

Você pode usar comandos da CLI para executar a Replicação com tarefas Warm Standby.

Criar o Sistema de Banco de Dados Principal

Alterne para a região em que você deseja que o sistema de banco de dados principal resida e crie o banco de dados usando a CLI, conforme descrito em Criando um Sistema de Banco de Dados.

Criar Sistema de Banco de Dados Stand-by Warm

Alterne para a região em que deseja que o sistema de banco de dados stand-by morno resida. Use o comando a seguir para criar o stand-by quente.

Atualize os detalhes do sistema de banco de dados de origem, como sourceType e primaryDbSystemId, com os valores apropriados. Por exemplo:

oci raw-request --http-method POST --auth security_token --config-file ~/.oci/config --profile DEFAULT --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems' \
  --request-body '{
  "displayName": "Warm Standby Database",
  "description": "Test db",
  "compartmentId": "ocid.compartment.oc1..exampleuniqueID",
  "dbVersion": "14",
  "storageDetails": {
    "systemType": "OCI_OPTIMIZED_STORAGE",
    "isRegionallyDurable": false,
    "availabilityDomain": "gXfg:UK-LONDON-1-AD-2"
  },
  "shape": "PostgreSQL.VM.Standard.E5.Flex",
  "instanceOcpuCount": 2,
  "instanceCount": 1,
  "instanceMemorySizeInGBs": 32,
  "networkDetails": {
    "subnetId": "ocid1.subnet..exampleuniqueID"
  },
  "source": {
    "sourceType": "DB_SYSTEM",
    "primaryDbSystemId": "ocid1.postgresqldbsystem..exampleuniqueID"
  }
}'

Listar Sistemas de Banco de Dados de Réplica

Use o comando a seguir para listar sistemas de banco de dados stand-by quentes associados ao sistema de banco de dados principal.

oci raw-request --http-method GET --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems/<dbSystemId>/replicas' --region us-phoenix-1 --profile DEFAULT --config-file ~/.oci/config --auth security_token

em que <dbSystemId> corresponde ao OCID do sistema de banco de dados principal.

Convertendo um Sistema de Banco de Dados Stand-by Quente em Stand-alone

Use o comando a seguir para converter um sistema de banco de dados stand-by quente em stand-alone.

oci raw-request --http-method POST --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems/<warm_standby>/actions/changeRoleToStandalone' --region us-phoenix-1 --request-body '{"changeMode":"[immediately | "Replay Pending Updates"]"}'  --profile DEFAULT --config-file ~/.oci/config --auth security_token

em que <warm_standby> é o sistema de banco de dados stand-by quente.

Convertendo um Sistema de Banco de Dados Stand-alone em Stand-by Quente

Use o comando a seguir para converter um sistema de banco de dados stand-alone em stand-by.

oci raw-request --http-method POST --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems/<warm_standby>/actions/changeRoleToReplica' --region us-phoenix-1 --request-body '{"primaryDbSystemId":"<primary>"}'  --profile DEFAULT --config-file ~/.oci/config --auth security_token

em que <warm_standby> é o sistema de banco de dados stand-by quente e <primary> é o sistema de banco de dados principal.

Atualizando RPO

Use o comando a seguir para atualizar a configuração de replicação (definições RPO) para um sistema de banco de dados.

oci raw-request --http-method PUT --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems/<dbSystemId>' --region us-phoenix-1 --request-body '{"replicationConfig": {"isRpoEnforced": true, "rpoInSeconds": 300}}' --profile DEFAULT --config-file ~/.oci/config --auth security_token

em que <dbSystemId> corresponde ao OCID do sistema de banco de dados.

  • isRpoEnforced: Especifica se a imposição do RPO está ativada ou desativada.

  • rpoInSeconds: Especifica o valor do RPO (em segundos) a ser aplicado quando ativado. O valor deve estar entre 300 e 10.800 segundos.

Fazer Switchover

Use o comando a seguir para executar um switchover entre um sistema de banco de dados stand-alone e um stand-by aquecido.

oci raw-request --http-method POST --target-uri 'https://postgresql.us-phoenix-1.oci.oraclecloud.com/20220915/dbSystems/<primary>/actions/switchover' --region us-phoenix-1 --request-body
'{"replicaDbSystemId":"<warm-standby>"}' --profile DEFAULT --config-file ~/.oci/config --auth security_token

em que <primary> é o sistema de banco de dados principal e <warm_standby> é o sistema de banco de dados stand-by ativo.

Restrições

Restaurar Sistemas de Banco de Dados

O sistema Restaurar Banco de Dados não é suportado para Replicação com sistemas de banco de dados Warm Standby (principal e stand-by aquecido).

A replicação com Warm Standby suporta até três regiões de DR (recuperação de desastres).