本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在資料庫執行個體之間傳輸 PostgreSQL 資料庫
使用 PostgreSQL 可傳輸資料庫進行 Amazon RDS,您可以在兩個資料庫執行個體之間移動 PostgreSQL 資料庫。這是在不同資料庫執行個體之間遷移大型資料庫的一種非常快速的方法。若要使用此方法,您的資料庫執行個體必須同時執行相同的 Postgre 主要版本SQL。
此功能要求您在來源資料庫執行個體和目的地資料庫執行個體上都安裝 pg_transport
擴充功能。pg_transport
擴充功能提供實體傳輸機制,使用最少的方式移動資料庫檔案。此機制移動資料的速度比傳統的傾印和載入程序更快,而且停機時間更短。
注意
PostgreSQL 可傳輸資料庫適用於 RDS PostgreSQL 11.5 版及更新版本,以及 RDS PostgreSQL 10.10 版及更新版本。
若要將 PostgreSQL 資料庫執行個體從一個RDS用於 PostgreSQL 資料庫執行個體傳輸到另一個,請先如 中所述設定來源和目的地執行個體 設定用於傳輸的資料庫執行個體。然後,您可以使用 傳輸 PostgreSQL 資料庫 中描述的函數傳輸資料庫。
主題
資料庫傳輸期間發生的事
PostgreSQL 可傳輸資料庫功能使用提取模型,將資料庫從來源資料庫執行個體匯入目的地。transport.import_from_server
功能在目的地資料庫執行個體上建立傳輸中資料庫。無法存取傳輸進行期間目的地資料庫執行個體上的傳輸中資料庫。
當傳輸開始時,所有目前來源資料庫上的工作階段皆會終止。任何其他不在來源資料庫執行個體上的資料庫,不會受到傳輸的影響。
來源資料庫會變成特定的唯讀模式。當進入此模式時,您可以連接來源資料庫且執行唯獨模式查詢。然而,會封鎖寫入啟用查詢和其他類型的命令。只有開始進行傳輸的特定來源資料庫會受到此限制的影響。
傳輸期間,您不能重新恢復目的地資料庫執行個體的還原時間點。這是因為傳輸不是交易的,而且不會使用 PostgreSQL 預先寫入日誌來記錄變更。如果目的地資料庫執行個體有啟用自動備份,會在傳輸完成後自動進行備份。 Point-in-time 在備份完成後,還原會提供 次。
如果傳輸失敗,pg_transport
擴充套件會試圖對來源和目的地資料庫執行個體重做所有變更。這包含移除目的地已經部分傳輸的資料庫。根據錯誤的類型,來源資料庫可能會持續拒絕寫入啟用查詢。若發生這種情況,請使用下列命令以允許寫入啟用查詢。
ALTER DATABASE
db-name
SET default_transaction_read_only = false;
使用 PostgreSQL 可傳輸資料庫的限制
可傳輸的資料庫有以下限制:
僅供讀取複本 – 您無法使用傳送僅供讀取複本或僅供讀取複本的上層執行個體資料庫。
-
不支援的欄位類型 – 您無法在任何計畫使用此方法傳輸的資料庫表格中使用
reg
資料類型。這些類型取決於傳輸期間通常會變更的系統目錄物件 IDs(OIDs)。 -
資料表空間 – 所有來源資料庫物件必須在預設
pg_default
資料表空間中。 -
相容性 – 來源和目的地資料庫執行個體都必須執行相同的 Postgre 主要版本SQL。
-
擴充功能:來源資料庫執行個體只能安裝
pg_transport
。 -
角色 和 ACLs – 來源資料庫的存取權限和所有權資訊不會轉移到目的地資料庫。所有資料庫物件會由傳輸目的地的使用者建立和擁有。
並行傳輸:如果工作者程序設定正確,單個資料庫執行個體最多可支援 32 個並行傳輸,包括匯入和匯出。
-
RDS 僅適用於 PostgreSQL 資料庫執行個體 – 僅適用於 PostgreSQL 資料庫執行個體RDS的 支援 PostgreSQL 可傳輸資料庫。您無法搭配內部部署資料庫或在 Amazon 上執行的資料庫使用它EC2。