Anda dapat menentukan konfigurasi instance read pool di file manifes instance database. Setiap instance read pool memerlukan pembuatan file manifes yang unik. Anda dapat men-deploy beberapa instance read pool, dengan total hingga 20 node read pool per cluster database.
Setiap instance read pool menempati jumlah penyimpanan yang sama dengan instance yang direplikasi.
Membuat instance read pool yang direplikasi secara asinkron
Untuk membuat instance read pool yang direplikasi secara asinkron AlloyDB Omni, selesaikan langkah-langkah berikut:
Buat manifes instance database untuk menentukan jenis instance read pool:
DBInstance: metadata: name: READ_POOL_INSTANCE_NAME spec: instanceType: ReadPool nodeCount: READ_POOL_NODE_COUNT readPoolPort: READ_POOL_PORT dbcParent: name: DB_CLUSTER_NAMEGanti kode berikut:
READ_POOL_INSTANCE_NAME: nama untuk resource ini—misalnya,read-pool-instance-1.DB_CLUSTER_NAME: nama cluster database tempat instance berada.READ_POOL_NODE_COUNT: (Opsional) jumlah node dalam instance read pool. Hal ini menentukan kapasitas komputasi keseluruhan instance. Anda dapat memiliki total maksimum 20 node read pool per cluster database.READ_POOL_PORT: (Opsional) port pada load balancer (VIP) untuk merutekan traffic baca ke instance read pool ini. Nilai defaultnya adalah5434.
Terapkan spesifikasi
DBInstance.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPECIFICATION_PATH" -r "DBINSTANCE_SPECIFICATION"Ganti variabel berikut:
DEPLOYMENT_SPECIFICATION_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.DBINSTANCE_SPECIFICATION: jalur ke file manifesDBInstanceyang Anda buat di langkah sebelumnya.
Ansible
ansible-playbook DBINSTANCE_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION_PATH" \ -e resource_spec="DBINSTANCE_SPECIFICATION"Ganti variabel berikut:
DBINSTANCE_PLAYBOOK: jalur ke playbook yang Anda buat untuk spesifikasiDBInstance.DEPLOYMENT_SPECIFICATION_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.DBINSTANCE_SPECIFICATION: jalur ke file manifesDBInstanceyang Anda buat di langkah sebelumnya.
Memverifikasi status instance
Untuk memverifikasi ketersediaan instance read pool, dapatkan status resource DBInstance:
alloydbctl
alloydbctl get -d "DEPLOYMENT_SPECIFICATION_PATH" -t DBInstance -n "READ_POOL_INSTANCE_NAME" -o yamlGanti variabel berikut:
DEPLOYMENT_SPECIFICATION_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.READ_POOL_INSTANCE_NAME: nama instance read pool yang Anda tentukan dalam manifes.
Ansible
Jalankan playbook google.alloydbomni_orchestrator.status. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan status cluster.
ansible-playbook STATUS_PLAYBOOK_PATH -i "DEPLOYMENT_SPECIFICATION_PATH" \
-e resource_type="DBInstance" -e resource_name="READ_POOL_INSTANCE_NAME"Ganti variabel berikut:
STATUS_PLAYBOOK_PATH: jalur ke playbook yang Anda buat untuk mendapatkan status cluster.DEPLOYMENT_SPECIFICATION_PATH: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.READ_POOL_INSTANCE_NAME: nama instance read pool yang Anda tentukan dalam manifes.
Periksa bagian .status.conditions dari respons untuk hal berikut:
- Jika status kondisi
Availableadalahtrue, hal ini menunjukkan bahwa instance read pool dapat menayangkan kueri, tetapi mungkin tidak mereplikasi data dari instance database Anda. - Jika status kondisi
Streamingadalahtrue, hal ini menunjukkan bahwa instance read pool terhubung ke instance database Anda dan secara aktif melakukan streaming perubahan.
Saat instance database Anda tidak dapat dijangkau, instance read pool akan terus menayangkan kueri. Dalam hal ini, status ketersediaan akan menjadi true, sedangkan status streaming akan menjadi false.
Setelah Anda menyiapkan instance read pool, semua penyisipan, pembaruan, dan penghapusan ke baris di instance database utama Anda akan dapat dibaca di instance read pool Anda.
Menghubungkan ke instance read pool
Setelah instance read pool menjadi Available, load balancer akan otomatis mengonfigurasi frontend khusus hanya baca yang merutekan traffic ke node read pool.
Untuk melihat endpoint koneksi, periksa status.endpoints di output status DBInstance. Endpoint hanya baca, misalnya, VIP_IP:5434, mendistribusikan kueri hanya baca yang masuk ke semua node yang sehat di read pool.
Untuk terhubung ke instance read pool, gunakan alat klien psql dengan alamat IP dan port dari endpoint:
psql -h VIP_IP -p READ_POOL_PORT -U postgresGanti kode berikut:
VIP_IP: alamat IP endpoint hanya baca.READ_POOL_PORT: port endpoint hanya baca.
Jika Anda mencoba melakukan operasi tulis terhadap endpoint ini, operasi akan langsung gagal dengan error yang menunjukkan bahwa Anda tidak dapat menjalankan penyisipan dalam transaksi hanya baca.
Mengelola instance read pool
Pengorkestrasi RPM mendukung penskalaan dan penghapusan instance read pool secara dinamis tanpa waktu nonaktif cluster.
Menskalakan instance read pool
Untuk menambahkan atau menghapus node dari read pool yang ada, perbarui kolom nodeCount di file manifes DBInstance Anda.
Buka file manifes
DBInstanceAnda dan ubah nilainodeCountuntuk mencerminkan jumlah node yang dipilih.Terapkan manifes yang diperbarui menggunakan metode deployment pilihan Anda, perintah
alloydbctl apply, atau playbook Ansible Anda.
Pengorkestrasi RPM otomatis menyediakan atau menghapus node replika baca, dan load balancer akan diperbarui secara dinamis untuk merutekan traffic ke node yang tersedia di pool.
Menghapus instance read pool
Untuk menghapus instance read pool, gunakan perintah alloydbctl delete:
alloydbctl delete -t DBInstance -n READ_POOL_INSTANCE_NAMEGanti READ_POOL_INSTANCE_NAME dengan nama instance read pool yang ingin Anda hapus.
Saat Anda menghapus instance read pool, pengorkestrasi akan menghentikan layanan replika baca dan membersihkan node. Load balancer akan otomatis menghapus perutean tanpa menyebabkan kebuntuan promosi atau memengaruhi traffic ke instance utama atau standby Anda.