Beschränkungen
Es gelten folgende Einschränkungen:
AlloyDB Omni wird auf Port
5432ausgeführt. Die Konfiguration eines benutzerdefinierten Ports wird nicht unterstützt.Prüfen Sie, ob alle Datenbankparameterkonfigurationen korrekt sind, bevor Sie den Cluster erstellen. Nachdem Ihr Cluster erstellt wurde, können Sie keine Datenbankparameter mehr ändern.
Hinweis
Führen Sie vor dem Erstellen des Clusters die folgenden Schritte aus:
Stellen Sie ein externes Volume (
DataDisk) auf allen Datenbankknoten, die im Orchestrator bereitgestellt werden, in PG_DATA_DIR bereit.Wenn Sie
alloydbctlanstelle von Ansible verwenden möchten, muss das erforderlichepolicycoreutils-python-utils-Paket auf allen Ihren VMs installiert sein. Führen Sie den folgenden Befehl aus, um dieses Paket zu installieren:sudo dnf install policycoreutils-python-utilsWenn Sie die Google Cloud -Umgebung verwenden, legen Sie
ENVIRONMENT_TYPEaufgcpfest. Anschließend müssen Sie Ihr gcloud CLI-Konto authentifizieren, indem Siegcloud auth loginalsroot-Nutzer ausführen. Außerdem muss das authentifizierte Konto die folgenden Berechtigungen haben:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
Clusterspezifikationen vorbereiten
Damit Ihr Cluster erstellt werden kann, muss AlloyDB Omni wissen, wie er konfiguriert werden soll. Erstellen Sie eine YAML-Datei im Format DBCluster, um die erforderlichen Spezifikationen zu erstellen:
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"
Ersetzen Sie die folgenden Variablen:
DBCLUSTER_NAME: Name Ihres Datenbankclusters. Beispiel:my-dbcluster.BASE64_PASSWORD: Base64-codiertes Passwort für den Administratornutzerpostgres.NUM_STANDBY_NODES: Anzahl der Standby-Knoten in Ihrem Cluster. Beispiel:2.(Optional)
AUTOFAILOVER_TRIGGER_THRESHOLD: Anzahl der Male, die die Systemdiagnose fehlschlagen kann, bevor ein Failover erfolgt. Der Standardwert ist3. Der Mindestwert ist0. Wenn der Wert auf0festgelegt ist, verwendet AlloyDB Omni den Standardwert.Ein automatisches Failover erfolgt, wenn die Systemdiagnose
AUTOFAILOVER_TRIGGER_THRESHOLD-mal fehlschlägt oder die kumulative Dauer der SystemdiagnoseHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDSekunden erreicht.(Optional)
AUTOHEAL_TRIGGER_THRESHOLD: Anzahl der Male, die die Systemdiagnose fehlschlagen kann, bevor die automatische Reparatur beginnt. Der Standardwert ist3. Der Mindestwert ist0. Wenn der Wert auf0festgelegt ist, verwendet AlloyDB Omni den Standardwert.Eine automatische Wiederherstellung erfolgt, wenn die Systemdiagnose
AUTOHEAL_TRIGGER_THRESHOLD-mal fehlschlägt oder wenn die kumulative Dauer der SystemdiagnoseHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDSekunden erreicht.(Optional)
HEALTHCHECK_PERIOD: Die Anzahl der Sekunden, die zwischen den einzelnen Systemdiagnosen gewartet werden soll. Der Standardwert ist30. Der Mindestwert beträgt1. Der Höchstwert ist86400(ein Tag).CPU_LIMIT: Anzahl der CPUs, die dem Datenbankcontainer zugewiesen werden sollen. Beispiel:4.MEMORY_LIMIT: Menge an Arbeitsspeicher, die dem Datenbankcontainer zugewiesen werden soll. Beispiele:32Gi,500MiPG_DATA_DIR: Hostpfad zum Verzeichnis, in dem die Datenbankdaten gespeichert werden.(Optional)
MAX_CONNECTIONS: Maximale Anzahl gleichzeitiger Verbindungen zur PostgreSQL-Datenbank. Der Standardwert ist50. Der unterstützte Mindestwert ist ebenfalls50. Weitere Informationen finden Sie in der PostgreSQL-Referenz zumax_connections.(Optional)
MAX_WAL_SIZE: Die maximale Größe, auf die das Write-Ahead-Log (WAL) während automatischer Prüfpunkte wachsen darf. Der Standardwert ist1GB. Weitere Informationen finden Sie in der PostgreSQL-Referenz zumax_wal_size.(Optional)
MAX_WORKER_PROCESSES: Maximale Anzahl von Workern, die von einem einzelnenGatheroderGather Mergegestartet werden können. Der Standardwert ist64. Weitere Informationen finden Sie in der PostgreSQL-Referenz zumax_worker_processes.(Optional)
LOG_CONNECTIONS: Gibt an, ob Verbindungen zu Ihrem PostgreSQL-Server protokolliert werden. Der Standardwert iston. Weitere Informationen finden Sie in der PostgreSQL-Referenz zulog_connections.(Optional)
LOG_DISCONNECTS: Gibt an, ob PostgreSQL-Sitzungsbeendigungen protokolliert werden. Der Standardwert iston. Weitere Informationen finden Sie in der PostgreSQL-Referenz zulog_disconnections.(Optional)
LOG_HOSTNAME: Gibt an, ob der Hostname zusätzlich zur IP-Adresse des verbindenden Hosts protokolliert wird. Der Standardwert iston. Weitere Informationen finden Sie in der PostgreSQL-Referenz zulog_hostname.(Optional)
LOG_STATEMENT: Legt fest, welche SQL-Anweisungen protokolliert werden. Der Standardwert istnone. Weitere Informationen finden Sie in der PostgreSQL-Referenz zulog_statement.(Optional)
HUGE_PAGES: Gibt an, ob Huge Pages für den Hauptbereich des gemeinsam genutzten Speichers angefordert werden. Der Standardwert istoff. Weitere Informationen finden Sie in der PostgreSQL-Referenz zuhuge_pages.(Optional)
TCP_KEEPALIVES_IDLE: Die Zeit in Sekunden, in der keine Netzwerkaktivität stattfindet, bevor das Betriebssystem versucht, eine TCP-keepalive-Nachricht an den Client zu senden. Der Standardwert ist10. Weitere Informationen finden Sie in der PostgreSQL-Referenz zutcp_keepalives_idle.(Optional)
TCP_KEEPALIVES_INTERVAL: Zeit in Sekunden, bevor eine TCP-keepalive-Nachricht, die vom Client nicht bestätigt wurde, noch einmal gesendet werden sollte. Der Standardwert ist10. Weitere Informationen finden Sie in der PostgreSQL-Referenz zutcp_keepalives_interval.(Optional)
TCP_KEEPALIVES_COUNT: Anzahl der TCP-keepalive-Nachrichten, die verloren gehen können, bevor die Verbindung des Servers zum Client als inaktiv gilt. Der Standardwert ist10. Weitere Informationen finden Sie in der PostgreSQL-Referenz zutcp_keepalives_count.(Optional)
ENVIRONMENT_TYPE: Bestimmt die Umgebung, in der der Cluster eingerichtet wird:onpremodergcp.(Optional)
VIRTUAL_IP: Virtuelle IP-Adresse, die vom Load-Balancer verwendet wird. Wenn SiedbLoadBalancerOptionsdefinieren, ist dies erforderlich. Weitere Informationen finden Sie unter Hochverfügbarkeit verwalten.(Optional)
VIRTUAL_IP_INTERFACE: Netzwerkschnittstelle, auf derVIRTUAL_IPkonfiguriert ist. Der Standardwert isteth0.
Cluster erstellen
Wählen Sie den Tab aus, der Ihrer Umgebung entspricht, und folgen Sie der Anleitung, um Ihren Cluster zu erstellen.
Ansible
Führen Sie die folgenden Schritte aus, um den Cluster zu erstellen:
Erstellen Sie ein Playbook für die Spezifikationen Ihres Datenbankclusters.
- 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.bootstrapErsetzen Sie die folgenden Variablen:
ANSIBLE_USER: Betriebssystemnutzer, den Ansible verwendet, um sich in Ihren AlloyDB Omni-Knoten anzumelden.ANSIBLE_SSH_PRIVATE_KEY_FILE: Der private Schlüssel, den Ansible verwendet, um über SSH eine Verbindung zu Ihren AlloyDB Omni-Knoten herzustellen.
Führen Sie das Playbook aus.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"Ersetzen Sie die folgenden Variablen:
DBCLUSTER_PLAYBOOK: Pfad zum Playbook, das Sie für Ihren Datenbankcluster erstellt haben.DEPLOYMENT_SPEC: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.DBCLUSTER_SPECIFICATIONS: Pfad zu Ihren Clusterspezifikationen.
alloydbctl
Führen Sie den folgenden Befehl aus, um den Cluster zu erstellen.
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"Ersetzen Sie die folgenden Variablen:
DEPLOYMENT_SPEC: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.DBCLUSTER_SPECIFICATIONS: Pfad zu Ihren Clusterspezifikationen.
Cluster löschen
Wenn Sie Ihren Cluster löschen möchten, wählen Sie den Tab aus, der Ihrer Umgebung entspricht, und folgen Sie der Anleitung.
Ansible
So löschen Sie Ihren Cluster mit Ansible:
Erstellen Sie ein Playbook mit dem Namen
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.deleteFühren Sie das Playbook mit
ansible-playbookaus. Sie müssenDBClusteralsresource_typeund den Namen des zu löschenden Clusters alsresource_nameangeben.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
Wenn der Abbauprozess aufgrund von Inkonsistenzen im Clusterstatus fehlschlägt (z. B. wenn ein Knoten nicht erreichbar ist), können Sie versuchen, das Löschen des Clusters zu erzwingen, indem Sie dem Befehl -e force=true hinzufügen. Dadurch wird der Orchestrator angewiesen, Fehler während des Bereinigungsprozesses zu ignorieren und zu versuchen, so viele Ressourcen wie möglich zu entfernen.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
Führen Sie den folgenden Befehl aus, um den Cluster mit alloydbctl zu löschen:
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"Ersetzen Sie die folgenden Variablen:
DEPLOYMENT_SPEC: Pfad zur Bereitstellungsspezifikation, die Sie in AlloyDB Omni-Komponenten installieren erstellt haben.DBCLUSTER_NAME: Name Ihres Datenbankclusters. Beispiel:my-dbcluster.