SQL Database の vCore モデルでは ゾーン冗長による高可用性の構成 をとることができます。
SQL Database のデータベースは Geo レプリケーション / フェールオーバーグループ により、データベースのレプリカ (セカンダリレプリカ) を作成することができますが、レプリカのデータベースの冗長構成についてはどのようになるのかをまとめておきます。
レプリカの作成時に指定可能なオプション
SQL Database で Geo レプリケーションを作成する際には、ALTER DATABASE を実行することで設定することができます。
レプリカを作成する際に指定可能なオプションについては ALTER DATABASE の「add-secondary-option」から確認することができます。
<add-secondary-option> ::= { ALLOW_CONNECTIONS = { ALL | NO } | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' } | SERVICE_OBJECTIVE = { <service-objective> | { ELASTIC_POOL ( name = <elastic_pool_name>) } | DATABASE_NAME = <target_database_name> | SECONDARY_TYPE = { GEO | NAMED } } }
レプリカを作成する際にコンピューティングサイズやデータベース名を指定することはできるのですが、冗長構成については設定をすることはできません。
レプリカの冗長構成について
レプリカの冗長構成がどのようになるのかについては、次のドキュメントで確認することができます。
- フェールオーバー グループの概要とベスト プラクティス (Azure SQL データベース)
- Azure SQL Database を可用性ゾーンのサポートに移行する
- Hyperscale データベースの自動バックアップ
- ゾーン冗長 Hyperscale データベースを作成する
Hyperscale 以外のデータベース
Hyperscale 以外のデータベースのレプリカ、既定では高可用性は無効になっています。
フェールオーバー グループを使用して作成されたセカンダリ データベースは、既定では高可用性が有効になりません。 フェールオーバー グループが作成されたら、グループに含まれるデータベースで高可用性を有効にします。 この動作は、最初にアクティブ geo レプリケーションを作成し、必要に応じてフェールオーバー グループにデータベースを追加する場合にも適用されます。
各データベースで明示的に有効にする必要があります。
Hyperscale のデータベース
Hyperscale のデータベースについては冗長構成はプライマリの設定を継承し、各データベースでの明示的な有効化はありません。
フェールオーバー グループを使用して作成されたセカンダリ データベースは、それぞれのプライマリ データベースの高可用性設定を継承します。 そのため、プライマリ データベースで高可用性が有効になっている場合、セカンダリ データベースでも有効になります。 逆に、プライマリ データベースで高可用性が有効になっていない場合、セカンダリ データベースでも有効になりません。
Hyperscale については、ゾーン冗長 Hyperscale データベースを作成する に記載されているようにバックアップと同様で、冗長構成は作成時にのみ設定ができるオプションとなっているため、作成後には変更することができません。
Hyperscale では作成済みのデータベースを冗長構成に変更したい場合は、データベースのコピーを使用して、新しいデータベースを作成することで冗長構成を設定する必要があります。