Mengangkut basis data PostgreSQL antara instans DB - Layanan Basis Data Relasional Amazon

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

Mengangkut basis data PostgreSQL antara instans DB

Dengan menggunakan basis data PostgreSQL yang dapat ditranspor untuk Amazon RDS, Anda dapat memindahkan basis data PostgreSQL antara dua instans DB. Ini adalah cara yang sangat cepat untuk memigrasikan basis data besar antara instans DB yang berbeda. Untuk menggunakan pendekatan ini, instans DB Anda harus menjalankan PostgreSQL versi utama.

Kemampuan ini mengharuskan Anda menginstal ekstensi pg_transport di instans DB sumber dan tujuan. Ekstensi pg_transport menyediakan mekanisme transportasi fisik yang memindahkan file basis data dengan pemrosesan minimal. Mekanisme ini memindahkan data jauh lebih cepat daripada proses dump dan load tradisional, dengan waktu henti yang lebih sedikit.

catatan

Basis data PostgreSQL yang dapat ditranspor tersedia dalam RDS for PostgreSQL 11.5 dan yang lebih tinggi, dan RDS for PostgreSQL versi 10.10 dan yang lebih tinggi.

Untuk mentranspor instans DB PostgreSQL dari satu instans DB RDS for PostgreSQL ke instans DB lainnya, pertama-tama siapkan instans sumber dan tujuan sebagaimana dijelaskan dalam Menyiapkan instans DB untuk transportasi. Anda kemudian dapat mentranspor basis data menggunakan fungsi yang dijelaskan dalam Mentranspor basis data PostgreSQL.

Apa yang terjadi selama transportasi basis data

Fitur basis data PostgreSQL yang dapat ditranspor menggunakan model tarik untuk mengimpor basis data dari instans DB sumber ke tujuan. Fungsi transport.import_from_server membuat basis data bergerak pada instans DB tujuan. Basis data bergerak tidak dapat diakses pada instans DB tujuan selama durasi transportasi.

Ketika transportasi dimulai, semua sesi saat ini pada basis data sumber berakhir. Setiap basis data selain basis data sumber pada instans DB sumber tidak terpengaruh oleh transportasi.

Basis data sumber dibuat menjadi mode hanya-baca khusus. Saat berada dalam mode ini, Anda dapat terhubung ke basis data sumber dan menjalankan kueri hanya baca. Namun, kueri berkemampuan tulis dan beberapa jenis perintah lainnya diblokir. Hanya basis data sumber spesifik yang ditranspor yang terpengaruh oleh pembatasan ini.

Selama transportasi, Anda tidak dapat memulihkan instans DB tujuan ke suatu titik waktu. Ini karena transportasi tersebut tidak bersifat transaksional dan tidak menggunakan log write-ahead PostgreSQL untuk mencatat perubahan. Jika instans DB tujuan mengaktifkan pencadangan otomatis, cadangan akan diambil secara otomatis setelah transportasi selesai. Point-in-timepemulihan tersedia beberapa kali setelah pencadangan selesai.

Jika transportasi gagal, ekstensi pg_transport berupaya untuk membatalkan semua perubahan ke instans DB sumber dan tujuan. Ini termasuk menghapus basis data yang ditranspor sebagian di tujuan. Bergantung pada jenis kegagalan, basis data sumber dapat terus menolak kueri berkemampuan tulis. Jika ini terjadi, gunakan perintah berikut untuk memungkinkan kueri berkemampuan tulis.

ALTER DATABASE db-name SET default_transaction_read_only = false;

Batasan dalam penggunaan basis data PostgreSQL yang dapat ditranspor

Basis data yang dapat ditranspor memiliki batasan berikut:

  • Replika baca – Anda tidak dapat menggunakan basis data yang dapat ditranspor pada replika baca atau instans induk replika baca.

  • Jenis kolom yang tidak didukung – Anda tidak dapat menggunakan jenis data reg dalam tabel basis data apa pun yang akan Anda transportasikan dengan metode ini. Jenis ini tergantung pada sistem katalog objek IDs (OIDs), yang sering berubah selama transportasi.

  • Tablespace – Semua objek basis data sumber harus dalam tablespace pg_default default.

  • Kompatibilitas – Instans DB sumber dan tujuan harus menjalankan PostgreSQL dalam versi utama yang sama.

  • Ekstensi — Instans DB sumber hanya dapat memiliki penginstalan pg_transport.

  • Peran dan ACLs — Hak akses database sumber dan informasi kepemilikan tidak dibawa ke database tujuan. Semua objek basis data dibuat dan dimiliki oleh pengguna tujuan transportasi lokal.

  • Transportasi bersamaan — Instans DB tunggal dapat mendukung hingga 32 transportasi bersamaan, termasuk impor dan ekspor, jika proses pekerja telah dikonfigurasi dengan benar.

  • Khusus instans DB RDS for PostgreSQL - Basis data PostgreSQL yang dapat ditranspor didukung hanya pada instans DB RDS for PostgreSQL. Anda tidak dapat menggunakannya dengan basis data on-premise atau basis data yang berjalan di Amazon EC2.