Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
O Dimensionamento Automático do Lakebase é a versão mais recente do Lakebase, com computação de dimensionamento automático, escala para zero, ramificação e restauração instantânea. Para regiões com suporte, consulte a disponibilidade da região. Se você for um usuário provisionado do Lakebase, consulte Lakebase Provisioned.
Este guia aborda como habilitar e gerenciar a alta disponibilidade para os pontos de extremidade do Lakebase. Para obter informações sobre como a alta disponibilidade funciona e como as instâncias de computação secundárias diferem das réplicas de leitura autônomas, consulte Alta disponibilidade.
Habilitar alta disponibilidade
Para habilitar a alta disponibilidade, defina o tipo de computação e a configuração de HA na interface do usuário ou configure o endpoint por meio da API EndpointGroupSpec.
Pré-requisitos
- A escalabilidade para zero deve ser desativada. Na interface do usuário, defina Escala como zero para Desativado na gaveta de computação de edição. Por meio da API, defina
no_suspension: truena especificação do endpoint (usespec.suspensioncomo máscara de atualização).
interface do usuário
Depois de criar um projeto, clique no link de computação primário do painel do projeto para abrir a gaveta de computação de edição.
Defina o tipo de computação comoalta disponibilidade e, em seguida, escolha uma configuração em alta disponibilidade:
- 2 (1 primário, 1 secundário),
- 3 (1 primário, 2 secundários),
- ou 4 (1 primário, 3 secundários) total de instâncias de computação.
O Lakebase provisiona instâncias de computação secundárias em diferentes zonas de disponibilidade. Depois que todas as instâncias de computação estiverem ativas, o ponto de extremidade realizará failover automaticamente.
SDK do Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
result = w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(
min=2,
max=2,
enable_readable_secondaries=True
)
)
),
update_mask=FieldMask(field_mask=["spec.group"])
).wait()
print(f"Group size: {result.status.group.max}")
print(f"Host: {result.status.hosts.host}")
print(f"Read-only host: {result.status.hosts.read_only_host}")
CLI
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group" \
--json '{
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}'
encurvar
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}' | jq
Configurar o acesso somente leitura a instâncias de computação secundárias
Permitir acesso a instâncias de computação de acesso somente leitura controla se as instâncias de computação secundárias atendem ao tráfego de leitura por meio da -ro cadeia de conexão.
interface do usuário
- Na guia Computação , clique em Editar na computação primária.
- Em Alta disponibilidade, marque ou desmarque a opção Permitir acesso a instâncias de computação em modo somente leitura.
- Clique em Salvar.
SDK do Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
# Get current group size first
current = w.postgres.get_endpoint(name=endpoint_name)
current_size = current.status.group.max
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(
min=current_size,
max=current_size,
enable_readable_secondaries=True # set False to disable
)
)
),
update_mask=FieldMask(field_mask=["spec.group.enable_readable_secondaries"])
).wait()
CLI
# Replace 2 with your current group size
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group.enable_readable_secondaries" \
--json '{
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}'
encurvar
# Replace 2 with your current group size
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group.enable_readable_secondaries" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": {
"min": 2,
"max": 2,
"enable_readable_secondaries": true
}
}
}' | jq
Aviso
Com apenas uma instância de computação secundária e acesso de leitura habilitado, todo o tráfego de leitura na cadeia de conexão -ro é interrompido durante um failover até que uma nova instância seja adicionada. Para acesso de leitura resiliente, configure duas ou mais instâncias de computação secundárias com acesso de leitura habilitado.
Alterar o número de instâncias de computação secundárias
interface do usuário
- Na guia Computação , clique em Editar na computação primária.
- Em Alta disponibilidade, escolha uma nova configuração de computação na lista suspensa (2, 3 ou 4 instâncias computacionais totais).
- Clique em Salvar.
Observação
Para desabilitar a alta disponibilidade, defina o tipo de computação de volta como computação única. Isso remove todas as instâncias de computação secundárias e seu ponto de extremidade retorna a uma configuração de computação única.
SDK do Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import (
Endpoint, EndpointSpec, EndpointType, EndpointGroupSpec, FieldMask
)
w = WorkspaceClient()
endpoint_name = "projects/my-project/branches/production/endpoints/my-endpoint"
# Scale to 3 compute instances (1 primary + 2 secondaries)
w.postgres.update_endpoint(
name=endpoint_name,
endpoint=Endpoint(
name=endpoint_name,
spec=EndpointSpec(
endpoint_type=EndpointType.ENDPOINT_TYPE_READ_WRITE,
group=EndpointGroupSpec(min=3, max=3)
)
),
update_mask=FieldMask(field_mask=["spec.group.min", "spec.group.max"])
).wait()
CLI
# Scale to 3 compute instances (1 primary + 2 secondaries)
databricks postgres update-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
"spec.group.min,spec.group.max" \
--json '{
"spec": {
"group": { "min": 3, "max": 3 }
}
}'
encurvar
curl -X PATCH "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint?update_mask=spec.group.min,spec.group.max" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "projects/my-project/branches/production/endpoints/my-endpoint",
"spec": {
"group": { "min": 3, "max": 3 }
}
}' | jq
Exibir funções e status de alta disponibilidade
A guia Computação mostra cada instância de computação em sua configuração de alta disponibilidade com sua função, status e nível de acesso atuais.
| Coluna | Valores |
|---|---|
| Função | Primário, Secundário |
| Status | Iniciando, Ativo |
| Access | Leitura/gravação (primária), somente leitura (instância de computação secundária com acesso habilitado), Desabilitado (instância de computação secundária sem acesso de leitura) |
O cabeçalho de computação primário também mostra a ID do ponto de extremidade, o intervalo de dimensionamento automático e a contagem secundária (por exemplo 8 ↔ 16 CU · 3 secondaries).
Obter cadeias de conexão
interface do usuário
Clique em Conectar no computador principal para abrir a caixa de diálogo de detalhes da conexão. A lista suspensa Compute inclui ambas as opções de conexão para o ponto de extremidade de alta disponibilidade.
| Opção de computação | string de conexão | Use para |
|---|---|---|
Primary (name) ● Active |
{endpoint-id}.database.{region}.databricks.com |
Todas as gravações e conexões de leitura/gravação |
Secondary (name) ● Active RO |
{endpoint-id}-ro.database.{region}.databricks.com |
Redirecionar leitura para instâncias de computação secundárias |
O -ro cadeia de conexão só estará disponível quando Permitir acesso a instâncias de computação somente leitura estiver habilitado.
SDK do Python
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.postgres.get_endpoint(
name="projects/my-project/branches/production/endpoints/my-endpoint"
)
print(f"Read/write host: {endpoint.status.hosts.host}")
print(f"Read-only host: {endpoint.status.hosts.read_only_host}")
CLI
databricks postgres get-endpoint \
projects/my-project/branches/production/endpoints/my-endpoint \
-o json | jq '{rw_host: .status.hosts.host, ro_host: .status.hosts.read_only_host}'
encurvar
curl -X GET "$DATABRICKS_HOST/api/2.0/postgres/projects/my-project/branches/production/endpoints/my-endpoint" \
-H "Authorization: Bearer $DATABRICKS_TOKEN" \
| jq '{rw_host: .status.hosts.host, ro_host: .status.hosts.read_only_host}'
Para obter a referência da cadeia de conexão completa, consulte Connection Strings.
Próximas Etapas
- Alta disponibilidade – conceitos, comportamento de failover e práticas recomendadas
- Réplicas de leitura – réplicas de leitura independentes para capacidade adicional de leitura sem alta disponibilidade
- Cadeias de conexão