使用 Amazon RDS for PostgreSQL 的僅供讀取複本 - Amazon Relational Database Service

使用 Amazon RDS for PostgreSQL 的僅供讀取複本

您可透過將僅供讀取複本新增至執行個體,以擴展 Amazon RDS for PostgreSQL 資料庫執行個體的讀取。與其他 Amazon RDS 資料庫引擎一樣,RDS for PostgreSQL 會使用 PostgreSQL 的原生複寫機制,使僅供讀取複本與來源資料庫上的變更保持最新狀態。如需僅供讀取複本與 Amazon RDS 的一般資訊,請參閱 使用資料庫執行個體僅供讀取複本

有關如何利用 RDS for PostgreSQL 處理僅供讀取複本,以下提供具體資訊。

使用 PostgreSQL 的僅供讀取複本限制

下列為 PostgreSQL 僅供讀取複本的限制:

  • PostgreSQL 僅供讀取複本皆為唯讀。雖然僅供讀取複本不是可寫入資料庫執行個體,但您可將其提升為獨立的 RDS for PostgreSQL 資料庫執行個體。但此程序是不可逆的。

  • 若 RDS for PostgreSQL 資料庫執行個體執行早於 14.1 的 PostgreSQL 版本,則無法從另一個僅供讀取複本建立僅供讀取複本。RDS for PostgreSQL 僅支援 RDS for PostgreSQL 14.1 版和更新版本上的階層式僅供讀取複本。如需詳細資訊,請參閱 使用具 RDS for PostgreSQL 的階層式僅供讀取複本

  • 若您提升 PostgreSQL 僅供讀取複本,則會成為可寫入資料庫執行個體。其會停止從來源資料庫執行個體接收預寫日誌 (WAL) 檔案,且不再是個唯讀執行個體。您可從提升的資料庫執行個體建立新的僅供讀取複本,如同對任何 RDS for PostgreSQL 資料庫執行個體所做的一樣。如需詳細資訊,請參閱 提升僅供讀取複本為獨立的資料庫執行個體

  • 若從複寫鏈 (一系列階層式僅供讀取複本) 中提升 PostgreSQL 僅供讀取複本,則任何現有的下游僅供讀取複本皆會繼續自動從提升的執行個體接收 WAL 檔案。如需詳細資訊,請參閱 使用具 RDS for PostgreSQL 的階層式僅供讀取複本

  • 如果來源資料庫執行個體上未發生使用者交易,則 PostgreSQL 僅供讀取複本會回報最多五分鐘的複寫延遲。複本滯後的計算方式為 currentTime - lastCommitedTransactionTimestamp,亦即未處理任何交易時,複本滯後的值會增加一段時間,直到預寫日誌 (WAL) 區段切換為止。根據預設,RDS for PostgreSQL 每 5 分鐘切換一次 WAL 區段,這會導致交易記錄和報告的延遲減少。

  • 您無法為早於 14.1 的 RDS for PostgreSQL 版本開啟 PostgreSQL 僅供讀取複本的自動備份。RDS for PostgreSQL 14.1 及更新版本僅支援僅供讀取複本的自動備份。對於 RDS for PostgreSQL 13 及更早版本,若您想要備份僅供讀取複本,則請從僅供讀取複本建立快照。

  • 僅供讀取複本不支援時間點復原 (PITR)。您僅可使用具主 (寫入器) 執行個體的 PITR,而非僅供讀取複本。如需詳細資訊,請參閱 將 Amazon RDS 的資料庫執行個體還原至指定時間

  • PostgreSQL 第 12 版和較低版本的僅供讀取複本會在 60-90 天的維護時段內自動重新開機,以套用密碼輪換。複本若在排程的重新開機之前失去與來源的連線,仍會重新開機以繼續複寫。對於 PostgreSQL 第 13 版和更高版本,僅供讀取複本可能會在密碼輪換過程中經歷短暫的複寫中斷連線和重新連線。