本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將數據導入到 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)。
-
停用多個可用區。
修改資料庫參數群組來包含下列設定。您應該僅在匯入資料時才使用這些設定。您應該測試參數設定,以根據資料庫執行個體大小找出最有效率的設定。匯入完成之後,您也需要將這些參數回復為生產值。
參數 | 匯入時的建議值 | 描述 |
---|---|---|
|
524288、1048576、2097152 或 4194304 (KB)。這些設定相當於 512 MB、1 GB、2 GB 和 4 GB。 |
此設定的值取決於主機大小。在CREATEINDEX陳述式期間會使用此參數,而且每個 parallel 命令都可以使用這麼多記憶體。計算最佳值,以免將此值設得太高而耗盡記憶體。 |
|
256 (適用於 9.6 版)、4096 (適用於 10 版及更新版本) |
讓自動檢查點期間WAL增長的最大大小。增加此參數可增加損毀復原所需的時間。此參數會取 對於後SQL版本 9.6,這個值是以 16 MB 為單位。若為更新的版本,該數值是以 1 MB 為單位。例如,在 9.6 版中,128 表示 128 個達到 16 MB 的區塊。在 12.4 版中,2048 表示 2048 個尺寸各為 1 MB 的區塊。 |
|
1800 |
此設定的值允許較不頻繁的WAL旋轉。 |
|
關閉 |
停用此設定可加速寫入。關閉此參數會增加伺服器當機時資料遺失的風險 (請勿關閉FSYNC)。 |
|
8192 |
此值以 8 KB 為單位。這再次幫助您的WAL世代加速 |
|
0 |
在加載數據時禁用 Postgre SQL auto 真空參數,以免使用資源 |
使用 pg_dump -Fc
(壓縮) 或 pg_restore -j
(平行) 命令搭配這些設定。
注意
Postgre SQL 命令pg_dumpall
需要在建立資料庫執行個體時未授予的 super_user 權限,因此無法用於匯入資料。