Configure para alta disponibilidade
Esta página descreve como configurar uma instância de banco de dados Lakebase para alta disponibilidade ao habilitar instâncias secundárias legíveis.
Visualização
Esse recurso está em Public Preview nas seguintes regiões: us-east-1
, us-west-2
, eu-west-1
, ap-southeast-1
, ap-southeast-2
, eu-central-1
, us-east-2
, ap-south-1
.
Para ativar a alta disponibilidade, especifique nós adicionais como parte de uma instância de banco de dados. Se o compute primário se tornar insalubre ou indisponível, um nó de alta disponibilidade será utilizado para executar o failover, e o nó secundário será promovido a primário.
O senhor também pode ativar secundários legíveis, em que os nós de alta disponibilidade podem atender a cargas de trabalho somente leitura usando um endpoint de DNS separado (instance-ro-{uuid}
em comparação com instance-{uuid}
).
Habilite a instância do banco de dados para alta disponibilidade
Se você definir o número de nós de alta disponibilidade como um, os secundários de alta disponibilidade e legíveis serão desativados. Caso contrário, você tem um nó primário e os demais são nós de alta disponibilidade. O número máximo de nós de alta disponibilidade é três por instância de banco de dados.
Especifique o número de nós de alta disponibilidade ao criar sua instância de banco de dados. Consulte Criar uma instância de banco de dados.
Execute os seguintes passos para modificar a instância do banco de dados usando a interface do usuário ou API.
- UI
- curl
- Python SDK
- CLI
- Clique em Computação na barra lateral do workspace.
- Clique em Database instances (Instâncias de banco de dados ) tab.
- Selecione a instância do banco de dados que você deseja atualizar.
- Clique em Editar no canto superior direito.
- Digite o valor do tamanho do nó do pool de HA (incluindo o primário) .
- Ative Ativar secundários legíveis .
- Clique em Salvar .
curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{ “node_count”: 3, “enable_readable_secondaries” : true}'
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance
# Initialize the Workspace client
w = WorkspaceClient()
# Create a database instance with high availability
instance = w.database.create_database_instance(
DatabaseInstance(
name="my-database-instance",
capacity="CU_1",
node_count=3, # Set the number of high availability nodes (including primary)
)
)
print(f"Created database instance: {instance.name}")
print(f"Connection endpoint: {instance.read_write_dns}")
# Create a database instance
databricks database create-database-instance my-database-instance \
--capacity CU_1 \
--node-count 3
resiliência de computação
Com os nós de alta disponibilidade configurados, o nó principal da sua instância de banco de dados é protegido pela alta disponibilidade. Se o nó primário ficar indisponível, a instância do banco de dados automaticamente o transfere para um nó secundário, promovendo-o como o novo nó primário. Como os nós do compute não têm estado, as falhas não afetam os dados e as cadeias de conexão permanecem inalteradas. A indisponibilidade é resolvida em segundos ou minutos, dependendo do tipo de falha. No entanto, seu aplicativo deve ser configurado para lidar com breves desconexões e se reconectar automaticamente.
Os nós secundários em sua instância de banco de dados também são recuperados automaticamente em minutos quando ocorrem problemas. Se o senhor ativar os secundários legíveis, a Databricks recomenda que tenha pelo menos três nós de alta disponibilidade, caso o failover primário afete a conexão somente de leitura. Seu aplicativo ainda precisa de um mecanismo de reconexão para lidar com o breve tempo de inatividade.
Limitações
O desempenho leva tempo para se recuperar. Inicialmente, as consultas podem ser executadas mais lentamente até serem reconstruídas, pois o novo nó primário não tem dados específicos da sessão e um cache local para dados acessados com frequência.
- A replicação entre regiões não é suportada. No caso de uma interrupção de energia em toda a região, a disponibilidade depende de o provedor cloud restaurar o serviço para a região afetada.