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