Amazon-Rds-Aurora

多可用區故障轉移 - 故障轉移後副本仍為只讀

  • August 12, 2018

設置:

我有一個 RDS 集群。這個集群有兩個實例,每個區域一個。自然地,一個“複製角色”讀者和一個作者。

發生了什麼:

我從 RDS 控制台“實例操作”菜單手動觸發了主實例的故障轉移。這樣做之後,控制台最終顯示了這種變化,包括讀取器和寫入器角色的交換。但是,副本實例仍然是只讀的,因此所有寫入都失敗了。此副本實例的參數組設置具有 read_only:TrueIfReplica。

問題:

我可以提供哪些其他資訊來闡明我的配置或問題?

關於為什麼這個副本實例保持只讀的任何線索?

如果這是 read_only:TrueIfReplica 的預期行為,我還應該在哪裡修復我的配置?

乾杯!

我需要回答這個問題的一件事。您在應用程序實例或集群中使用哪個端點?

在 Aurora 中有兩種類型的端點。1. 實例端點 2. 集群端點

實例端點:

該端點將始終指向該特定實例,無論它是讀取的還是寫入的。它從不關心角色,它會指向那個特定的實例。

集群端點:

實際上它有2個端點。一個用於 Writer,另一個用於 Reader。這是我們應該在應用程序中使用的端點。因為與 Normal RDS 不同,Aurora 的故障轉移和 MultiAZ 是不同的。因此,這些集群端點將根據角色指向基礎。

Writer 端點將始終指向 writer 角色實例,故障轉移後,此端點將轉到新的 writer。就像讀取端點一樣。

三個問題的答案

  1. 我可以提供哪些其他資訊來闡明我的配置或問題?

檢查您正在使用哪個端點。

  1. 關於為什麼這個副本實例保持只讀的任何線索?

如果您使用的是實例端點,則在故障轉移後,應用程序仍會引用同一個實例進行寫入。這就是它失敗的原因。

  1. 如果這是 read_only:TrueIfReplica 的預期行為,我還應該在哪裡修復我的配置?

沒什麼,只需再次檢查您正在使用的端點。

引用自:https://dba.stackexchange.com/questions/214643