このページでは、読み取り可能なセカンダリ インスタンスを有効にして、高可用性のために Lakebase データベース インスタンスを構成する方法について説明します。
Important
この機能は、、westus、westus2、eastus、eastus2、centralus、southcentralus、northeurope、westeurope、australiaeast、brazilsouth、canadacentral、centralindia、southeastasiaの各リージョンのuksouth段階にあります。
高可用性を有効にするには、データベース インスタンスの一部として追加のノードを指定します。 プライマリ コンピューティングが異常になったり使用できなくなったりすると、高可用性ノードを使用してフェールオーバーが実行され、セカンダリ ノードがプライマリに昇格されます。
また、読み取り可能なセカンダリを有効にすることもできます。この場合、高可用性ノードは別の DNS エンドポイントを使用して読み取り専用ワークロードを処理できます (instance-ro-{uuid}と比較してinstance-{uuid})。
高可用性のためにデータベース インスタンスを有効にする
高可用性ノードの数を 1 に設定すると、高可用性と読み取り可能なセカンダリが無効になります。 それ以外の場合は、1 つのプライマリ ノードがあり、残りは高可用性ノードです。 高可用性ノードの最大数は、データベース インスタンスごとに 3 つです。
データベース インスタンスの作成時に高可用性ノードの数を指定します。 データベース インスタンスの作成を参照してください。
UI または API を使用してデータベース インスタンスを変更するには、次の手順を実行します。
UI
- ワークスペースのサイドバーで、[コンピューティング] をクリックします。
- [ データベース インスタンス ] タブをクリックします。
- 更新するデータベース インスタンスを選択します。
- 右上隅にある [ 編集] をクリックします。
- HA プール ノード サイズ (プライマリを含む) の値を入力します。
- [ 読み取り可能なセカンダリを有効にする] をオンにします。
- [保存] をクリックします。
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
コンピューティングの回復性
高可用性ノードが構成されている場合、データベース インスタンスのプライマリ ノードは高可用性によって保護されます。 プライマリ ノードが使用できなくなった場合、データベース インスタンスは自動的にセカンダリ ノードにフェールオーバーし、新しいプライマリ ノードとして昇格させます。 コンピューティング ノードはステートレスであり、障害はデータに影響を与えず、接続文字列は変更されません。 エラーの種類に応じて、使用できない状態は数秒から数分で解決されます。 フェールオーバー中にアクティブな接続が切断されるため、これらの簡単な切断を処理して自動的に再接続するようにアプリケーションを構成する必要があります。
データベース インスタンス内のセカンダリ ノードも、問題が発生すると数分で自動復旧されます。 読み取り可能なセカンダリを有効にすると、プライマリ フェールオーバーが読み取り専用接続に影響する場合に備えて、少なくとも 3 つの高可用性ノードを用意することをお勧めします。 アプリケーションには、短いダウンタイムを処理するための再接続メカニズムが引き続き必要です。
Azure Databricks SQL エディターから読み取り専用クエリを実行する
読み取り可能なセカンダリに接続し、Azure Databricks SQL エディターから読み取り専用クエリを実行するには、「 SQL エディターからデータベース インスタンスにアクセスする」を参照してください。
制限事項
- パフォーマンスの回復には時間がかかります。 新しいプライマリ ノードにはセッション固有のデータがなく、頻繁にアクセスされるデータのローカル キャッシュがないため、再構築されるまでクエリの実行速度が低下する可能性があります。
- リージョン間レプリケーションはサポートされていません。 リージョン全体の停止が発生した場合、可用性は、影響を受けるリージョンにサービスを復元するクラウド プロバイダーによって異なります。