Halaman ini menunjukkan cara meng-clone cluster database di Kubernetes menggunakan cadangan Cloud Storage dari cluster database AlloyDB Omni.
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 konfigurasikan 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 cadangan cluster database sumber Anda disimpan. Ini adalah jalur yang sama dengan yang Anda
gunakan saat membuat resource
BackupPlan
untuk cluster database sumber. - Buat cluster database AlloyDB Omni target. Untuk 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 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 di langkah sebelumnya.
- DBCLUSTER_FILENAME: nama file manifes
Gunakan perintah kubectl describe
untuk memverifikasi bahwa resource cluster database
berada dalam status READY
.
Mengonfigurasi file pgBackRest
Konfigurasikan file pgBackRest
untuk memungkinkan 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 menyertakan 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 mengupdate 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 beri awalan nama bucket dengangs://
.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-type
ditetapkan keauto
untuk menggunakan akun layanan instance. Untuk mengetahui informasi selengkapnya tentang opsi lainnya, lihat Opsi Jenis Kunci Repositori GCS.
Memverifikasi cadangan sumber di cluster database target
Jalankan perintah pgBackRest
untuk memverifikasi bahwa pencadangan 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 lengkap atau memulihkan dari titik waktu dari periode pemulihan.
Memulihkan cadangan di cluster database target
Setelah mengidentifikasi cadangan atau titik waktu yang ingin Anda pulihkan, jalankan
perintah pgBackRest
di cluster database target. Untuk informasi selengkapnya
tentang perintah ini, lihat Perintah
Pemulihan.
Berikut adalah 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 selesai, 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 untuk mengaktifkan parameter livenessProbe
dengan perintah berikut:
kubectl patch dbcluster DBCLUSTER_FILENAME --type merge -p '{"spec":{"primarySpec":{"availabilityOptions":{"livenessProbe":"Enabled"}}}}'