Limitações
Considere as seguintes limitações:
O AlloyDB Omni é executado na porta
5432. Não é possível configurar uma porta personalizada.Verifique se todas as configurações de parâmetros do banco de dados estão corretas antes de criar o cluster. Depois que o cluster é criado, não é possível modificar nenhum parâmetro de banco de dados.
Antes de começar
Antes de criar o cluster, faça o seguinte:
Monte um volume externo (
DataDisk) em PG_DATA_DIR em todos os nós de banco de dados provisionados no orquestrador.Se você planeja usar
alloydbctlem vez do Ansible, verifique se o pacotepolicycoreutils-python-utilsnecessário está instalado em todas as VMs. Para instalar esse pacote, execute o seguinte comando:sudo dnf install policycoreutils-python-utilsSe você estiver usando o ambiente Google Cloud , defina
ENVIRONMENT_TYPEcomogcp. Em seguida, autentique sua conta da CLI gcloud executandogcloud auth logincomo o usuárioroot. Além disso, a conta autenticada precisa ter as seguintes permissões:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
Preparar especificações de cluster
Para criar o cluster, o AlloyDB Omni precisa saber como configurá-lo. Para criar as especificações necessárias, crie um arquivo YAML usando o 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"
Substitua as seguintes variáveis:
DBCLUSTER_NAME: nome do cluster de banco de dados. Por exemplo,my-dbcluster.BASE64_PASSWORD: senha codificada em base64 usada para o usuário administrador dopostgres.NUM_STANDBY_NODES: número de nós em espera no cluster. Por exemplo,2.(Opcional)
AUTOFAILOVER_TRIGGER_THRESHOLD: número de vezes que a verificação de integridade pode falhar antes de ocorrer um failover. O valor padrão é3. O valor mínimo é0, mas se o valor for definido como0, o AlloyDB Omni usará o valor padrão.Um failover automático ocorre se a verificação de integridade falhar
AUTOFAILOVER_TRIGGER_THRESHOLDvezes ou se a duração cumulativa da verificação de integridade atingirHEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDsegundos.(Opcional)
AUTOHEAL_TRIGGER_THRESHOLD: número de vezes que a verificação de integridade pode falhar antes do início da recuperação automática. O valor padrão é3. O valor mínimo é0, mas se o valor for definido como0, o AlloyDB Omni usará o valor padrão.Uma recuperação automática ocorre se a verificação de integridade falhar
AUTOHEAL_TRIGGER_THRESHOLDvezes ou se a duração cumulativa da verificação de integridade atingirHEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDsegundos.(Opcional)
HEALTHCHECK_PERIOD: número de segundos de espera entre cada verificação de integridade. O valor padrão é30. O valor mínimo é1. O valor máximo é86400(um dia).CPU_LIMIT: número de CPUs a serem alocadas para o contêiner de banco de dados. Por exemplo,4.MEMORY_LIMIT: quantidade de memória a ser alocada para o contêiner do banco de dados. Por exemplo:32Gie500Mi.PG_DATA_DIR: caminho do host para o diretório em que os dados do banco de dados serão armazenados.(Opcional)
MAX_CONNECTIONS: número máximo de conexões simultâneas com o banco de dados PostgreSQL. O valor padrão é50. O valor mínimo aceito também é50. Para mais informações, consulte a referênciamax_connectionsdo PostgreSQL.(Opcional)
MAX_WAL_SIZE: tamanho máximo para permitir que o Write-Ahead-Log (WAL) aumente durante os checkpoints automáticos. O valor padrão é1GB. Para mais informações, consulte a referência domax_wal_sizedo PostgreSQL.(Opcional)
MAX_WORKER_PROCESSES: número máximo de workers que podem ser iniciados por um únicoGatherouGather Merge. O valor padrão é64. Para mais informações, consulte a referência domax_worker_processesdo PostgreSQL.(Opcional)
LOG_CONNECTIONS: determina se as conexões com o servidor PostgreSQL são registradas ou não. O valor padrão éon. Para mais informações, consulte a referência dolog_connectionsdo PostgreSQL.(Opcional)
LOG_DISCONNECTS: determina se as terminações de sessão do PostgreSQL são registradas. O valor padrão éon. Para mais informações, consulte a referência dolog_disconnectionsdo PostgreSQL.(Opcional)
LOG_HOSTNAME: determina se o nome do host será registrado além do IP do host de conexão. O valor padrão éon. Para mais informações, consulte a referêncialog_hostnamedo PostgreSQL.(Opcional)
LOG_STATEMENT: determina quais instruções SQL são registradas. O valor padrão énone. Para mais informações, consulte a referêncialog_statementdo PostgreSQL.(Opcional)
HUGE_PAGES: determina se páginas enormes são solicitadas para a principal área de memória compartilhada. O valor padrão éoff. Para mais informações, consulte a referência dohuge_pagesdo PostgreSQL.(Opcional)
TCP_KEEPALIVES_IDLE: quantidade de tempo, em segundos, sem atividade de rede antes que o SO tente enviar uma mensagem TCPkeepaliveao cliente. O valor padrão é10. Para mais informações, consulte a referência dotcp_keepalives_idledo PostgreSQL.(Opcional)
TCP_KEEPALIVES_INTERVAL: tempo (em segundos) antes que uma mensagemkeepaliveTCP que não foi confirmada pelo cliente seja retransmitida. O valor padrão é10. Para mais informações, consulte a referência dotcp_keepalives_intervaldo PostgreSQL.(Opcional)
TCP_KEEPALIVES_COUNT: número de mensagens TCPkeepaliveque podem ser perdidas antes que a conexão do servidor com o cliente seja considerada inativa. O valor padrão é10. Para mais informações, consulte a referência dotcp_keepalives_countdo PostgreSQL.(Opcional)
ENVIRONMENT_TYPE: determina o ambiente em que o cluster é configurado:onpremougcp.(Opcional)
VIRTUAL_IP: endereço IP virtual usado pelo balanceador de carga. Se você definirdbLoadBalancerOptions, isso será obrigatório. Para mais informações, consulte Gerenciar alta disponibilidade.(Opcional)
VIRTUAL_IP_INTERFACE: interface de rede em queVIRTUAL_IPestá configurado. O valor padrão éeth0.
Crie o cluster
Para criar o cluster, selecione a guia que corresponde ao seu ambiente e siga as instruções.
Ansible
Para criar o cluster, siga estas instruções:
Crie um playbook para as especificações do cluster de banco de dados.
- 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.bootstrapSubstitua as seguintes variáveis:
ANSIBLE_USER: usuário do SO que o Ansible usa para fazer login nos nós do AlloyDB Omni.ANSIBLE_SSH_PRIVATE_KEY_FILE: chave privada usada pelo Ansible para se conectar aos nós do AlloyDB Omni usando SSH.
Execute o manual.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"Substitua as seguintes variáveis:
DBCLUSTER_PLAYBOOK: caminho para o playbook que você criou para o cluster de banco de dados.DEPLOYMENT_SPEC: caminho para a especificação de implantação criada em Instalar componentes do AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: caminho para as especificações do cluster.
alloydbctl
Para criar o cluster, execute o comando a seguir:
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"Substitua as seguintes variáveis:
DEPLOYMENT_SPEC: caminho para a especificação de implantação criada em Instalar componentes do AlloyDB Omni.DBCLUSTER_SPECIFICATIONS: caminho para as especificações do cluster.
Excluir seu cluster
Para excluir o cluster, selecione a guia que corresponde ao seu ambiente e siga as instruções.
Ansible
Para excluir o cluster usando o Ansible, faça o seguinte:
Crie um playbook chamado
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.deleteExecute o playbook usando
ansible-playbook. EspecifiqueDBClustercomoresource_typee o nome do cluster a ser excluído comoresource_name.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
Se o processo de encerramento falhar devido a inconsistências no estado do cluster (por exemplo, se um nó estiver inacessível), tente forçar a exclusão do cluster adicionando -e force=true ao comando. Isso instrui o
orquestrador a ignorar erros durante o processo de desmontagem e tentar remover
o máximo de recursos possível.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
Para excluir o cluster usando alloydbctl, execute o seguinte comando:
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"Substitua as seguintes variáveis:
DEPLOYMENT_SPEC: caminho para a especificação de implantação criada em Instalar componentes do AlloyDB Omni.DBCLUSTER_NAME: nome do cluster de banco de dados. Por exemplo,my-dbcluster.