Tools and Documents for fault analysis in SQL Server-based environments
Tools and Documents for fault analysis in SQL Server-based environments.
SQL Server のトラブル解析に Bing AI (Bing チャット) / ChatGPT を活用することはできるか?WSFC の SQL Server の障害を例にして試してみる
SQL Server のトラブル解析に Bing AI (Bing チャット) / ChatGTP を活用することはできるのかが気になったので簡単にではありますが試してみました。
プロンプトの組み方によってはもっと精度を上げることもできるのかとは思いますが、今回はシンプルな自然言語の入力で試しています。
clumsy を使用して Windows でネットワーク遅延を発生させる
SQL Server に対して実行するクエリについて、実行元から SQL Server に対してネットワーク遅延がある場合、実行されたクエリの処理時間はどのように記録されるのかを確認したいケースがありました。
実行元は Hyper-V の仮想マシンで実行しているので帯域制限については、ある程度はネットワークアダプターの帯域幅管理でも実現はできるのですが、明示的にネットワークに遅延を発生させることはできません。
Linux であれば、tc を使用して netem で実行することができそうですが、Windows 環境で手軽に実行したいと思った場合にどのように実行するのかを探してみたところ、clumsy というツールを使用することで実現ができました。
Azure Arc 仮想マシンと Azure Connected Machine Agent
Azure Stack HCI と Azure を連携することで使用することができる機能として、Azure Arc 仮想マシン (Azure Arc VM) があります。
Azure Arc 仮想マシンを使用すると Azure ポータルから Azure Stack HCI に仮想マシンを展開 / 展開した仮想マシンを Azure のリソースとして扱うことができるようになります。
Azure Stack HCI 上で Azure Virtual Desktop を実現する機能となる Azure Virtual Desktop for Azure Stack HCI (AVD for Azure Stack HCI) でも、展開されるセッションホストについても、Azure Arc 仮想マシンが使用されており、この機能を活用する際にも Azure Arc 仮想マシンが活用されています。
Azure Arc 仮想マシンですが、インストールの設定については、Azure Connected Machine Agent が自動的にインストールされるのですが、このエージェントについての情報をまとめておきたいと思います。
SSMS 19.x の Azure Active Directory 認証の機能拡張
従来からの SSMS (18.x まで) でも Azure Active Directory 認証をサポートしていました。
SSMS 19.x でも引き続き Azure Active Directory 認証をサポートしていますが、認証方式が強化されました。
新しく次の認証方式が追加されています。
- Azure Active Directory – サービスプリンシパル
- Azure Active Directory – マネージド ID
- Azure Active Directory – 既定値
サービスプリンシパルとマネージド ID は今まではアプリケーションから使用する目的が多かったかと思いますが、最新の SSMS を使用することで対話型ログインでもこれらの資格情報を使用することができます。
SQL Server 2022 の Azure Active Diretory 認証 でもこれらの資格情報を使用することも可能となっています。
Azure AD ユーザーでデータベースメールを使用する際のトラブルシューティングに必要なメッセージの取得
SQL Server 2022 / Azure SQL Managed Instance では、Azure Active Directory ユーザーを使用した認証を実施することができます。
設定をする際には、最初の管理者アカウントを設定する必要がありますが、このアカウントには Azure Active Directory グループを指定することもできますので、最初の管理者にはグループを追加し、以降はグループのメンバーをメンテナンスすることで管理者を設定する運用も可能となっています。
このような「Azure Active Directory のグループを介してメンバーに権限を付与する」場合、データベースメールの利用にはいくつか気を付ける点がありますので、それをまとめておきたい思います。
Managed Instance で問題が発生している場合、同様の設定をした SQL Server 2022 でも問題が発生する可能性が高いので、デバッグにしては様々な情報を取得できる SQL Server 2022 のほうが容易かもしれません。
HGS を使用しない Always Encrypted Secure Enclaves について
私もきちんと理解できておらず、最近まで把握できていなかったのですが、Always Encrypted Secure Enclaves を使用するためには、HGS (Host Guardian Service) による構成証明は必須ではないようです。(実運用環境では構成したほうが良いと思いますが、機能検証をしたい場合には HGS を構成しなくても検証が可能です)
最近、SQL Database で VBS (Virtualization based security) Enclaves を使用した Always Encrypted のサポートがプレビューで開始され、次のアナウンスがありました。
これに伴い、Always Encrypted Secure Enclaves のドキュメントを見直していて必須でないことに気づきました。
Azure Arc を使用した SQL Server 2012-2019 の PAYG での利用について
SQL Server 2022 Standard / Enterprise では、従量課金 (PAYG) による SQL Server の利用が可能となり、従来の永続ライセンス (一括購入) の利用形態だけでなく、使用時間に応じた PAYG による利用が可能となりました。
本ブログでも次のような投稿でも SQL Server 2022 の PAYG について触れてきました。
この PAYG の仕組みについて、SQL Server 2022 だけでなく SQL Server 2012 以降も対象となる機能追加が、2023/1 から Azure Arc 対応 SQL Server で行われました。(SQL Server の従量課金制 では 2014 以降となっていますが、2012 以降が正しいと思います)
従量課金制 (PAYG) ライセンス オプションが SQL Server 2012 以降に拡張されました
2012~2019 を対象とした PAYG についてはまだ情報を確認している最中ですが、現状確認ができていることをまとめておきたいと思います。本利用形態はまだ情報が少ないので今後 MS の公式情報も増えていくのではないでしょうか。
拡張セキュリティ更新プログラム (ESU) による SQL Server の更新プログラムが配布されました
本日は Windows のセキュリティ更新プログラムの提供日となっていましたが、本日はリモートコードの脆弱性対応として SQL Server に対しての更新プログラムの提供も行われています。(脆弱性の例としては CVE-2023-21528 等があります)
SQL Server 2014
- KB5021037 – Description of the security update for SQL Server 2014 SP3 GDR: February 14, 2023 : 12.0.6174.8
- KB5021045 – Description of the security update for SQL Server 2014 SP3 CU4: February 14, 2023 : 12.0.6444.4
SQL Server 2016
- KB5021129 – Description of the security update for SQL Server 2016 SP3 GDR: February 14, 2023 : 13.0.6430.49
SQL Server 2017
- KB5021127 – Description of the security update for SQL Server 2017 GDR: February 14, 2023 : 14.0.2047.8
- KB5021126 – Description of the security update for SQL Server 2017 CU31: February 14, 2023 : 14.0.3460.9
SQL Server 2019
- KB5021125 – Description of the security update for SQL Server 2019 GDR: February 14, 2023 : 15.0.2101.7
- KB5021124 – Description of the security update for SQL Server 2019 CU18: February 14, 2023 : 15.0.4280.7
SQL Server 2022
- KB5021522 – Description of the security update for SQL Server 2022 GDR: February 14, 2023 : 16.0.1050.5
今回の問題は広範囲のバージョンの SQL Server に影響しており、拡張セキュリティ更新プログラム (ESU) で更新プログラムの提供がお壊れている SQL Server 2008 / 2008 R2 / 2012 にも関係するものとなっていたようです。
これにより、ESU によりこれらのバージョンでも ESU による更新プログラムの提供が開始されました。(今まではセキュリティ更新プログラムのリリースはなく、サポートでのメリット教授となっていたのですが、今回更新プログラムの提供を受けることができるようになりました)
ESU による更新プログラムの提供は GDR (General distribution release) の更新プログラムとして提供が行われるようです。
SQL Server 2008 ~ 2012 の KB の番号は次のようになるようですが、投稿時点ではまだ情報は公開されていないようです。
- SQL Server 2008 SP4 向け GDR : KB5020863
- SQL Server 2008 R2 SP3 向け GDR : KB5021112
- SQL Server 2012 SP4 向け GDR : KB5021123
特典で ESU によるセキュリティ更新プログラムを無償で受け取るためには条件がありますので、今回は Azure Stack HCI 上に構築した仮想マシンで検証をしています。
SQL Server 2022 の PAYG による従量課金の仕組みを把握する
SQL Server 2022 から従来からのライセンス買い切りによる購入形態だけでなく、PAYG による従量課金によるコアライセンスの活用ができるようになりました。
SQL Server 2022 で使用する場合には、エディション選択時に「Microsoft Azure を通じて従量課金制の課金を使用します」を選択することで、Azure のコストとして PAYG による SQL Server の利用ができるようになります。
このライセンスの利用形態では、Azure Arc 対応 SQL Server を使用して Azure に接続を行うことで従量課金によるコストが発生します。
コストの発生の条件については、Azure Arc 対応 SQL Server に関するよくあるご質問 に記載されています。
基本的な考え方としては次のようになるかと思います。
- SQL Server のサービスが起動している時間に応じて課金が発生
- 課金の粒度は 1 時間単位となっており、1 時間未満の起動でも 1 時間のコストが発生
- コアライセンスでの利用となるため、最小コアライセンスは 4 コアライセンスとなり、以降は 2 コアパックでの増加
- Pay-as-you-go に書かれているのは 1 コアあたりの料金となり、1 コアで動かしていても 4 コア分のライセンスとなります
SQL Server 2022 ではコアライセンスに変更があり、次の情報に記載があります。
これらの情報には次の記載があります。
Beginning with SQL Server 2022, licensing by virtual machine is an option under subscription licenses or licenses with Software Assurance only.
製品条項を 2019 と比較するとわかりやすいのですが、2022 では個別の仮想マシンでコアライセンスを使用する場合の条件が変更されており、「サブスクリプションライセンスまたは、アクティブな SA 付きライセンスでのみ利用可能」が追加されています。
Enterprise Edition を使用して、ハイパーバイザーの物理コアのライセンスを取得し、それを使用して仮想マシンにライセンスを割り当てる形態は従来通りとなりますが、仮想マシンに直接ライセンスを割り当てる形態については、2019 までと比較して制限が追加されているようです。
これにより、PAYG によるサブスクリプションライセンスを検討しなくてはいけないケースが出てくるかもしれませんね。