

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengimpor basis data PostgreSQL dari instans Amazon EC2
<a name="PostgreSQL.Procedural.Importing.EC2"></a>

Jika Anda memiliki data di server PostgreSQL pada instans Amazon EC2 dan ingin memindahkannya ke instans PostgreSQL DB, Anda dapat mengikuti proses ini untuk memigrasikan data. 

1. Buat berkas menggunakan pg\$1dump yang berisi data yang akan dimuat

1. Buat instans DB target

1. Gunakan *psql* untuk membuat basis data pada instans DB dan muat data

1. Buat snapshot DB dari instans DB

Bagian berikut memberikan rincian lebih lanjut pada setiap langkah yang tercantum di atas.

## Langkah 1: Buat file menggunakan pg\$1dump yang berisi data yang akan dimuat
<a name="PostgreSQL.Procedural.Importing.EC2.Step1"></a>

Utilitas `pg_dump` menggunakan perintah COPY untuk membuat skema dan dump data dari basis data PostgreSQL. Skrip dump yang dibuat oleh `pg_dump` memuat data ke dalam basis data dengan nama yang sama dan membuat ulang tabel, indeks, dan kunci asing. Anda dapat menggunakan perintah `pg_restore` dan parameter `-d` untuk memulihkan data ke basis data dengan nama yang berbeda.

Sebelum Anda membuat dump data, Anda harus melakukan kueri tabel yang akan di-dump untuk mendapatkan jumlah baris sehingga Anda dapat mengonfirmasi jumlah pada instans DB target.

 Perintah berikut membuat file dump bernama mydb2dump.sql untuk basis data bernama mydb2.

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

## Langkah 2: Buat instans DB target
<a name="PostgreSQL.Procedural.Importing.EC2.Step2"></a>

Buat instans DB PostgreSQL target menggunakan konsol Amazon RDS, AWS CLI, atau API. Buat instans dengan pengaturan retensi cadangan yang diatur ke 0 dan nonaktifkan Multi-AZ. Hal ini akan mempercepat impor data. Anda harus membuat basis data pada instans tersebut sebelum data dapat di-dump. Basis data tersebut bisa memiliki nama yang sama dengan basis data yang berisi data yang di-dump. Anda juga dapat membuat basis data dengan nama berbeda. Dalam kasus ini, gunakan perintah `pg_restore` dan parameter `-d` untuk memulihkan data ke basis data yang baru diberi nama.

Misalnya, perintah berikut dapat digunakan untuk mengeluarkan, memulihkan, dan mengubah nama basis data.

```
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
```

## Langkah 3: Gunakan psql untuk membuat basis data pada instans DB dan muat data
<a name="PostgreSQL.Procedural.Importing.EC2.Step3"></a>

Anda dapat menggunakan koneksi yang sama yang Anda gunakan untuk menjalankan perintah pg\$1dump untuk terhubung ke instans DB target dan membuat ulang basis data. Menggunakan *psql*, Anda bisa menggunakan nama pengguna master dan kata sandi master untuk membuat basis data pada instans DB

Contoh berikut menggunakan *psql* dan file dump bernama mydb2dump.sql untuk membuat basis data bernama mydb2 di instans DB PostgreSQL bernama mypginstance:

Untuk Linux, macOS, atau Unix:

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

Untuk Windows:

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

**catatan**  
Tentukan kata sandi selain perintah yang ditampilkan di sini sebagai praktik terbaik keamanan.

## Langkah 4: Buat snapshot DB dari instans DB
<a name="PostgreSQL.Procedural.Importing.EC2.Step4"></a>

Setelah Anda memverifikasi bahwa data telah dimuat ke dalam instans DB Anda, kami sarankan Anda membuat snapshot DB dari instans DB PostgreSQL target. Snapshot DB adalah cadangan lengkap instans DB Anda yang dapat digunakan untuk memulihkan instans DB Anda ke status yang diketahui. Dengan snapshot DB yang diambil segera setelah pemuatan, Anda tidak perlu memuat data lagi jika terjadi hal yang tidak diinginkan. Anda juga dapat menggunakan snapshot tersebut untuk memulai instans DB baru. Untuk informasi selengkapnya tentang cara membuat snapshot DB secara manual, lihat [Membuat snapshot DB untuk instans DB AZ tunggal untuk Amazon RDS](USER_CreateSnapshot.md).