從 Amazon EC2 執行個體匯入 PostgreSQL 資料庫 - Amazon Relational Database Service

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

從 Amazon EC2 執行個體匯入 PostgreSQL 資料庫

如果您在 Amazon EC2 執行個體上的 PostgreSQL 伺服器中有資料,且想要將資料移至 PostgreSQL 資料庫執行個體,則可以使用下列程序。下列清單顯示要採取的步驟。以下幾節將詳細討論各步驟。

  1. 使用 pg_dump 建立檔案,其中包含要載入的資料

  2. 建立目標資料庫執行個體

  3. 使用 psql 在資料庫執行個體上建立資料庫並載入資料

  4. 建立資料庫執行個體的資料庫快照

步驟 1:使用 pg_dump 建立檔案,其中包含要載入的資料

pg_dump 公用程式會使用 COPY 命令建立 PostgreSQL 資料庫的結構描述和資料傾印。pg_dump 產生的傾印指令碼會將資料載入相同名稱的資料庫中,並重新建立資料表、索引和外部索引鍵。您可以使用 pg_restore 命令和 -d 參數將資料還原至不同名稱的資料庫。

建立資料傾印之前,您應該查詢要傾印的資料表來取得資料列計數,以確認目標資料庫執行個體上的計數。

下列命令為資料庫 mydb2 建立名為 mydb2dump.sql 的傾印檔案。

prompt>pg_dump dbname=mydb2 -f mydb2dump.sql

步驟 2:建立目標資料庫執行個體

您可以使用 Amazon RDS 主控台、AWS CLI 或 API 來建立目標 PostgreSQL 資料庫執行個體。建立將備份保留期設為 0 的執行個體,並停用多個可用區。這麼做可以加速匯入資料。您必須先在執行個體上建立資料庫,才能傾印資料。此資料庫與包含傾印資料的資料庫可以具有相同名稱。或者,您可以建立不同名稱的資料庫。在此情況下,您可以使用 pg_restore 命令和 -d 參數將資料還原至新命名的資料庫。

例如,下列命令可用來傾印、還原和重新命名資料庫。

pg_dump -Fc -v -h [endpoint of instance] -U [master username] [database] > [database].dump createdb [new database name] pg_restore -v -h [endpoint of instance] -U [master username] -d [new database name] [database].dump

步驟 3:使用 psql 在資料庫執行個體上建立資料庫並載入資料

您可以使用原本用來執行 pg_dump 命令的相同連線,以連線至目標資料庫執行個體並重新建立資料庫。透過 psql,您可以使用主要使用者名稱和主要密碼在資料庫執行個體上建立資料庫

下列範例使用 psql 和名為 mydb2dump.sql 的傾印檔案,在稱為 mypginstance 的 PostgreSQL 資料庫執行個體上建立名為 mydb2 的資料庫:

對於LinuxmacOS、或Unix:

psql \ -f mydb2dump.sql \ --host mypginstance.555555555555.aws-region.rds.amazonaws.com \ --port 8199 \ --username myawsuser \ --password password \ --dbname mydb2

在Windows中:

psql ^ -f mydb2dump.sql ^ --host mypginstance.555555555555.aws-region.rds.amazonaws.com ^ --port 8199 ^ --username myawsuser ^ --password password ^ --dbname mydb2
注意

指定此處所顯示提示以外的密碼,作為安全最佳實務。

步驟 4:建立資料庫執行個體的資料庫快照

在確認資料已載入至資料庫執行個體後,建議您建立目標 PostgreSQL 資料庫執行個體的資料庫快照。資料庫快照是您資料庫執行個體的完整備份,可將您的資料庫執行個體還原至已知狀態。若能在載入後立即拍攝資料庫快照,萬一發生事故,就不必重新載入資料。您也可使用快照植入新的資料庫執行個體。如需有關建立資料庫快照的資訊,請參閱為單一可用區資料庫執行個體建立資料庫快照