本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料匯入 Amazon RDS 上的 PostgreSQL
假設有要移動到 Amazon RDS 的現有 PostgreSQL 部署。任務的複雜性取決於資料庫大小以及要傳輸的資料庫物件類型。例如,假設一個資料庫包含大約數 GB 的資料集,以及預存程序和觸發條件。此類資料庫會比僅含少量 GB 測試資料且沒有觸發條件或預存程序的簡單資料庫更複雜。
在下列情況中,建議您使用原生 PostgreSQL 資料庫遷移工具:
-
您準備進行同質遷移,亦即遷移的來源資料庫使用與目標資料庫相同的資料庫引擎。
-
您想要遷移整個資料庫。
-
原生工具可讓您以最短的停機時間來遷移系統。
在其他大部分情況下,使用 AWS Database Migration Service (AWS DMS) 來執行資料庫遷移程序是最佳的辦法。AWSDMS 可以遷移資料庫而不會導致停機,且系統會持續為許多資料庫引擎進行複寫,直到準備好切換為目標資料庫為止。您可以使用 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。 |
此設定的值取決於主機大小。CREATE INDEX 陳述式期間會使用此參數,每個平行命令皆可使用這麼多的記憶體。計算最佳值,以免將此值設得太高而耗盡記憶體。 |
|
256 (適用於 9.6 版)、4096 (適用於 10 版及更新版本) |
將尺寸提高至最大,讓 WAL 能在自動檢查點期間成長。增加此參數可增加損毀復原所需的時間。此參數會將 若為 PostgreSQL 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 |
載入資料時停用 PostgreSQL 自動清理參數,以免浪費資源 |
使用 pg_dump -Fc
(壓縮) 或 pg_restore -j
(平行) 命令搭配這些設定。
注意
PostgreSQL 命令 pg_dumpall
需要 super_user 許可,但建立資料庫執行個體時並未授予此許可,因此無法用來匯入資料。