Alur kerja berikut menjelaskan langkah-langkah yang digunakan untuk meng-clone:
- Buat dan terapkan file manifes
DBClusterdi cluster database target dengan parameterlivenessProbedinonaktifkan. - Buat dan konfigurasi file
pgbackrest.confuntuk mengakses cadangan Cloud Storage. - Gunakan perintah
pgBackRestuntuk memverifikasi bahwa Anda dapat mengakses cadangan sumber. - Gunakan perintah
pgBackRestuntuk memulihkan cadangan ke cluster database target.
Sebelum memulai
- Pastikan Anda memiliki akses ke jalur lengkap bucket Cloud Storage tempat backup cluster database sumber Anda disimpan. Ini adalah jalur yang sama yang Anda gunakan saat membuat resource
BackupPlanuntuk cluster database sumber. - Buat cluster database AlloyDB Omni target. Untuk mengetahui informasi selengkapnya tentang cara menginstal AlloyDB Omni di Kubernetes, lihat Membuat cluster database.
- Pastikan Anda login ke database sebagai pengguna
postgres.
Membuat cluster database di cluster database target
Buat cluster database dengan menonaktifkan parameter livenessProbe untuk sementara
selama proses pemulihan selesai.
Buat file manifes resource
DBCluster:apiVersion: v1 kind: Secret metadata: name: db-pw-DB_CLUSTER_NAME type: Opaque data: DB_CLUSTER_NAME: "ENCODED_PASSWORD" --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBCluster metadata: name: DB_CLUSTER_NAME spec: primarySpec: availabilityOptions: livenessProbe: "Disabled" adminUser: passwordRef: name: db-pw-DB_CLUSTER_NAME resources: cpu: CPU_COUNT memory: MEMORY_SIZE disks: - name: DataDisk size: DISK_SIZE storageClass: standardGanti kode berikut:
DB_CLUSTER_NAME: nama cluster database ini—misalnya,my-db-cluster.ENCODED_PASSWORD: sandi login database untuk peran penggunapostgresdefault, yang dienkode sebagai string base64—misalnya,Q2hhbmdlTWUxMjM=untukChangeMe123.CPU_COUNT: jumlah CPU yang tersedia untuk setiap instance database dalam cluster database ini.MEMORY_SIZE: jumlah memori per instance database dari cluster database ini. Sebaiknya tetapkan ini ke 8 gigabyte per CPU. Misalnya, jika Anda menetapkancpuke2sebelumnya dalam manifes ini, sebaiknya tetapkanmemoryke16Gi.DISK_SIZE: ukuran disk per instance database—misalnya,10Gi.
Terapkan file manifes:
kubectl apply -f DBCLUSTER_FILENAMEGanti kode berikut:
- DBCLUSTER_FILENAME: nama file manifes
DBClusteryang dibuat pada langkah sebelumnya.
- DBCLUSTER_FILENAME: nama file manifes
Gunakan perintah kubectl describe untuk memverifikasi bahwa resource cluster database
berada dalam status READY.
Mengonfigurasi file pgBackRest
Konfigurasi file pgBackRest untuk mengizinkan cluster database target mengakses bucket Cloud Storage tempat cadangan sumber berada.
Di cluster database target, temukan detail pod cluster database:
kubectl get pod -l "alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME, alloydbomni.internal.dbadmin.goog/task-type=database"Respons mencakup nama pod database cluster.
Login ke pod:
kubectl exec -ti DATABASE_POD_NAME -- /bin/bashGanti kode berikut:
- DATABASE_POD_NAME: nama pod cluster database dari langkah sebelumnya.
Hentikan pod sebelum memperbarui file konfigurasi
pgBackRest:supervisorctl.par stop postgresBuat file konfigurasi
pgBackRestuntuk mengakses cadangan yang disimpan di Cloud Storage:cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/scripts/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=autoGanti kode berikut:
GCS_SOURCE_BACKUP_BUCKET_NAME: nama bucket Cloud Storage yang Anda buat saat membuat file manifes resourceBackupPlanuntuk cluster database sumber. Ini bukan URL lengkap ke bucket; jangan menambahkan awalangs://ke nama bucket.GCS_SOURCE_BACKUP_BUCKET_PATH: jalur direktori tempat operator AlloyDB Omni menulis cadangan, dalam bucket Cloud Storage untuk cluster database sumber. Jalur harus absolut, dimulai dengan/.
repo1-gcs-key-typeditetapkan keautountuk menggunakan akun layanan instance. Untuk mengetahui informasi selengkapnya tentang opsi lain, lihat Opsi Jenis Kunci Repository Cloud Storage.
Memverifikasi cadangan sumber di cluster database target
Jalankan perintah pgBackRest untuk memverifikasi bahwa cadangan cluster database sumber dapat diakses di cluster database target.
pgbackrest --config-path=/backup --stanza=db --repo=1 infoBerikut adalah contoh respons:
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
full backup: 20240213-231400F
timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
wal start/stop: 000000010000000000000003 / 000000010000000000000003
database size: 38.7MB, database backup size: 38.7MB
repo1: backup set size: 4.6MB, backup size: 4.6MB
incr backup: 20240213-231400F_20240214-000001I
timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 38.7MB, database backup size: 488.3KB
repo1: backup set size: 4.6MB, backup size: 84.2KB
backup reference list: 20240213-231400F
Stempel waktu dalam respons digunakan untuk memulihkan cadangan penuh atau memulihkan dari titik waktu dalam periode pemulihan.
Memulihkan cadangan di cluster database target
Setelah Anda mengidentifikasi cadangan atau titik waktu yang ingin dipulihkan, jalankan perintah
pgBackRest di cluster database target. Untuk mengetahui informasi selengkapnya
tentang perintah ini, lihat Perintah
Restore.
Berikut beberapa contoh perintah pemulihan pgBackRest:
Memulihkan dari cadangan
pgbackrest --config-path=/backup --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=infoMemulihkan dari titik waktu
pgbackrest --config-path=/backup --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Mulai ulang pod
Setelah perintah pemulihan berhasil diselesaikan, Anda dapat memulai proses postgres.
supervisorctl.par start postgresSetelah proses postgres dimulai, Anda dapat terhubung ke instance utama dan
menjalankan kueri untuk memverifikasi bahwa data dipulihkan dari cadangan. Untuk mengetahui informasi
selengkapnya, lihat Menghubungkan ke AlloyDB Omni yang berjalan di
Kubernetes.