Halaman ini menunjukkan cara melindungi data dengan mengonfigurasi AlloyDB Omni agar berfungsi dengan Barman, server pencadangan database open source.
Anda dapat melindungi data AlloyDB Omni menggunakan teknologi pencadangan database apa pun yang berfungsi dengan PostgreSQL. Misalnya, Anda dapat mengonfigurasi AlloyDB Omni untuk mengizinkan koneksi dari server Barman yang Anda kontrol. Hal ini memungkinkan server Barman melakukan pencadangan berkelanjutan data yang disimpan di server AlloyDB Omni Anda.
Setelah mengonfigurasi server Barman dan AlloyDB Omni agar dapat bekerja sama, Anda kemudian dapat menjalankan perintah Barman untuk menyelesaikan berbagai tugas perlindungan data dan disaster recovery, termasuk yang berikut ini:
- Buat cadangan data Anda sesuai permintaan.
- Siapkan streaming WAL sinkron dari perubahan data Anda ke server cadangan.
- Memulihkan dari cadangan tertentu.
- Lakukan pemulihan point-in-time.
Untuk informasi selengkapnya tentang pengoperasian Barman, lihat manual Barman.
Sebelum memulai
Sebelum mengonfigurasi AlloyDB Omni agar berfungsi dengan Barman, Anda memerlukan hal berikut:
AlloyDB Omni diinstal dan berjalan di server yang Anda kontrol.
Barman diinstal di server terpisah. Server tempat Anda menginstal Barman harus dapat berkomunikasi dengan server AlloyDB Omni melalui TCP.
Mengonfigurasi AlloyDB Omni agar berfungsi dengan Barman
Untuk menyiapkan server AlloyDB Omni agar berfungsi dengan Barman, jalankan perintah berikut di server tempat Anda menginstal AlloyDB Omni.
Buat pengguna database
barman
, dengan hak istimewa yang sesuai:docker exec CONTAINER_NAME psql -h localhost -U postgres -c " CREATE USER barman; GRANT EXECUTE ON FUNCTION pg_backup_start(text, boolean) to barman; GRANT EXECUTE ON FUNCTION pg_backup_stop(boolean) to barman; GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman; GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman; GRANT pg_read_all_settings TO barman; GRANT pg_read_all_stats TO barman; CREATE USER streaming_barman WITH REPLICATION; "
Tambahkan baris berikut di file
DATA_DIR/pg_hba.conf
sebelum barishost all all all scram-sha-256
yang ada dalam file:host all barman BARMAN_IP/32 AUTHN_METHOD host replication streaming_barman BARMAN_IP/32 AUTHN_METHOD
Ganti kode berikut:
DATA_DIR
: jalur sistem file yang digunakan untuk direktori data AlloyDB Omni.BARMAN_IP
: alamat IP server Barman.AUTHN_METHOD
: metode autentikasi PostgreSQL yang diharapkan server AlloyDB untuk PostgreSQL dari server Barman. Sebaiknya gunakan salah satu nilai berikut:Untuk mengizinkan server Barman melakukan autentikasi tanpa sandi, gunakan
trust
.Untuk mewajibkan sandi dari server Barman, gunakan
scram-sha-256
.
Tambahkan baris berikut ke file
DATA_DIR/postgresql.conf
:archive_command='/bin/true' archive_mode=on listen_addresses='*' wal_level='replica'
Mulai ulang layanan AlloyDB Omni:
docker restart CONTAINER_NAME
Ganti
CONTAINER_NAME
dengan nama yang Anda tetapkan ke penampung AlloyDB Omni saat menginstalnya.Pastikan semua parameter yang diperlukan telah ditetapkan dengan benar dengan menjalankan perintah berikut:
docker exec CONTAINER_NAME psql -h localhost -U postgres -c " SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'listen_addresses', 'wal_level') ORDER BY name; "
Outputnya adalah sebagai berikut:
name | setting ------------------|----------- archive_command | /bin/true archive_mode | on listen_addresses | * wal_level | replica (4 rows)
Menyiapkan server pencadangan Barman
Untuk menyiapkan dan mengonfigurasi Barman agar berfungsi dengan server AlloyDB Omni, jalankan perintah berikut di server Barman.
Pastikan koneksi replikasi streaming berfungsi:
psql -h DATABASE_IP -U streaming_barman -c "IDENTIFY_SYSTEM" replication=1
Outputnya mirip dengan hal berikut ini:
systemid | timeline | xlogpos | dbname ---------------------+----------+------------+-------- 7265722823667040273 | 1 | 0/1F0AFCD0 | (1 row)
Pastikan Barman dapat terhubung ke server AlloyDB Omni sebagai pengguna database
barman
.psql -t -h DATABASE_IP -U barman -d postgres -c "SELECT 'Connected as: '||current_user"
Ganti
DATABASE_IP
dengan alamat IP server AlloyDB Omni Anda.Outputnya mirip dengan hal berikut ini:
Connected as: barman
Konfigurasi server cadangan Barman sesuai kebutuhan dan preferensi Anda.
Konfigurasi Anda harus menyertakan setelan berikut:
- Tetapkan
conninfo
untuk terhubung ke database AlloyDB Omnipostgres
sebagai penggunabarman
. - Tetapkan
streaming_conninfo
untuk menggunakan penggunastreaming_barman
. - Konfigurasikan perintah lain yang diperlukan untuk mengaktifkan streaming WAL, seperti yang diarahkan oleh dokumentasi Barman.
Contoh minimal namun lengkap berikut mengubah contoh konfigurasi streaming dari dokumentasi Barman:
[CONFIGURATION_TAG] description = "Backup settings for my AlloyDB Omni server" conninfo = host=DATABASE_IP user=barman dbname=postgres streaming_conninfo = host=DATABASE_IP user=streaming_barman backup_method = postgres streaming_archiver = on slot_name = barman
Ganti kode berikut:
CONFIGURATION_TAG
: tag singkat untuk mengidentifikasi konfigurasi server ini saat menjalankan perintahbarman
—misalnya,omni
.DATABASE_IP
: alamat IP server AlloyDB Omni Anda.
- Tetapkan
Beralihlah ke pengguna
barman
.sudo su - barman
Gunakan perintah
barman receive-wal
untuk membuat slot replikasi, lalu mulai menerima aliran WAL dari server database:barman receive-wal --create-slot CONFIGURATION_TAG
barman receive-wal CONFIGURATION_TAG &
Ganti
CONFIGURATION_TAG
dengan tag konfigurasi yang Anda pilih di langkah sebelumnya.
Barman kini dikonfigurasi untuk berfungsi dengan server AlloyDB Omni Anda. Untuk memeriksa status replikasi, membuat cadangan manual, dan melakukan tugas lainnya, lihat Perintah umum.
Misalnya, untuk membuat pencadangan manual, jalankan perintah barman backup
.