

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

# 從 Amazon EC2 執行個體匯入 PostgreSQL 資料庫
<a name="PostgreSQL.Procedural.Importing.EC2"></a>

如果您在 Amazon EC2 執行個體上的 PostgreSQL 伺服器中有資料，且想要將資料移至 PostgreSQL 資料庫執行個體，您可以依照下列程序來遷移資料。

1. 使用 pg\$1dump 建立檔案，其中包含要載入的資料

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

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

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

以下幾節提供上述各個步驟的詳細資訊。

## 步驟 1：使用 pg\$1dump 建立檔案，其中包含要載入的資料
<a name="PostgreSQL.Procedural.Importing.EC2.Step1"></a>

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

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

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

```
prompt>pg_dump dbname=mydb2 -f mydb2dump.sql 
```

## 步驟 2：建立目標資料庫執行個體
<a name="PostgreSQL.Procedural.Importing.EC2.Step2"></a>

您可以使用 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 在資料庫執行個體上建立資料庫並載入資料
<a name="PostgreSQL.Procedural.Importing.EC2.Step3"></a>

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

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

針對 Linux、macOS 或 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：建立資料庫執行個體的資料庫快照
<a name="PostgreSQL.Procedural.Importing.EC2.Step4"></a>

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