Alur kerja berikut menjelaskan langkah-langkah yang digunakan untuk meng-clone:
- Buat dan terapkan file manifes
DBCluster
di cluster database target dengan parameterlivenessProbe
dinonaktifkan. - Buat dan konfigurasi file
pgbackrest.conf
untuk mengakses cadangan Cloud Storage. - Gunakan perintah
pgBackRest
untuk memverifikasi bahwa Anda dapat mengakses cadangan sumber. - Gunakan perintah
pgBackRest
untuk 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
BackupPlan
untuk 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. Setelah pemulihan selesai, konfigurasi ulang parameter livenessProbe
.
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: standard
Ganti kode berikut:
DB_CLUSTER_NAME
: nama cluster database ini—misalnya,my-db-cluster
.ENCODED_PASSWORD
: sandi login database untuk peran penggunapostgres
default, 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 menetapkancpu
ke2
sebelumnya dalam manifes ini, sebaiknya tetapkanmemory
ke16Gi
.DISK_SIZE
: ukuran disk per instance database—misalnya,10Gi
.
Terapkan file manifes:
kubectl apply -f DBCLUSTER_FILENAME
Ganti kode berikut:
- DBCLUSTER_FILENAME: nama file manifes
DBCluster
yang 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=<var>DB_CLUSTER_NAME</var>, alloydbomni.internal.dbadmin.goog/task-type=database"
Respons mencakup nama pod database cluster.
Login ke pod:
kubectl exec -ti DATABASE_POD_NAME -- /bin/bash
Ganti kode berikut:
- DATABASE_POD_NAME: nama pod cluster database dari langkah sebelumnya.
Hentikan pod sebelum memperbarui file konfigurasi
pgBackRest
:supervisorctl.par stop postgres
Buat file konfigurasi
pgBackRest
untuk 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=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=auto
Ganti kode berikut:
GCS_SOURCE_BACKUP_BUCKET_NAME
: nama bucket Cloud Storage yang Anda buat saat membuat file manifes resourceBackupPlan
untuk cluster database sumber. Ini bukan URL lengkap ke bucket; jangan menambahkan awalangs://
ke nama bucket.GCS_SOURCE_BACKUP_BUCKET_PATH
: jalur direktori tempat AlloyDB Omni Operator menulis cadangan, dalam bucket Cloud Storage untuk cluster database sumber. Jalur harus absolut, dimulai dengan/
.
repo1-gcs-key-type
ditetapkan keauto
untuk menggunakan akun layanan instance. Untuk mengetahui informasi selengkapnya tentang opsi lain, lihat Opsi Jenis Kunci Repositori GCS.
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 info
Berikut 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=info
Memulihkan 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 postgres
Setelah 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.
Mengonfigurasi cluster database
Setelah meng-clone cluster database, konfigurasikan spesifikasi cluster database Anda. Yang paling penting, jangan lupa aktifkan parameter livenessProbe
dengan perintah berikut:
kubectl patch dbcluster DBCLUSTER_FILENAME --type merge -p '{"spec":{"primarySpec":{"availabilityOptions":{"livenessProbe":"Enabled"}}}}'