通过


配置以实现高可用性

本页介绍如何通过启用可读辅助实例来配置 Lakebase 数据库实例以实现高可用性。

重要

Lakebase 预配在以下区域中为公共预览版westuswestus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeast、、 brazilsouthcanadacentralcentralindia、 。 southeastasiauksouth

Lakebase Provisioned 使用手动缩放的预配计算。 有关与新的 Lakebase 自动缩放的功能比较,请参阅 在版本之间进行选择

若要启用高可用性,请将其他节点指定为数据库实例的一部分。 如果主计算运行不正常或不可用,则利用高可用性节点执行故障转移,并将辅助节点提升为主节点。

还可以启用可读辅助节点,此时高可用性节点可通过独立 DNS 终结点(instance-ro-{uuid},而非 instance-{uuid})来处理只读工作负载。

启用数据库实例以实现高可用性

如果将高可用性节点数设置为一个,则禁用高可用性和可读副本。 否则,你有一个主节点,其余节点是高可用性节点。 每个数据库实例的最大高可用性节点数为 3 个。

创建数据库实例时指定高可用性节点数。 请参阅 “创建数据库实例”。

执行以下步骤,使用 UI 或 API 修改数据库实例。

UI

  1. 单击“应用”图标。右上角的应用并选择 Lakebase Postgres
  2. 单击“ 已预配 ”以打开 “预配实例 ”页。
  3. 选择要更新的数据库实例。
  4. 单击右上角的 “编辑 ”。
  5. 在“高级设置”下拉列表中,选择“启用 HA”,并设置HA 池节点大小(包括主节点)
  6. 选择 “允许可读辅助数据库 ”,然后选择 HA 节点数。
  7. 单击“ 保存”。

curl

curl -s -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" $DBR_URL/database/instances/my-instance -d '{ “node_count”: 3, “enable_readable_secondaries” : true}'

Python SDK

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}")

CLI

# Create a database instance
databricks database create-database-instance my-database-instance \
  --capacity CU_1 \
  --node-count 3

计算复原能力

配置高可用性节点后,数据库实例的主节点受高可用性保护。 如果主节点不可用,则数据库实例会自动向某一辅助节点进行故障转移,将这个辅助节点提升为新的主节点。 由于计算节点是无状态的,因此故障不会影响数据,并且连接字符串保持不变。 不可用状态在几秒到几分钟内解决,具体取决于故障类型。 在故障转移期间,活动连接会被断开,因此应将应用程序配置为处理这些短暂的断开连接并自动重新连接。

当出现问题时,数据库实例中的辅助节点也会在几分钟内自动恢复。 如果启用可读副本,Databricks 建议至少有三个高可用性节点,以防止主节点故障转移影响到只读连接。 应用程序仍然需要重新连接机制来处理短暂的停机时间。

从 Azure Databricks SQL 编辑器执行只读查询

若要连接到可读辅助数据库并从 Azure Databricks SQL 编辑器运行只读查询,请参阅 从 SQL 编辑器访问数据库实例

局限性

  • 性能需要一段时间才能恢复。 查询最初可能运行得更慢,直到重新生成它们,因为新主节点没有特定于会话的数据,并且对于经常访问的数据使用本地缓存。
  • 不支持跨区域复制。 发生区域范围的服务中断时,可用性取决于云提供商将服务还原到受影响的区域。