Limites
Les limites suivantes s'appliquent :
AlloyDB Omni s'exécute sur le port
5432. La configuration d'un port personnalisé n'est pas acceptée.Assurez-vous que toutes les configurations des paramètres de la base de données sont correctes avant de créer votre cluster. Une fois votre cluster créé, vous ne pouvez plus modifier aucun paramètre de base de données.
Avant de commencer
Avant de créer votre cluster, procédez comme suit :
Installez un volume externe (
DataDisk) sur PG_DATA_DIR sur tous les nœuds de base de données provisionnés dans l'orchestrateur.Si vous prévoyez d'utiliser
alloydbctlau lieu d'Ansible, assurez-vous que le packagepolicycoreutils-python-utilsrequis est installé sur toutes vos VM. Pour installer ce package, exécutez la commande suivante :sudo dnf install policycoreutils-python-utilsSi vous utilisez l'environnement Google Cloud , définissez
ENVIRONMENT_TYPEsurgcp. Vous devez ensuite authentifier votre compte gcloud CLI en exécutantgcloud auth loginen tant qu'utilisateurroot. De plus, le compte authentifié doit disposer des autorisations suivantes :compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
Préparer les spécifications du cluster
Pour créer votre cluster, AlloyDB Omni doit savoir comment le configurer. Pour créer les spécifications nécessaires, créez un fichier YAML au 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"
Remplacez les variables suivantes :
DBCLUSTER_NAME: nom de votre cluster de bases de données. Exemple :my-dbclusterBASE64_PASSWORD: mot de passe encodé en base64 utilisé pour l'utilisateur administrateurpostgres.NUM_STANDBY_NODES: nombre de nœuds de secours dans votre cluster. Exemple :2(Facultatif)
AUTOFAILOVER_TRIGGER_THRESHOLD: nombre de fois où la vérification de l'état peut échouer avant qu'un basculement ne se produise. La valeur par défaut est3. La valeur minimale est0, mais si la valeur est définie sur0, AlloyDB Omni utilise la valeur par défaut.Un basculement automatique se produit si la vérification de l'état échoue
AUTOFAILOVER_TRIGGER_THRESHOLDfois ou si la durée cumulée de la vérification de l'état;état atteintHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDsecondes.(Facultatif)
AUTOHEAL_TRIGGER_THRESHOLD: nombre de fois où la vérification de l'état peut échouer avant le début de l'autoréparation. La valeur par défaut est3. La valeur minimale est0, mais si la valeur est définie sur0, AlloyDB Omni utilise la valeur par défaut.Une récupération automatique se produit si la vérification de l'état échoue
AUTOHEAL_TRIGGER_THRESHOLDfois ou si la durée cumulée de la vérification de l'état;état atteintHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDsecondes.(Facultatif)
HEALTHCHECK_PERIOD: nombre de secondes à attendre entre chaque vérification de l'état#39;état. La valeur par défaut est30. La valeur minimale est1. La valeur maximale est de86400(un jour).CPU_LIMIT: nombre de processeurs à allouer au conteneur de base de données. Exemple :4MEMORY_LIMIT: quantité de mémoire à allouer au conteneur de base de données. Par exemple,32Giet500Mi.PG_DATA_DIR: chemin d'accès hôte au répertoire dans lequel les données de la base de données seront stockées.(Facultatif)
MAX_CONNECTIONS: nombre maximal de connexions simultanées à la base de données PostgreSQL. La valeur par défaut est50. La valeur minimale acceptée est également50. Pour en savoir plus, consultez la référencemax_connectionsde PostgreSQL.(Facultatif)
MAX_WAL_SIZE: taille maximale pour permettre au journal WAL (Write-Ahead-Log) de s'étendre lors des points de contrôle automatiques. La valeur par défaut est1GB. Pour en savoir plus, consultez la référencemax_wal_sizede PostgreSQL.(Facultatif)
MAX_WORKER_PROCESSES: nombre maximal de nœuds de calcul pouvant être lancés par un seulGatherouGather Merge. La valeur par défaut est64. Pour en savoir plus, consultez la référencemax_worker_processesde PostgreSQL.(Facultatif)
LOG_CONNECTIONS: détermine si les connexions à votre serveur PostgreSQL sont enregistrées ou non. La valeur par défaut eston. Pour en savoir plus, consultez la référencelog_connectionsde PostgreSQL.(Facultatif)
LOG_DISCONNECTS: détermine si les terminaisons de session PostgreSQL sont consignées. La valeur par défaut eston. Pour en savoir plus, consultez la référencelog_disconnectionsde PostgreSQL.(Facultatif)
LOG_HOSTNAME: détermine si le nom d'hôte est consigné en plus de l'adresse IP de l'hôte de connexion. La valeur par défaut eston. Pour en savoir plus, consultez la référencelog_hostnamede PostgreSQL.(Facultatif)
LOG_STATEMENT: détermine les instructions SQL qui sont consignées. La valeur par défaut estnone. Pour en savoir plus, consultez la référencelog_statementde PostgreSQL.(Facultatif)
HUGE_PAGES: détermine si des pages volumineuses sont demandées pour la zone de mémoire partagée principale. La valeur par défaut estoff. Pour en savoir plus, consultez la référencehuge_pagesde PostgreSQL.(Facultatif)
TCP_KEEPALIVES_IDLE: durée, en secondes, sans activité réseau avant que l'OS tente d'envoyer un message TCPkeepaliveau client. La valeur par défaut est10. Pour en savoir plus, consultez la référencetcp_keepalives_idlede PostgreSQL.(Facultatif)
TCP_KEEPALIVES_INTERVAL: durée (en secondes) avant la retransmission d'un messagekeepaliveTCP qui n'a pas été acquitté par le client. La valeur par défaut est10. Pour en savoir plus, consultez la référencetcp_keepalives_intervalde PostgreSQL.(Facultatif)
TCP_KEEPALIVES_COUNT: nombre de messages TCPkeepalivepouvant être perdus avant que la connexion du serveur au client ne soit considérée comme inactive. La valeur par défaut est10. Pour en savoir plus, consultez la référencetcp_keepalives_countde PostgreSQL.(Facultatif)
ENVIRONMENT_TYPE: détermine l'environnement dans lequel le cluster est configuré (onpremougcp).(Facultatif)
VIRTUAL_IP: adresse IP virtuelle utilisée par l'équilibreur de charge. Obligatoire si vous définissezdbLoadBalancerOptions. Pour en savoir plus, consultez Gérer la haute disponibilité.(Facultatif)
VIRTUAL_IP_INTERFACE: interface réseau oùVIRTUAL_IPest configuré. La valeur par défaut esteth0.
Créer votre cluster
Pour créer votre cluster, sélectionnez l'onglet correspondant à votre environnement et suivez les instructions.
Ansible
Pour créer votre cluster, suivez les instructions ci-dessous :
Créez un playbook pour les spécifications de votre cluster de bases de données.
- 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.bootstrapRemplacez les variables suivantes :
ANSIBLE_USER: utilisateur de l'OS qu'Ansible utilise pour se connecter à vos nœuds AlloyDB Omni.ANSIBLE_SSH_PRIVATE_KEY_FILE: clé privée utilisée par Ansible pour se connecter à vos nœuds AlloyDB Omni à l'aide de SSH.
Exécutez votre playbook.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"Remplacez les variables suivantes :
DBCLUSTER_PLAYBOOK: chemin d'accès au playbook que vous avez créé pour votre cluster de bases de données.DEPLOYMENT_SPEC: chemin d'accès à la spécification de déploiement que vous avez créée dans Installer les composants AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: chemin d'accès aux spécifications de votre cluster.
alloydbctl
Pour créer votre cluster, exécutez la commande suivante.
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"Remplacez les variables suivantes :
DEPLOYMENT_SPEC: chemin d'accès à la spécification de déploiement que vous avez créée dans Installer les composants AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: chemin d'accès aux spécifications de votre cluster.
Supprimer votre cluster
Pour supprimer votre cluster, sélectionnez l'onglet correspondant à votre environnement et suivez les instructions.
Ansible
Pour supprimer votre cluster à l'aide d'Ansible, procédez comme suit :
Créez un playbook nommé
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.deleteExécutez le playbook à l'aide de
ansible-playbook. Vous devez spécifierDBClustercommeresource_typeet le nom du cluster à supprimer commeresource_name.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
Si le processus de suppression échoue en raison d'incohérences dans l'état du cluster (par exemple, si un nœud est inaccessible), vous pouvez essayer de forcer la suppression de votre cluster en ajoutant -e force=true à la commande. Cela indique à l'orchestrateur d'ignorer les erreurs lors du processus de suppression et de tenter de supprimer le plus de ressources possible.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
Pour supprimer votre cluster à l'aide de alloydbctl, exécutez la commande suivante :
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"Remplacez les variables suivantes :
DEPLOYMENT_SPEC: chemin d'accès à la spécification de déploiement que vous avez créée dans Installer les composants AlloyDB Omni.DBCLUSTER_NAME: nom de votre cluster de bases de données. Exemple :my-dbcluster