Karena AlloyDB Omni kompatibel dengan PostgreSQL, perintah dan teknik pemulihan data yang dijelaskan dalam panduan pgBackRest juga berlaku untuk AlloyDB Omni. Halaman ini menunjukkan pilihan tugas pemulihan umum, dengan contoh perintah yang relevan.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi pgBackRest agar berfungsi dengan AlloyDB Omni, lihat Menyiapkan pgBackRest untuk AlloyDB Omni.
Lihat Mencadangkan dan memulihkan di Kubernetes untuk informasi berbasis Kubernetes.
Sebelum memulai
Sebelum mengonfigurasi AlloyDB Omni agar berfungsi dengan pgBackrest, Anda harus menginstal dan menjalankan AlloyDB Omni di server yang Anda kontrol.
Server database target, yang menjalankan versi utama AlloyDB Omni yang sama dengan cadangan yang ingin Anda pulihkan. Untuk mengetahui informasi selengkapnya tentang cara menginstal AlloyDB Omni, lihat Menginstal AlloyDB Omni.
Repositori cadangan pgBackRest yang berisi setidaknya satu cadangan database AlloyDB Omni sumber.
Kapasitas disk yang cukup di server target untuk menyimpan database yang dipulihkan.
Ringkasan
Untuk melakukan pemulihan AlloyDB Omni menggunakan pgBackRest, jalankan
perintah pgbackrest restore. Parameter yang Anda berikan ke perintah bervariasi bergantung pada situasi Anda.
Secara umum, Anda menjalankan perintah pgbackrest restore dengan flag yang memberikan informasi berikut:
- Lokasi file
pgbackrest.confAnda. - Nama repositori cadangan pgBackRest yang ingin Anda pulihkan. Repositori ini diberi nama dan ditentukan dalam file
pgbackrest.conf. - Lokasi di sistem file lokal untuk menulis data yang dipulihkan.
- ID cadangan atau point in time tertentu yang ingin Anda pulihkan.
Saat menjalankan perintah pgbackrest restore dalam container, ingatlah untuk menggunakan jalur sistem file dari sudut pandang container. Misalnya, jalur ke direktori data AlloyDB Omni Anda selalu /var/lib/postgresql/data, terlepas dari lokasinya di server host Anda. Untuk mengetahui informasi selengkapnya, lihat
Catatan tentang jalur sistem file.
Melakukan pemulihan point-in-time
Contoh ini memulihkan data dari repositori pgBackRest, dengan memberi nama point in time tertentu untuk dipulihkan. Jika Anda telah menentukan beberapa repositori dalam file pgbackrest.conf lingkungan target, pgBackRest akan memilih repositori yang akan dipulihkan berdasarkan ketersediaan, kecepatan yang diharapkan, dan faktor lainnya.
Contoh ini mengasumsikan hal berikut:
Anda memiliki file
pgbackrest.confyang terletak di tingkat atas direktori data AlloyDB Omni target Anda. Hal ini membuat file tersedia untukpgbackrestdalam container sebagai/var/lib/postgresql/data.Anda telah mengaktifkan pencadangan berkelanjutan dengan konfigurasi pgBackRest Anda.
Di lingkungan target, lakukan pemulihan PITR, dengan menentukan stempel waktu untuk dipulihkan:
Docker
docker exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restoreGanti kode berikut:
CONTAINER_NAME: nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.STANZA: stanza konfigurasi, yang ditentukan oleh filepgbackrest.conf, untuk diterapkan ke pemulihan ini—misalnya,omni.TIMESTAMP: waktu untuk dipulihkan—misalnya,2024-02-22 19:50:00.
Podman
podman exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restoreGanti kode berikut:
CONTAINER_NAME: nama yang Anda tetapkan ke container AlloyDB Omni saat Anda menginstalnya—misalnya,my-omni.STANZA: stanza konfigurasi, yang ditentukan oleh filepgbackrest.conf, untuk diterapkan ke pemulihan ini—misalnya,omni.TIMESTAMP: waktu untuk dipulihkan—misalnya,2024-02-22 19:50:00.
Di lingkungan target, hentikan container menggunakan perintah berikut:
Docker
docker container stop CONTAINER_NAMEPodman
podman container stop CONTAINER_NAMEGanti nama subdirektori
datadari direktori data Anda, sebagai tindakan pencegahan keamanan:cd DATA_DIRsudo mv data data-OLDGanti
DATA_DIRdengan jalur sistem file ke direktori data AlloyDB Omni Anda.Pindahkan data yang dipulihkan ke tempatnya, dan bersihkan
postgresql.auto.conf:sudo mv data-RESTORED datasudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.confMulai container AlloyDB Omni dengan server database:
Docker
docker container start CONTAINER_NAMEPodman
podman container start CONTAINER_NAME
Sekarang Anda dapat terhubung ke database menggunakan psql dan mengonfirmasi bahwa data telah dipulihkan seperti yang Anda harapkan. Jika demikian, Anda dapat menghapus salinan data-OLD
dari subdirektori data yang Anda buat sebelumnya.
Untuk mengetahui informasi selengkapnya tentang PITR di pgBackRest, lihat Pemulihan Point-in-Time.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan
file pgbackrest.conf untuk digunakan dengan AlloyDB Omni, lihat Menyiapkan pgBackRest untuk AlloyDB Omni.
Opsi lain
Perintah pgbackrest restore sangat fleksibel, dengan berbagai opsi dan fitur yang dapat Anda kontrol dengan meneruskan opsi command line yang berbeda. Contoh ini meliputi:
- Membatasi pemulihan hanya ke file yang diubah.
- Hanya memulihkan database yang dipilih.
Untuk panduan lengkap tentang cara melakukan pemulihan di pgBackRest, lihat Memulihkan.