Configurar o Aurora PostgreSQL para encaminhamento de gravação local
Com as seções a seguir, é possível habilitar o encaminhamento de gravação local para o cluster de banco de dados do Amazon Aurora PostgreSQL, configurando níveis de consistência e gerenciando transações com encaminhamento de gravação.
Habilitar o encaminhamento de gravação local
Por padrão, o encaminhamento de gravação local não está habilitado para clusters de banco de dados do Aurora PostgreSQL. Você habilita o encaminhamento de gravação local no cluster, não na instância.
Usando o AWS Management Console, marque a caixa de seleção Ativar o encaminhamento de gravação local abaixo de Encaminhamento de gravação de réplica de leitura quando você criar ou modificar um cluster de banco de dados.
Para habilitar o encaminhamento de gravação local com a AWS CLI, use a opção --enable-local-write-forwarding
. Essa opção funciona quando você cria um cluster de banco de dados usando o comando create-db-cluster
. Ela também funciona quando você modifica um cluster de banco de dados usando o comando modify-db-cluster
. É possível desabilitar o encaminhamento de gravação local usando a opção --no-enable-local-write-forwarding
com esses mesmos comandos da CLI.
O exemplo a seguir cria um cluster de banco de dados do Aurora PostgreSQL com encaminhamento de gravação local habilitado.
aws rds create-db-cluster \ --db-cluster-identifier write-forwarding-test-cluster \
--enable-local-write-forwarding
\ --engine aurora-postgresql \ --engine-version16.4
\ --master-username myuser \ --master-user-password mypassword \ --backup-retention 1
Depois, você cria instâncias de banco de dados do gravador e do leitor para poder usar o encaminhamento de gravação. Para ter mais informações, consulte Criar um cluster de bancos de dados do Amazon Aurora.
Para habilitar o encaminhamento de gravação local usando a API do Amazon RDS, defina o parâmetro EnableLocalWriteForwarding
como true
. Esse parâmetro funciona quando você cria um cluster de banco de dados usando a operação CreateDBCluster
. Ele também funciona quando você modifica um cluster de banco de dados usando a operação ModifyDBCluster
. É possível desabilitar o encaminhamento de gravação local definindo o parâmetro EnableLocalWriteForwarding
como false
.
Habilitar o encaminhamento de gravação local para sessões de banco de dados
apg_write_forward.consistency_mode
é um parâmetro de banco de dados e de cluster de banco de dados que permite o encaminhamento de gravação. É possível especificar SESSION
, EVENTUAL
, GLOBAL
ou OFF
para o nível de consistência de leitura. Para saber mais sobre os níveis de consistência, consulte Isolamento e consistência para o encaminhamento de gravação local no Aurora PostgreSQL.
As seguintes regras se aplicam a esse parâmetro:
-
O valor padrão é
SESSION
. -
O encaminhamento de gravação local estará disponível apenas se você definir
apg_write_forward.consistency_mode
comoEVENTUAL
,SESSION
ouGLOBAL
. Esse parâmetro é relevante somente em instâncias do leitor de clusters de banco de dados que têm o encaminhamento de gravação local habilitado. -
Definir o valor como
OFF
desabilita o encaminhamento de gravação local na sessão.
Isolamento e consistência para o encaminhamento de gravação local no Aurora PostgreSQL
É possível controlar o grau de consistência de leitura em uma réplica de leitura. Você pode ajustar o nível de consistência de leitura para garantir que todas as operações de gravação encaminhadas da sessão estejam visíveis na réplica de leitura antes de qualquer consulta subsequente. Também é possível usar essa configuração para garantir que as consultas na réplica de leitura sempre vejam as atualizações mais recentes da instância de banco de dados do gravador. Isso acontece mesmo para aquelas submetidas por outras sessões ou outros clusters. Para especificar esse tipo de comportamento para a aplicação, escolha o valor apropriado para o parâmetro apg_write_forward.consistency_mode
de nível de sessão. O parâmetro apg_write_forward.consistency_mode
tem efeito somente em réplicas de leitura que tenham o encaminhamento de gravação local habilitado.
nota
Para o parâmetro apg_write_forward.consistency_mode
, é possível especificar o valor SESSION
, EVENTUAL
, GLOBAL
ou OFF
. Por padrão, o valor é definido como SESSION
. Definir o valor como OFF
desabilita o encaminhamento de gravação.
À medida que você aumenta o nível de consistência, a aplicação passa mais tempo aguardando as alterações serem propagadas para as réplicas de leitura. É possível escolher o equilíbrio entre latência mais baixa e garantia de que as alterações feitas em outros locais estejam totalmente disponíveis antes da execução das consultas.
Com cada configuração de modo de consistência disponível, o efeito é o seguinte:
SESSION
: uma sessão em uma réplica de leitura que usa o encaminhamento de gravação local vê os resultados de todas as alterações feitas nessa sessão. As alterações são visíveis independentemente de a transação ser confirmada. Se necessário, a consulta aguardará que os resultados das operações de gravação encaminhadas sejam replicados na instância de banco de dados do leitor atual. Ela não aguarda resultados atualizados de operações de gravação realizadas em outras sessões no cluster de banco de dados atual.EVENTUAL
: uma sessão em uma réplica de leitura que usa o encaminhamento de gravação local pode ver dados ligeiramente obsoletos devido ao atraso de replicação. Os resultados das operações de gravação na mesma sessão ficam visíveis apenas quando a operação de gravação é realizada na instância de banco de dados do gravador e replicada na réplica de leitura. A consulta não espera que os resultados atualizados estejam disponíveis. Assim, ela pode recuperar os dados mais antigos ou os dados atualizados, dependendo do tempo das declarações e da quantidade de atraso da replicação.GLOBAL
: uma sessão em uma réplica de leitura vê as alterações feitas por essa sessão. Ela também vê todas as alterações confirmadas da instância de banco de dados do gravador e das outras réplicas de leitura. Cada consulta pode aguardar por um período que varia de acordo com a quantidade de atraso da sessão. A consulta prosseguirá quando a réplica de leitura estiver atualizada com todos os dados confirmados da instância de banco de dados do gravador, a partir do momento em que a consulta foi iniciada.nota
O modo de consistência global prejudica a latência das consultas realizadas em uma sessão. Ele realizará uma espera mesmo quando a sessão não tiver enviado nenhuma consulta de gravação.
OFF
: o encaminhamento de gravação local está desabilitado.
Em sessões que usam o encaminhamento de gravação, é possível usar os níveis de isolamento REPEATABLE READ
e READ COMMITTED
. No entanto, o nível de isolamento SERIALIZABLE
não é compatível.
Para obter mais informações sobre todos os parâmetros envolvidos no encaminhamento de gravação, consulte Configurações de parâmetros padrão para o encaminhamento de gravação.
Modos de acesso a transações com encaminhamento de gravação
Se o modo de acesso a transações estiver definido como somente leitura, o encaminhamento de gravação local não será usado. Você só poderá definir o modo de acesso como leitura e gravação enquanto estiver conectado a um cluster de banco de dados e a uma sessão que tenha o encaminhamento de gravação local habilitado.
Para ter mais informações sobre os modos de acesso a transações, consulte SET TRANSACTION