Pemulihan tingkat database memungkinkan Anda memulihkan database tertentu dalam instans ApsaraDB RDS for PostgreSQL ke kondisi sebelumnya tanpa perlu memulihkan seluruh instans. Gunakan fitur ini untuk membatalkan perubahan yang tidak disengaja, memulihkan data yang terhapus, atau menjalankan kueri terhadap snapshot historis.
Fitur ini sedang dalam pratinjau publik dan gratis.
Kasus penggunaan
-
Kehilangan data tidak disengaja: Seorang developer menghapus tabel atau menimpa baris secara tidak sengaja. Pulihkan hanya database yang terdampak ke titik waktu sebelum insiden tersebut.
-
Analisis data historis: Ambil salinan database pada titik waktu tertentu untuk menjalankan analitik tanpa memengaruhi instans produksi.
Cara kerja
Pemulihan membaca data dari set cadangan atau urutan data cadangan penuh dan cadangan log inkremental, lalu menulis database yang dipilih ke instans asal atau instans lain yang sudah ada di wilayah yang sama. Kecepatan pemulihan sekitar 20 Mbit/s dan bervariasi tergantung volume data.
Perilaku penamaan: Sebelum pemulihan dimulai, sistem mengganti nama setiap database yang dipulihkan dengan menambahkan _backup pada namanya (misalnya, orders menjadi orders_backup). Anda dapat mengubah nama tersebut sebelum mengonfirmasi.
Rentang pemulihan bervariasi berdasarkan periode retensi cadangan data, periode retensi cadangan log, dan titik waktu saat Anda mengaktifkan fitur pemulihan tingkat database pada instans RDS Anda.
Prasyarat
Sebelum memulai, pastikan bahwa:
-
Instans RDS memenuhi semua persyaratan berikut:
-
Versi mesin utama: PostgreSQL 10 hingga PostgreSQL 17
-
Edisi: RDS Basic Edition, RDS High-availability Edition, atau RDS Cluster Edition
-
Jenis penyimpanan: Enhanced SSD (ESSD) atau Premium ESSD
-
Tipe penagihan: pay-as-you-go atau subscription (instans Serverless tidak didukung)
-
-
Jika instans dibuat sebelum 10 Oktober 2022 dan menggunakan arsitektur awal, lengkapi otorisasi service-linked role (SLR) dan perbarui versi mesin minor ke versi terbaru sebelum melanjutkan.
-
Fitur pemulihan tingkat database telah diaktifkan pada instans tersebut. Lihat Aktifkan pemulihan tingkat database.
Tip: Untuk memeriksa edisi instans, jenis penyimpanan, dan tipe penagihan, buka halaman Basic Information instans tersebut.
Batasan
| Batasan | Detail |
|---|---|
| Target pemulihan | Hanya instans asal atau instans yang sudah ada di wilayah yang sama dengan versi mesin utama yang sama. Pemulihan ke instans baru tidak didukung. |
| Granularitas pemulihan | Hanya database. Tabel dan view individual tidak dapat dipulihkan. |
| Ukuran tabel | Tabel yang lebih besar dari 100 GB tidak dapat dipulihkan. |
| Nama database yang dicadangkan | Database yang namanya diawali dengan postgres, rdsadmin, atau template tidak dapat dipulihkan. |
Aktifkan pemulihan tingkat database
Mengaktifkan fitur ini tidak memengaruhi beban kerja yang sedang berjalan.
-
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada. Temukan instans tersebut dan klik ID-nya.
-
Di panel navigasi kiri, klik Backup and Restoration.
-
Klik tab Backup Strategy.
-
Klik Edit di samping Data Backup Settings. Di kotak dialog, aktifkan Restore Individual Database/Table.
-
Klik Save.
Pulihkan database
-
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans berada. Temukan instans tersebut dan klik ID-nya.
-
Di panel navigasi kiri, klik Backup and Restoration. Di halaman yang muncul, klik Restore Individual Database/Table.
Jika tombol Restore Individual Database/Table tidak terlihat, pastikan semua prasyarat telah terpenuhi.
-
Konfigurasikan parameter pemulihan.
Periode retensi maksimum untuk file cadangan data maupun file cadangan log adalah 730 hari. Untuk memeriksa rentang waktu yang dapat dipulihkan untuk instans Anda, panggil operasi API DescribeLocalAvailableRecoveryTime.
Parameter Deskripsi Restore To Instans tujuan: instans asal, atau instans lain di wilayah yang sama dengan versi mesin utama yang sama. Restore Speed Tetap sebagai Standard. Restore Method By Backup Set: pulihkan dari set cadangan tertentu. By Time: tersedia hanya jika cadangan log diaktifkan. Sistem memutar ulang data cadangan penuh diikuti oleh data cadangan log inkremental, sehingga Anda dapat memulihkan ke titik waktu apa pun dalam periode retensi cadangan log. Misalnya, jika periode retensi cadangan data dan periode retensi cadangan log masing-masing 7 hari, Anda dapat memulihkan ke titik waktu apa pun dalam 7 hari terakhir. -
Pilih database yang akan dipulihkan, lalu klik OK.
-
Pilih hingga 50 database sekaligus.
-
Sistem menambahkan
_backupke nama setiap database yang dipulihkan (misalnya,mydbmenjadimydb_backup). Anda dapat mengubah nama tersebut sebelum mengonfirmasi. -
Pastikan instans tujuan memiliki ruang penyimpanan yang cukup untuk menampung semua database yang dipilih.
-
Lihat progres pemulihan
Setelah Anda mengirimkan tugas pemulihan, buka bagian atas halaman detail instans dan klik Task Center untuk memeriksa status dan progres tugas.
-
Di bagian atas halaman detail instans, klik Task Center.
-
Di daftar tugas, periksa kolom Task Status dan Task Progress.
-
Filter catatan tugas berdasarkan rentang waktu (1 Hour, 1 Day, 7 Days, atau 30 Days) atau berdasarkan status tugas.
Jika halaman pemulihan tidak menampilkan informasi progres, refresh browser Anda dan periksa kembali.
Verifikasi pemulihan
Setelah tugas pemulihan selesai, buka halaman Databases instans tujuan untuk memastikan database yang dipulihkan muncul. Verifikasi bahwa:
-
Database yang dipulihkan dapat diakses dan datanya tampak benar.
-
String koneksi yang mengarah ke data yang dipulihkan menggunakan nama database yang benar (versi
_backup, kecuali Anda mengganti namanya saat pemulihan).
FAQ
Konsol menampilkan "Operasi gagal. Instans RDS tidak dalam status siap." Apa yang harus saya lakukan?
Tugas pemulihan dijalankan secara berurutan. Kesalahan ini berarti tugas pemulihan lain masih berlangsung atau belum selesai. Tunggu hingga tugas saat ini selesai, lalu coba lagi.
Database yang dipulihkan kosong. Mengapa?
Database asli tidak memiliki data pada titik waktu yang Anda pilih. Pilih titik waktu ketika database tersebut berisi data.
Apakah ada cara lain untuk memulihkan database individual?
Anda dapat menggunakan BDRC untuk mencadangkan dan memulihkan instans RDS serta database yang dikelola sendiri pada instans Elastic Compute Service (ECS), serta mengunduh set cadangan secara lokal. Lihat Overview dan Restore data by database or table.
Langkah selanjutnya
-
Pulihkan semua data instans ApsaraDB RDS for PostgreSQL — pulihkan seluruh instans alih-alih hanya database individual.
-
Gunakan pg_restore untuk memulihkan data dari file cadangan logis — pulihkan tabel tertentu dari cadangan logis menggunakan pg_restore.
-
Pulihkan data ke instans PostgreSQL yang dikelola sendiri — ekspor data cadangan ke instans PostgreSQL yang dikelola sendiri menggunakan file CSV atau file SQL.