Limites
Les limites suivantes s'appliquent :
AlloyDB Omni s'exécute sur le port
5432. La configuration d'un port personnalisé n'est pas compatible.Assurez-vous que toutes les configurations de paramètres de 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 :
Associez un volume externe (
DataDisk) à PG_DATA_DIR sur tous les nœuds de base de données provisionnés dans l'outil d'orchestration.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' Google Cloud environnement, 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-dbcluster.BASE64_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 elle 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 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 la réparation automatique. La valeur par défaut est3. La valeur minimale est0, mais si elle 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 atteintHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDsecondes.(Facultatif)
HEALTHCHECK_PERIOD: nombre de secondes d'attente entre chaque vérification de l'état. La valeur par défaut est30. La valeur minimale est1. La valeur maximale est86400(un jour).CPU_LIMIT: nombre de processeurs à allouer au conteneur de base de données. Exemple :4.MEMORY_LIMIT: quantité de mémoire à allouer au conteneur de base de données. Exemple :32Gi,500Mi.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 autorisée pour la croissance du journal WAL (Write-Ahead-Log) lors des points de contrôle automatiques. La valeur par défaut est1GB. Pour en savoir plus, consultez la référence PostgreSQLmax_wal_size.(Facultatif)
MAX_WORKER_PROCESSES: nombre maximal de workers pouvant être démarré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érence PostgreSQLlog_connections.(Facultatif)
LOG_DISCONNECTS: détermine si les terminaisons de session PostgreSQL sont enregistrées. La valeur par défaut eston. Pour en savoir plus, consultez la référence PostgreSQLlog_disconnections.(Facultatif)
LOG_HOSTNAME: détermine si le nom d'hôte est enregistré 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 enregistré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érence PostgreSQLhuge_pages.(Facultatif)
TCP_KEEPALIVES_IDLE: durée (en secondes) sans activité réseau avant que le système d'exploitation ne 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 qu'un message TCPkeepalivequi n'a pas été accusé réception par le client ne soit retransmis. 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 TCPkeepalivequi peuvent ê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. Si vous définissezdbLoadBalancerOptions, cette option est obligatoire. Pour en savoir plus, consultez Gérer la haute disponibilité.(Facultatif)
VIRTUAL_IP_INTERFACE: interface réseau sur laquelleVIRTUAL_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, procédez comme suit :
Créez un playbook pour les spécifications de votre cluster de bases de données.
- name: Create DBCluster hosts: localhost vars: 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 du système d'exploitation qu'Ansible utilise pour se connecter à vos nœuds AlloyDB Omni.ANSIBLE_SSH_PRIVATE_KEY_FILE: clé privée qu'Ansible utilise 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_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 tenter de forcer la suppression de votre cluster en ajoutant -e force=true à la commande. Cela indique à l'outil d'orchestration d'ignorer les erreurs lors du processus de suppression et de tenter de supprimer autant de ressources que 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.