Limitazioni
Si applicano le seguenti limitazioni:
AlloyDB Omni viene eseguito sulla porta
5432. La configurazione di una porta personalizzata non è supportata.Assicurati che tutte le configurazioni dei parametri del database siano corrette prima di creare il cluster. Una volta creato il cluster, non puoi modificare alcun parametro del database.
Prima di iniziare
Prima di creare il cluster, completa le seguenti operazioni:
Monta un volume esterno (
DataDisk) su PG_DATA_DIR su tutti i nodi del database di cui è stato eseguito il provisioning all'interno dell'orchestratore.Se prevedi di utilizzare
alloydbctlanziché Ansible, assicurati che il pacchettopolicycoreutils-python-utilsrichiesto sia installato su tutte le VM. Per installare questo pacchetto, esegui il seguente comando:sudo dnf install policycoreutils-python-utilsSe utilizzi l'ambiente Google Cloud , imposta
ENVIRONMENT_TYPEsugcp. Dopodiché, devi autenticare il tuo account gcloud CLI eseguendogcloud auth logincome utenteroot. Inoltre, l'account autenticato deve disporre delle seguenti autorizzazioni:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
Prepara le specifiche del cluster
Per creare il cluster, AlloyDB Omni deve sapere come configurarlo. Per creare le specifiche necessarie, crea un file YAML utilizzando il formato
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"
Sostituisci le seguenti variabili:
DBCLUSTER_NAME: il nome del cluster di database. Ad esempio,my-dbcluster.BASE64_PASSWORD: password codificata in base64 utilizzata per l'utente amministratorepostgres.NUM_STANDBY_NODES: il numero di nodi di standby nel cluster. Ad esempio,2.(Facoltativo)
AUTOFAILOVER_TRIGGER_THRESHOLD: numero di volte in cui il controllo di integrità può non riuscire prima che si verifichi un failover. Il valore predefinito è3. Il valore minimo è0, ma se il valore è impostato su0, AlloyDB Omni utilizza il valore predefinito.Si verifica un failover automatico se il controllo di integrità non va a buon fine
AUTOFAILOVER_TRIGGER_THRESHOLDvolte o se la durata cumulativa del controllo di integrità raggiungeHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDsecondi.(Facoltativo)
AUTOHEAL_TRIGGER_THRESHOLD: numero di volte in cui il controllo di integrità può non riuscire prima dell'inizio della riparazione automatica. Il valore predefinito è3. Il valore minimo è0, ma se il valore è impostato su0, AlloyDB Omni utilizza il valore predefinito.Si verifica un ripristino automatico se il controllo di integrità non riesce
AUTOHEAL_TRIGGER_THRESHOLDvolte o se la durata cumulativa del controllo di integrità raggiungeHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDsecondi.(Facoltativo)
HEALTHCHECK_PERIOD: il numero di secondi da attendere tra un controllo di integrità e l'altro. Il valore predefinito è30. Il valore minimo è1. Il valore massimo è86400(un giorno).CPU_LIMIT: il numero di CPU da allocare al container del database. Ad esempio,4.MEMORY_LIMIT: quantità di memoria da allocare al container del database. Ad esempio,32Gi,500Mi.PG_DATA_DIR: percorso host alla directory in cui verranno archiviati i dati del database.(Facoltativo)
MAX_CONNECTIONS: numero massimo di connessioni simultanee al database PostgreSQL. Il valore predefinito è50. Il valore minimo supportato è50. Per maggiori informazioni, consulta il riferimentomax_connectionsdi PostgreSQL.(Facoltativo)
MAX_WAL_SIZE: dimensione massima per consentire la crescita del Write-Ahead-Log (WAL) durante i checkpoint automatici. Il valore predefinito è1GB. Per saperne di più, consulta il riferimentomax_wal_sizedi PostgreSQL.(Facoltativo)
MAX_WORKER_PROCESSES: numero massimo di worker che possono essere avviati da un singoloGatheroGather Merge. Il valore predefinito è64. Per saperne di più, consulta il riferimentomax_worker_processesdi PostgreSQL.(Facoltativo)
LOG_CONNECTIONS: determina se le connessioni al server PostgreSQL vengono registrate o meno. Il valore predefinito èon. Per saperne di più, consulta il riferimentolog_connectionsdi PostgreSQL.(Facoltativo)
LOG_DISCONNECTS: determina se le terminazioni delle sessioni PostgreSQL vengono registrate. Il valore predefinito èon. Per saperne di più, consulta il riferimentolog_disconnectionsdi PostgreSQL.(Facoltativo)
LOG_HOSTNAME: determina se il nome host viene registrato oltre all'IP per l'host di connessione. Il valore predefinito èon. Per saperne di più, consulta il riferimentolog_hostnamedi PostgreSQL.(Facoltativo)
LOG_STATEMENT: determina quali istruzioni SQL vengono registrate. Il valore predefinito ènone. Per maggiori informazioni, consulta il riferimentolog_statementdi PostgreSQL.(Facoltativo)
HUGE_PAGES: determina se vengono richieste pagine enormi per l'area di memoria condivisa principale. Il valore predefinito èoff. Per saperne di più, consulta il riferimentohuge_pagesdi PostgreSQL.(Facoltativo)
TCP_KEEPALIVES_IDLE: quantità di tempo, in secondi, senza attività di rete prima che il sistema operativo tenti di inviare un messaggio TCPkeepaliveal client. Il valore predefinito è10. Per saperne di più, consulta il riferimentotcp_keepalives_idledi PostgreSQL.(Facoltativo)
TCP_KEEPALIVES_INTERVAL: intervallo di tempo, in secondi, prima che un messaggio TCPkeepaliveche non è stato confermato dal client venga ritrasmesso. Il valore predefinito è10. Per saperne di più, consulta il riferimentotcp_keepalives_intervaldi PostgreSQL.(Facoltativo)
TCP_KEEPALIVES_COUNT: numero di messaggi TCPkeepaliveche possono andare persi prima che la connessione del server al client venga considerata inattiva. Il valore predefinito è10. Per saperne di più, consulta il riferimentotcp_keepalives_countdi PostgreSQL.(Facoltativo)
ENVIRONMENT_TYPE: determina l'ambiente in cui è configurato il cluster:onpremogcp.(Facoltativo)
VIRTUAL_IP: indirizzo IP virtuale utilizzato dal bilanciatore del carico. Se definiscidbLoadBalancerOptions, questo campo è obbligatorio. Per saperne di più, vedi Gestire l'alta affidabilità.(Facoltativo)
VIRTUAL_IP_INTERFACE: interfaccia di rete in cui è configuratoVIRTUAL_IP. Il valore predefinito èeth0.
Crea il cluster
Per creare il cluster, seleziona la scheda corrispondente al tuo ambiente e segui le istruzioni.
Ansible
Per creare il cluster, completa le seguenti istruzioni:
Crea un playbook per le specifiche del cluster di database.
- 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.bootstrapSostituisci le seguenti variabili:
ANSIBLE_USER: utente del sistema operativo utilizzato da Ansible per accedere ai nodi di AlloyDB Omni.ANSIBLE_SSH_PRIVATE_KEY_FILE: la chiave privata utilizzata da Ansible per connettersi ai nodi AlloyDB Omni utilizzando SSH.
Esegui il playbook.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"Sostituisci le seguenti variabili:
DBCLUSTER_PLAYBOOK: il percorso del playbook che hai creato per il cluster di database.DEPLOYMENT_SPEC: percorso della specifica di deployment creata in Installare i componenti di AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: il percorso delle specifiche del cluster.
alloydbctl
Per creare il cluster, esegui questo comando:
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"Sostituisci le seguenti variabili:
DEPLOYMENT_SPEC: percorso della specifica di deployment creata in Installare i componenti di AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: il percorso delle specifiche del cluster.
Elimina il cluster
Per eliminare il cluster, seleziona la scheda corrispondente al tuo ambiente e segui le istruzioni.
Ansible
Per eliminare il cluster utilizzando Ansible, completa i seguenti passaggi:
Crea un playbook denominato
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.deleteEsegui il playbook utilizzando
ansible-playbook. Devi specificareDBClustercomeresource_typee il nome del cluster da eliminare comeresource_name.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
Se il processo di smantellamento non va a buon fine a causa di incoerenze nello stato del cluster (ad esempio, se un nodo non è raggiungibile), puoi tentare di forzare l'eliminazione del cluster aggiungendo -e force=true al comando. In questo modo, l'orchestratore ignora gli errori durante il processo di eliminazione e tenta di rimuovere il maggior numero possibile di risorse.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
Per eliminare il cluster utilizzando alloydbctl, esegui questo comando:
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"Sostituisci le seguenti variabili:
DEPLOYMENT_SPEC: percorso della specifica di deployment creata in Installare i componenti di AlloyDB Omni.DBCLUSTER_NAME: il nome del cluster di database. Ad esempio,my-dbcluster.