Batasan
Batasan berikut berlaku:
AlloyDB Omni berjalan di port
5432. Mengonfigurasi port kustom tidak didukung.Pastikan semua konfigurasi parameter database sudah benar sebelum membuat cluster. Setelah cluster dibuat, Anda tidak dapat mengubah parameter database apa pun.
Sebelum memulai
Sebelum membuat cluster, selesaikan hal berikut:
Memasang volume eksternal (
DataDisk) ke PG_DATA_DIR di semua node database yang disediakan dalam pengatur.Jika Anda berencana menggunakan
alloydbctl, bukan Ansible, pastikan paketpolicycoreutils-python-utilsyang diperlukan telah diinstal di semua VM Anda. Untuk menginstal paket ini, jalankan perintah berikut:sudo dnf install policycoreutils-python-utilsJika Anda menggunakan Google Cloud lingkungan, tetapkan
ENVIRONMENT_TYPEkegcp. Kemudian, Anda harus mengautentikasi akun gcloud CLI dengan menjalankangcloud auth loginsebagai penggunaroot. Selain itu, akun yang diautentikasi harus memiliki izin berikut:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
Menyiapkan spesifikasi cluster
Untuk membuat cluster, AlloyDB Omni harus mengetahui cara mengonfigurasinya. Untuk membuat spesifikasi yang diperlukan, buat file YAML menggunakan format
DBCluster:
Secret:
metadata:
name: db-pw-DBCLUSTER_NAME
spec:
type: Opaque
data:
DBCLUSTER_NAME: BASE64_PASSWORD
---
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
databaseVersion: 18.1.0
mode: ""
availability:
numberOfStandbys: NUM_STANDBY_NODES
enableAutoFailover: true
enableAutoHeal: true
autoFailoverTriggerThreshold: AUTOFAILOVER_TRIGGER_THRESHOLD
autoHealTriggerThreshold: AUTOHEAL_TRIGGER_THRESHOLD
healthcheckPeriodSeconds: HEALTHCHECK_PERIOD
replayReplicationSlotsOnStandbys: false
primarySpec:
adminUser:
passwordRef:
name: db-pw-DBCLUSTER_NAME
resources:
cpu: CPU_LIMIT
memory: MEMORY_LIMIT
disks:
- name: DataDisk
path: PG_DATA_DIR
parameters:
max_connections: "MAX_CONNECTIONS"
max_wal_size: "MAX_WAL_SIZE"
max_worker_processes: "MAX_WORKER_PROCESSES"
log_connections: "LOG_CONNECTIONS"
log_disconnections: "LOG_DISCONNECTS"
log_hostname: "LOG_HOSTNAME"
log_statement: "LOG_STATEMENT"
huge_pages: "HUGE_PAGES"
tcp_keepalives_idle: "TCP_KEEPALIVES_IDLE"
tcp_keepalives_interval: "TCP_KEEPALIVES_INTERVAL"
tcp_keepalives_count: "TCP_KEEPALIVES_COUNT"
dbLoadBalancerOptions:
DB_LOAD_BALANCER_TYPE:
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
Ganti variabel berikut:
DBCLUSTER_NAME: nama cluster database Anda. Contoh,my-dbcluster.BASE64_PASSWORD: sandi berenkode base64 yang digunakan untuk pengguna administratorpostgres.NUM_STANDBY_NODES: jumlah node standby di cluster Anda. Contoh,2.(Opsional)
AUTOFAILOVER_TRIGGER_THRESHOLD: jumlah kegagalan health check sebelum failover terjadi. Nilai default-nya adalah3. Nilai minimumnya adalah0, tetapi jika nilai ditetapkan ke0, AlloyDB Omni akan menggunakan nilai default.Failover otomatis terjadi jika health check gagal
AUTOFAILOVER_TRIGGER_THRESHOLDkali atau jika durasi kumulatif health check mencapaiHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDdetik.(Opsional)
AUTOHEAL_TRIGGER_THRESHOLD: jumlah kegagalan health check sebelum pemulihan otomatis dimulai. Nilai default-nya adalah3. Nilai minimumnya adalah0, tetapi jika nilai ditetapkan ke0, AlloyDB Omni akan menggunakan nilai default.Pemulihan otomatis terjadi jika health check gagal
AUTOHEAL_TRIGGER_THRESHOLDkali atau jika durasi kumulatif health check mencapaiHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDdetik.(Opsional)
HEALTHCHECK_PERIOD: jumlah detik untuk menunggu di antara setiap health check. Nilai default-nya adalah30. Nilai minimumnya adalah1. Nilai maksimumnya adalah86400(satu hari).CPU_LIMIT: jumlah CPU yang akan dialokasikan ke container database. Contoh,4.MEMORY_LIMIT: jumlah memori yang akan dialokasikan ke container database. Contoh,32Gi,500Mi.PG_DATA_DIR: jalur host ke direktori tempat data database akan disimpan.(Opsional)
MAX_CONNECTIONS: jumlah maksimum koneksi serentak ke database PostgreSQL. Nilai default-nya adalah50. Nilai minimum yang didukung juga adalah50. Untuk mengetahui informasi selengkapnya, lihat referensimax_connectionsPostgreSQL.(Opsional)
MAX_WAL_SIZE: ukuran maksimum untuk memungkinkan Write-Ahead-Log (WAL) bertambah selama checkpoint otomatis. Nilai default-nya adalah1GB. Untuk mengetahui informasi selengkapnya, lihat referensimax_wal_sizePostgreSQL.(Opsional)
MAX_WORKER_PROCESSES: jumlah maksimum pekerja yang dapat dimulai oleh satuGatheratauGather Merge. Nilai default-nya adalah64. Untuk mengetahui informasi selengkapnya, lihat referensimax_worker_processesPostgreSQL.(Opsional)
LOG_CONNECTIONS: menentukan apakah koneksi ke server PostgreSQL Anda dicatat atau tidak. Nilai default-nya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensilog_connectionsPostgreSQL.(Opsional)
LOG_DISCONNECTS: menentukan apakah penghentian sesi PostgreSQL dicatat. Nilai default-nya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensilog_disconnectionsPostgreSQL.(Opsional)
LOG_HOSTNAME: menentukan apakah nama host dicatat selain IP untuk host yang terhubung. Nilai default-nya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQLlog_hostname.(Opsional)
LOG_STATEMENT: menentukan pernyataan SQL mana yang dicatat. Nilai default-nya adalahnone. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQLlog_statement.(Opsional)
HUGE_PAGES: menentukan apakah halaman besar diminta untuk area memori bersama utama. Nilai default-nya adalahoff. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQLhuge_pages.(Opsional)
TCP_KEEPALIVES_IDLE: jumlah waktu, dalam detik, tanpa aktivitas jaringan sebelum OS mencoba mengirim pesan TCPkeepaliveke klien. Nilai default-nya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQL.tcp_keepalives_idle(Opsional)
TCP_KEEPALIVES_INTERVAL: jumlah waktu, dalam detik, sebelum pesan TCPkeepaliveyang belum dikonfirmasi oleh klien harus dikirim ulang. Nilai default-nya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQLtcp_keepalives_interval.(Opsional)
TCP_KEEPALIVES_COUNT: jumlah pesan TCPkeepaliveyang dapat hilang sebelum koneksi server ke klien dianggap tidak aktif. Nilai default-nya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensi PostgreSQLtcp_keepalives_count.(Opsional)
ENVIRONMENT_TYPE: menentukan lingkungan tempat cluster disiapkan—onpremataugcp.(Opsional)
VIRTUAL_IP: alamat IP virtual yang digunakan oleh load balancer. Jika Anda menentukandbLoadBalancerOptions, hal ini diperlukan. Untuk mengetahui informasi selengkapnya, lihat Mengelola ketersediaan tinggi.(Opsional)
VIRTUAL_IP_INTERFACE: antarmuka jaringan tempatVIRTUAL_IPdikonfigurasi. Nilai default-nya adalaheth0.
Membuat cluster
Untuk membuat cluster, pilih tab yang sesuai dengan lingkungan Anda dan ikuti petunjuknya.
Ansible
Untuk membuat cluster, selesaikan petunjuk berikut:
Buat playbook untuk spesifikasi cluster database Anda.
- name: Create DBCluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.bootstrapGanti variabel berikut:
ANSIBLE_USER: pengguna OS yang digunakan Ansible untuk login ke node AlloyDB Omni Anda.ANSIBLE_SSH_PRIVATE_KEY_FILE: kunci pribadi yang digunakan Ansible untuk terhubung ke node AlloyDB Omni Anda menggunakan SSH.
Jalankan playbook Anda.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"Ganti variabel berikut:
DBCLUSTER_PLAYBOOK: jalur ke playbook yang Anda buat untuk cluster database Anda.DEPLOYMENT_SPEC: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: jalur ke spesifikasi cluster Anda.
alloydbctl
Untuk membuat cluster, jalankan perintah berikut:
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"Ganti variabel berikut:
DEPLOYMENT_SPEC: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: jalur ke spesifikasi cluster Anda.
Menghapus cluster
Untuk menghapus cluster, pilih tab yang sesuai dengan lingkungan Anda dan ikuti petunjuknya.
Ansible
Untuk menghapus cluster menggunakan Ansible, selesaikan hal berikut:
Buat playbook bernama
teardown.yaml:- name: Tear down AlloyDB Omni cluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.deleteJalankan playbook menggunakan
ansible-playbook. Anda harus menentukanDBClustersebagairesource_typedan nama cluster yang akan dihapus sebagairesource_name.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
Jika proses penghentian gagal karena ketidakkonsistenan dalam status cluster (misalnya, jika node tidak dapat dijangkau), Anda dapat mencoba menghapus cluster secara paksa dengan menambahkan -e force=true ke perintah. Hal ini menginstruksikan pengatur untuk mengabaikan error selama proses penghentian dan mencoba menghapus sebanyak mungkin resource.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
Untuk menghapus cluster menggunakan alloydbctl, jalankan perintah berikut:
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"Ganti variabel berikut:
DEPLOYMENT_SPEC: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.DBCLUSTER_NAME: nama cluster database Anda. Contoh,my-dbcluster.