SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Build 2020 の前に SQL Server on Azure VM / SQL Database 周りのアップデートを追っておく

without comments

最新のアップデートを終えていなかったので、Build 2020 が開始される前に、SQL Server on Azure VM と SQL Database のアップデートをキャッチアップしておこうかと。

今までブログにかけていなかった内容 (ここ、数ヶ月で気づいた内容) を主に記載しています。

SQL Server on Azure VM


リリースノート : Azure Virtual Machines 上の SQL Server に関するドキュメントの変更

SQL Server on Azure VM のパフォーマンスのドキュメント (Azure Virtual Machines における SQL Server のパフォーマンスに関するガイドライン) も、情報の更新が行われますので、リリースノートだけでなく、こちらの情報も確認するとよいかと。

 

Azure 上でクラスターレス可用性グループの構築

Windows Server 2016 + SQL Server 2016 の組み合わせでは、ドメインに参加していない状態で AlwaysOn 可用性グループ (ドメインに依存しない可用性グループ : クラスターレス可用性グループ)? を構築することができるようになっています。

この、ドメインコントローラーを使用しないワークグループの可用性グループを Azure VM 上で構築するためのドキュメントが公開されています。

ドメインコントローラーが存在しないため、一元管理されたユーザーを使用して Windows 認証を使用することはできませんが、SQL Server 認証を使用した冗長化されたデータベースを Azure 上にシンプルな環境として構築する際には、この構成を活用することができます。

現在の SQL Server の SA (ソフトウェアアシュアランス) 特典には、New high availability and disaster recovery benefits for SQL Server で解説されているように、DR 用途の SQL Server をオンプレミス並びに、Azure 上に構築するためのライセンス特典が含まれています。
(SA 特典では、プライマリのコアライセンスを使用して、オンプレミスと Azure 上の 2 個所に DR 目的のインスタンスを構築できます)

この DR の特典を可用性グループの構成で使用しようとした場合、クラスターレス可用性グループで Azure VM で可用性グループを構築し、データの同期を 分散型可用性グループ で実施すると、プライマリとセカンダリを独立した可用性グループとして構築ができ、Azure 側の環境はドメインコントローラーを使用しないシンプルな環境として構築することができます。
(DR 特典を活用する場合、シングルノードの可用性グループを構築することになると思いますが)

DR 用ライセンスへの変更ですが、SQL VM リソースプロバイダーに SQL Server インストール済み VM を登録すると、DR ライセンスに変更することができるようになっています。

image

 

新規構築時の VM のストレージ構成

Azure VM にセルフインストールした SQL Server で tempdb を D ドライブに配置するための機能を利用する で記載しましたが、新規構築時の VM の初期のストレージ最適化についても最新化が行われています。

tempdb を高速な揮発性のローカルディスクに配置することで、スループットを最適化する方法が、構築時に設定できるようになっています。

 

Azure Backup のファイル単位のリストア

Azure Backup では、「SQL Server in Azure VM」として、VM 上にインストールされている SQL Server のバックアップを、Azure Backup 経由で取得することができます。

SQL Server バージョンによっては標準機能で Azure のリソースを使用してバックアップを取得することもできますので、この辺は Azure Virtual Machines おける SQL Server のバックアップと復元 を確認するのが良いかと。

初期は、Azure Backup で取得した SQL Server のバックアップについては、ファイルとして復元することができなかったのですが、今の Azure Backup ではファイルとしてデータベースのバックアップファイルを復元する (.bak ファイルとして、リストア) ことができるようになっており、取得されているバックアップの活用方法の幅が広がっています。

image

 

システムデータベースのリストア方法につてもシングルユーザーモードで起動して、復元を行うような手順が記載されているようですね。

AlwaysOn 可用性グループ環境でのバックアップについても Azure VM 内の SQL Server のバックアップに関するサポート マトリックス で解説されており、可用性グループのバックアップに Azure Backup を活用することもできるようになています。

Azure Backup で仮想マシン全体を取得する場合、VSSCOPYBACKUP を使用しないと、COPY_ONLY のバックアップではなく、通常のバックアップとなりバックアップの依存関係が変わってしまうことに対しての対応も自動で行われているようで、 VM スナップショットに関する問題のトラブルシューティング で解説されているレジストリキーについては自動で設定されていました。

 

SQL Database


リリースノート : SQL Database リリース ノート

リリースノートにはプレビュー機能が記載されており、更新情報については Azure の更新情報 から確認することになります。

再開可能なインデックス再構築の拡張機能

見落としていたのですが Azure SQL Database – 再開可能なインデックス オンライン操作の拡張機能 というアナウンスがありました。

データベーススコープのオプションとして「PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES」が追加されており、再開可能なインデックスの一時停止が発生した際に、データベースエンジン側で自動的に中止をされる期間を設定できるようになっていました。

これにより、一時停止状態の再開可能な操作が残り続けるということを抑止することができるかと。

プライベート エンドポイント (プライベート リンク : Private Link) の GA

Azure SQL Database と Data Warehouse の Private Link で解説されていますが、プライベート エンドポイントを使用した接続が一般提供開始 (GA) となっています。

プライベート エンドポイントを活用できると、「Azure サービスを許可する」「パブリック ネットワークアクセス」の両方が拒否されている状態の、SQL Database に対しての接続経路を設定することができるようになります。

 

高可用性のドキュメントのアップデート

SQL Database の高可用性については 高可用性と Microsoft Azure SQL Database というドキュメントがあるのですが、このドキュメントが更新されています。

アプリケーションの障害回復性のテスト では、手動でフェールオーバーを発生させる方法 (30 分に 1 回のみ許可される) についての記載も追記されています。

 

Synapse Analytics (旧 : SQL Data Warehouse)


リリースノート : Azure Synapse Analytics リリース ノート

Synapse Analytics ワークスペースのドキュメント

@dahatake さん情報となりますが、Syapse Analytics ワークスペース (旧 SQL DW ではない部分) についてのドキュメントが公開されています。

ドキュメントの↓のリンクで、表示するドキュメントを切り替えられたらしいです。

image

現時点では使用するためにはプレビューの申請を行い、承認される必要があるため、実際に使うことができるようにするのはなかなか難しいのですが、ドキュメントで一通りの機能を確認することができます。

 

データベースの互換性レベルの設定

Synapse の DB で互換性レベルの変更ができるようになったようです。

DW_COMPATIBILITY_LEVEL (Preview) = {AUTO | 10 | 20 }

 

SQL Server のデータベースの設定とは異なり、常に最新の互換性レベルを使用するような AUTO のオプションがデフォルトとなっており、選択できる互換性レベルの種類も SQL Server とは異なる制御となるようです。

主キー / 一意制約のサポート

リリース当初は、Synapse のテーブルでは、主キーと一意制約はサポートされていなかったのですが、サポートされるようになりました。

ただし、Synapse の一意性を持たせる設定については、「NOT ENFORCED」を使用する必要があり、制約として厳密にデータの一意性を担保するものではありません。
(データの一意性を DB 側として厳密に担保でき無いということについては、変わりはありません)

どういうときに使えるかというと、オプティマイザが実行プランを生成する際に、一意性を持たせた項目についての検索を効果的に実施することができるプランを生成するためのアドバイスとして活用できるというイメージではないでしょうか。

Written by Masayuki.Ozawa

5月 12th, 2020 at 9:25 pm

Posted in 未分類

Leave a Reply