本頁說明如何透過啟用可讀取的次要執行個體來設定 Lakebase 資料庫執行個體以達到高可用性。
這很重要
這項功能在下列區域中處於公開預覽狀態:westus、、westus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouth、canadacentralcentralindia、、 southeastasiauksouth
若要啟用高可用性,請將其他節點指定為資料庫執行個體的一部分。 如果主要計算狀況不良或無法使用,則會使用高可用性節點來執行容錯移轉,並將次要節點升級為主要節點。
您也可以啟用可讀取的次要資料庫,其中高可用性節點可以使用個別的 DNS 端點 (instance-ro-{uuid} 與 instance-{uuid}相比) 來提供唯讀工作負載。
啟用資料庫執行個體以實現高可用性
如果您將高可用性節點數目設定為 1,則會停用高可用性和可讀取的次要節點。 否則,您有一個主要節點,其餘節點都是高可用性節點。 每個資料庫執行個體的高可用性節點數目上限為三個。
在建立資料庫實例時指定高可用性節點的數目。 請參閱 建立資料庫實例。
執行下列步驟,以使用 UI 或 API 修改資料庫執行個體。
UI
- 在工作區側邊欄中按下 [計算]。
- 依序點擊資料庫實例索引標籤。
- 選取您要更新的資料庫實例。
- 按兩下右上角的 [編輯 ]。
- 輸入 HA 集區節點大小 (包括主要) 的值。
- 開啟 [啟用可讀取的次要資料庫]。
- 點選 [儲存]。
curl (Unix指令)
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 Editor執行只讀查詢
若要連接可讀的次要檔案並從 Azure Databricks SQL 編輯器執行唯讀查詢,請參考從 SQL 編輯器存取資料庫實例。
局限性
- 效能需要時間才能恢復。 查詢一開始可能會較慢,直到重建後才會被重建,因為新的主節點沒有特定會話資料,且有一個常用資料的本地快取。
- 不支援跨區域複寫。 如果發生全區域中斷,可用性取決於雲端供應商將服務還原至受影響的區域。