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_transport
Raunak Rishabh dan Jitender Kumar, Amazon Web Services
Ringkasan
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_transport. 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
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_transport yang harus diaktifkan di database sumber.
Semua objek database sumber harus dalam default pg_default tablespace.
Grup keamanan instans DB sumber harus mengizinkan lalu lintas dari instans DB target.
Instal klien PostgreSQL seperti
psql PgAdmin 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_memnilai untuk pg_transport.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 dalam dokumentasi Amazon RDS.
Arsitektur

Alat
pg_transport 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
memungkinkan Anda untuk terhubung ke, dan bekerja dengan, instans PostgreSQL DB Anda. Untuk menginstal psql pada sistem Anda, lihat halaman PostgreSQL Downloads.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat grup parameter untuk sistem target. | Tentukan nama grup yang mengidentifikasinya sebagai kelompok parameter target; misalnya, | DBA |
Ubah parameter untuk grup parameter. | Atur parameter berikut:
Untuk informasi selengkapnya tentang parameter ini, lihat dokumentasi Amazon RDS. | DBA |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Buat grup parameter untuk sistem sumber. | Tentukan nama grup yang mengidentifikasinya sebagai grup parameter sumber; misalnya, | DBA |
Ubah parameter untuk grup parameter. | Atur parameter berikut:
Untuk informasi selengkapnya tentang parameter ini, lihat dokumentasi Amazon RDS. | DBA |
| 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, | DBA |
Mulai ulang instans DB Amazon RDS target. | Parameter | DBA, Administrator sistem |
Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah:
| DBA |
Buat ekstensi pg_transport. | Jalankan kueri berikut sebagai pengguna dengan
| DBA |
| 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, | DBA |
Mulai ulang instans DB Amazon RDS sumber. | Parameter | DBA |
Connect ke database dari EC2 instance menggunakan psql. | Gunakan perintah:
| DBA |
Buat ekstensi pg_transport dan hapus semua ekstensi lain dari database yang akan diangkut. | Transport akan gagal jika ada ekstensi selain pg_transport yang diinstal pada database sumber. Perintah ini harus dijalankan oleh pengguna dengan | DBA |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Lakukan lari kering. | Gunakan
Parameter terakhir dari fungsi ini (diatur ke 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
Parameter terakhir dari fungsi ini (set to | DBA |
Lakukan langkah pasca-transportasi. | Setelah transportasi database selesai:
| DBA |