將數據導入到 Amazon SQL 上的 Postgre RDS - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將數據導入到 Amazon SQL 上的 Postgre RDS

假設您有想要移至 Amazon RDS 的現有 Postgre SQL 部署。任務的複雜性取決於資料庫大小以及要傳輸的資料庫物件類型。例如,假設一個資料庫包含大約數 GB 的資料集,以及預存程序和觸發條件。此類資料庫會比僅含少量 GB 測試資料且沒有觸發條件或預存程序的簡單資料庫更複雜。

我們建議您在下列情況下使用原生 Postgre SQL 資料庫移轉工具:

  • 您準備進行同質遷移,亦即遷移的來源資料庫使用與目標資料庫相同的資料庫引擎。

  • 您想要遷移整個資料庫。

  • 原生工具可讓您以最短的停機時間來遷移系統。

在大多數其他情況下,使用資料庫移轉服務 (AWS DMS) 執行 AWS 資料庫移轉是最好的方法。 AWS DMS可以在不停機的情況下移轉資料庫,而且對於許多資料庫引擎,請繼續進行中的複寫,直到您準備好切換至目標資料庫為止。您可以使用移轉至相同的資料庫引擎或不同的資料庫引擎 AWS DMS。如果您要移轉至與來源資料庫不同的資料庫引擎,您可以使用 AWS Schema Conversion Tool (AWS SCT)。您可 AWS SCT 以用來移轉未由移轉的綱要物件 AWS DMS。如需有關的詳細資訊 AWS DMS,請參閱什麼是 AWS Database Migration Service?

僅針對您的匯入,修改資料庫參數群組來包含下列設定。您應該測試參數設定,以根據資料庫執行個體大小找出最有效率的設定。匯入完成之後,您也需要將這些參數回復為生產值。

將資料庫執行個體設定修改為下列:

  • 停用資料庫執行個體備份 (將 backup_retention 設為 0)。

  • 停用多個可用區。

修改資料庫參數群組來包含下列設定。您應該僅在匯入資料時才使用這些設定。您應該測試參數設定,以根據資料庫執行個體大小找出最有效率的設定。匯入完成之後,您也需要將這些參數回復為生產值。

參數 匯入時的建議值 描述

maintenance_work_mem

524288、1048576、2097152 或 4194304 (KB)。這些設定相當於 512 MB、1 GB、2 GB 和 4 GB。

此設定的值取決於主機大小。在CREATEINDEX陳述式期間會使用此參數,而且每個 parallel 命令都可以使用這麼多記憶體。計算最佳值,以免將此值設得太高而耗盡記憶體。

max_wal_size

256 (適用於 9.6 版)、4096 (適用於 10 版及更新版本)

讓自動檢查點期間WAL增長的最大大小。增加此參數可增加損毀復原所需的時間。此參數會取checkpoint_segments代後 SQL 9.6 及更新版本。

對於後SQL版本 9.6,這個值是以 16 MB 為單位。若為更新的版本,該數值是以 1 MB 為單位。例如,在 9.6 版中,128 表示 128 個達到 16 MB 的區塊。在 12.4 版中,2048 表示 2048 個尺寸各為 1 MB 的區塊。

checkpoint_timeout

1800

此設定的值允許較不頻繁的WAL旋轉。

synchronous_commit

關閉

停用此設定可加速寫入。關閉此參數會增加伺服器當機時資料遺失的風險 (請勿關閉FSYNC)。

wal_buffers

8192

此值以 8 KB 為單位。這再次幫助您的WAL世代加速

autovacuum

0

在加載數據時禁用 Postgre SQL auto 真空參數,以免使用資源

使用 pg_dump -Fc (壓縮) 或 pg_restore -j (平行) 命令搭配這些設定。

注意

Postgre SQL 命令pg_dumpall需要在建立資料庫執行個體時未授予的 super_user 權限,因此無法用於匯入資料。