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 langkah-langkah berikut:
Pasang volume eksternal (
DataDisk) ke PG_DATA_DIR di semua node database yang disediakan dalam orkestrator.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 lingkungan Google Cloud , 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 yang dapat terjadi sebelum failover terjadi. Nilai defaultnya adalah3. Nilai minimum adalah0, tetapi jika nilai disetel 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 defaultnya adalah3. Nilai minimum adalah0, tetapi jika nilai disetel 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 defaultnya adalah30. Nilai minimum 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. Misalnya,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 defaultnya adalah50. Nilai minimum yang didukung juga50. Untuk informasi selengkapnya, lihat Referensimax_connectionsPostgreSQL.(Opsional)
MAX_WAL_SIZE: ukuran maksimum untuk memungkinkan Write-Ahead-Log (WAL) bertambah selama titik pemeriksaan otomatis. Nilai defaultnya adalah1GB. Untuk mengetahui informasi selengkapnya, lihat referensimax_wal_sizePostgreSQL.(Opsional)
MAX_WORKER_PROCESSES: jumlah maksimum pekerja yang dapat dimulai oleh satuGatheratauGather Merge. Nilai defaultnya adalah64. Untuk mengetahui informasi selengkapnya, lihat referensimax_worker_processesPostgreSQL.(Opsional)
LOG_CONNECTIONS: menentukan apakah koneksi ke server PostgreSQL Anda dicatat atau tidak. Nilai defaultnya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensilog_connectionsPostgreSQL.(Opsional)
LOG_DISCONNECTS: menentukan apakah penghentian sesi PostgreSQL dicatat dalam log. Nilai defaultnya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensilog_disconnectionsPostgreSQL.(Opsional)
LOG_HOSTNAME: menentukan apakah nama host dicatat selain IP untuk host yang terhubung. Nilai defaultnya adalahon. Untuk mengetahui informasi selengkapnya, lihat referensilog_hostnamePostgreSQL.(Opsional)
LOG_STATEMENT: menentukan pernyataan SQL mana yang dicatat ke dalam log. Nilai defaultnya adalahnone. Untuk informasi selengkapnya, lihat Referensilog_statementPostgreSQL.(Opsional)
HUGE_PAGES: menentukan apakah halaman besar diminta untuk area memori bersama utama. Nilai defaultnya adalahoff. Untuk mengetahui informasi selengkapnya, lihat referensihuge_pagesPostgreSQL.(Opsional)
TCP_KEEPALIVES_IDLE: jumlah waktu, dalam detik, tanpa aktivitas jaringan sebelum OS mencoba mengirim pesan TCPkeepaliveke klien. Nilai defaultnya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensitcp_keepalives_idlePostgreSQL.(Opsional)
TCP_KEEPALIVES_INTERVAL: jumlah waktu, dalam detik, sebelum pesan TCPkeepaliveyang belum dikonfirmasi oleh klien harus dikirim ulang. Nilai defaultnya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensitcp_keepalives_intervalPostgreSQL.(Opsional)
TCP_KEEPALIVES_COUNT: jumlah pesan TCPkeepaliveyang dapat hilang sebelum koneksi server ke klien dianggap tidak aktif. Nilai defaultnya adalah10. Untuk mengetahui informasi selengkapnya, lihat referensitcp_keepalives_countPostgreSQL.(Opsional)
ENVIRONMENT_TYPE: menentukan lingkungan tempat cluster disiapkan—onpremataugcp.(Opsional)
VIRTUAL_IP: alamat IP virtual yang digunakan oleh load balancer. Jika Anda menentukandbLoadBalancerOptions, parameter ini wajib diisi. Untuk mengetahui informasi selengkapnya, lihat Mengelola ketersediaan tinggi�.(Opsional)
VIRTUAL_IP_INTERFACE: antarmuka jaringan tempatVIRTUAL_IPdikonfigurasi. Nilai defaultnya adalaheth0.
Buat cluster Anda
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 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.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.
Hapus cluster Anda
Untuk menghapus cluster, pilih tab yang sesuai dengan lingkungan Anda dan ikuti petunjuknya.
Ansible
Untuk menghapus cluster menggunakan Ansible, selesaikan langkah-langkah 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 penonaktifan gagal karena inkonsistensi 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
pengelola untuk mengabaikan error selama proses penonaktifan 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.