

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

# Transportasi database PostgreSQL antara dua instans Amazon RDS DB menggunakan pg\$1transport
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport"></a>

*Raunak Rishabh dan Jitender Kumar, Amazon Web Services*

## Ringkasan
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

**Pola ini menjelaskan langkah-langkah untuk memigrasikan database yang sangat besar antara dua Amazon Relational Database Service (Amazon RDS) untuk instance PostgreSQL DB dengan menggunakan ekstensi pg\$1transport.** Ekstensi ini memberikan mekanisme transportasi fisik untuk memindahkan setiap basis data. Dengan streaming file database dengan pemrosesan minimal, ini menyediakan metode yang sangat cepat untuk memigrasikan database besar antara instans DB dengan waktu henti minimal. Ekstensi ini menggunakan model tarik di mana instans DB target mengimpor database dari instance DB sumber.

## Prasyarat dan batasan
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Prasyarat**
+ Kedua instans DB harus menjalankan versi utama PostgreSQL yang sama.
+ Database tidak boleh ada pada target. Jika tidak, transportasi gagal.
+ Tidak ada ekstensi selain **pg\$1transport** yang harus diaktifkan di database sumber.
+ Semua objek database sumber harus dalam default **pg\$1default tablespace**.
+ Grup keamanan instans DB sumber harus mengizinkan lalu lintas dari instans DB target.
+ Instal klien PostgreSQL [seperti](https://www.postgresql.org/docs/11/app-psql.html) psql [PgAdmin](https://www.pgadmin.org/)atau untuk bekerja dengan instans Amazon RDS PostgreSQL DB. Anda dapat menginstal klien baik di sistem lokal Anda atau menggunakan instans Amazon Elastic Compute Cloud (Amazon EC2). Dalam pola ini, kita menggunakan psql pada sebuah EC2 instance.

**Batasan**
+ Anda tidak dapat mengangkut database antara berbagai versi utama Amazon RDS for PostgreSQL.
+ Hak akses dan kepemilikan dari database sumber tidak ditransfer ke database target.
+ Anda tidak dapat mengangkut database pada replika baca atau pada instance induk dari replika baca.
+ Anda tidak dapat menggunakan tipe data **reg** dalam tabel database apa pun yang Anda rencanakan untuk diangkut dengan metode ini.
+ Anda dapat menjalankan hingga 32 total transportasi (termasuk impor dan ekspor) secara bersamaan pada instans DB.
+ Anda tidak dapat mengganti nama atau include/exclude tabel. Semuanya bermigrasi apa adanya.

**Perhatian**
+ Buat cadangan sebelum menghapus ekstensi, karena menghapus ekstensi juga menghapus objek dependen dan beberapa data yang penting untuk pengoperasian database.
+ Pertimbangkan kelas instance dan proses yang berjalan pada database lain pada instance sumber saat Anda menentukan jumlah pekerja dan `work_mem` nilai untuk **pg\$1transport**.
+ Ketika transport dimulai, semua koneksi pada database sumber berakhir dan database dimasukkan ke dalam mode read-only.

**catatan**  
Ketika transport berjalan pada satu database, itu tidak mempengaruhi database lain di server yang sama. ****

**Versi produk**
+ Amazon RDS untuk PostgreSQL 10.10 dan yang lebih baru, dan Amazon RDS for PostgreSQL 11.5 dan yang lebih baru. Untuk informasi versi terbaru, lihat [Mengangkut Database PostgreSQL Antara Instans DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) dalam dokumentasi Amazon RDS.

## Arsitektur
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Mengangkut database PostgreSQL antara instans Amazon RDS DB\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Alat
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport** menyediakan mekanisme transportasi fisik untuk memindahkan setiap database. Dengan streaming file database dengan pemrosesan minimal, transportasi fisik memindahkan data jauh lebih cepat daripada proses dump dan load tradisional dan membutuhkan waktu henti minimal. Basis data PostgreSQL yang dapat diangkut menggunakan model tarik yaitu instans DB tujuan mengimpor basis data dari instans DB sumber. Anda menginstal ekstensi ini pada instans DB Anda ketika Anda menyiapkan sumber dan lingkungan target, seperti yang dijelaskan dalam pola ini.
+ [psql](https://www.postgresql.org/docs/11/app-psql.html) memungkinkan Anda untuk terhubung ke, dan bekerja dengan, instans PostgreSQL DB Anda. [Untuk menginstal **psql** pada sistem Anda, lihat halaman PostgreSQL Downloads.](https://www.postgresql.org/download/)

## Epik
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Buat grup parameter target
<a name="create-the-target-parameter-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup parameter untuk sistem target. | Tentukan nama grup yang mengidentifikasinya sebagai kelompok parameter target; misalnya,`pgtarget-param-group`. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ubah parameter untuk grup parameter. | Atur parameter berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Untuk informasi selengkapnya tentang parameter ini, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Buat grup parameter sumber
<a name="create-the-source-parameter-group"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat grup parameter untuk sistem sumber. | Tentukan nama grup yang mengidentifikasinya sebagai grup parameter sumber; misalnya,`pgsource-param-group`. Untuk petunjuk, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ubah parameter untuk grup parameter. | Atur parameter berikut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Untuk informasi selengkapnya tentang parameter ini, lihat [dokumentasi Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Siapkan lingkungan target
<a name="prepare-the-target-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Buat instans Amazon RDS for PostgreSQL DB baru untuk mengangkut database sumber Anda. | Tentukan kelas instance dan versi PostgreSQL berdasarkan kebutuhan bisnis Anda. | DBA, Administrator sistem, Arsitek basis data | 
| Ubah grup keamanan target untuk memungkinkan koneksi pada port instans DB dari EC2 instance. | Secara default, port untuk instance PostgreSQL adalah 5432. Jika Anda menggunakan port lain, koneksi ke port itu harus terbuka untuk EC2 instance tersebut. | DBA, Administrator sistem | 
| Ubah instance, dan tetapkan grup parameter target baru. | Misalnya, `pgtarget-param-group`. | DBA | 
| Mulai ulang instans DB Amazon RDS target.  | Parameter `shared_preload_libraries` dan `max_worker_processes` parameter statis dan memerlukan reboot dari instance. | DBA, Administrator sistem | 
| Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Buat ekstensi pg\$1transport. | Jalankan kueri berikut sebagai pengguna dengan `rds_superuser` peran:<pre>create extension pg_transport;</pre> | DBA | 

### Siapkan lingkungan sumber
<a name="prepare-the-source-environment"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Ubah grup keamanan sumber untuk mengizinkan koneksi pada port instans DB dari instans Amazon dan menargetkan EC2 instans DB | Secara default, port untuk instance PostgreSQL adalah 5432. Jika Anda menggunakan port lain, koneksi ke port itu harus terbuka untuk EC2 instance tersebut. | DBA, Administrator sistem | 
| Ubah instance dan tetapkan grup parameter sumber baru. | Misalnya, `pgsource-param-group`. | DBA | 
| Mulai ulang instans DB Amazon RDS sumber.  | Parameter `shared_preload_libraries` dan `max_worker_processes` parameter statis dan memerlukan reboot dari instance. | DBA | 
| Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Buat ekstensi pg\$1transport dan hapus semua ekstensi lain dari database yang akan diangkut. | Transport akan gagal jika ada ekstensi selain **pg\$1transport** yang diinstal pada database sumber. Perintah ini harus dijalankan oleh pengguna dengan `rds_superuser` peran. | DBA | 

### Lakukan transportasi
<a name="perform-the-transport"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Lakukan lari kering. | Gunakan `transport.import_from_server` fungsi untuk melakukan dry run terlebih dahulu:<pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', 'true');</pre>Parameter terakhir dari fungsi ini (diatur ke`true`) mendefinisikan dry run. Fungsi ini menampilkan kesalahan apa pun yang akan Anda lihat ketika Anda menjalankan transportasi utama. Selesaikan kesalahan sebelum Anda menjalankan transportasi utama.  | DBA | 
| Jika dry run berhasil, memulai transportasi database. | Jalankan `transport.import_from_server` fungsi untuk melakukan transportasi. Ini terhubung ke sumber dan mengimpor data. <pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);</pre>Parameter terakhir dari fungsi ini (set to`false`) menunjukkan bahwa ini bukan dry run. | DBA | 
| Lakukan langkah pasca-transportasi. | Setelah transportasi database selesai:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Sumber daya terkait
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Dokumentasi Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [dokumentasi pg\$1transport](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migrasi database menggunakan RDS PostgreSQL Transportable Databases (posting blog)](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/)
+ [Unduhan PostgreSQL](https://www.postgresql.org/download/linux/redhat/)
+ [utilitas psql](https://www.postgresql.org/docs/11/app-psql.html)
+ [Membuat Grup Parameter DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Ubah Parameter dalam Grup Parameter DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [Unduhan PostgreSQL](https://www.postgresql.org/download/)