SE の雑記

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

Archive for the ‘SQL Server’ tag

HGS を使用しない Always Encrypted Secure Enclaves について

leave a comment

私もきちんと理解できておらず、最近まで把握できていなかったのですが、Always Encrypted Secure Enclaves を使用するためには、HGS (Host Guardian Service) による構成証明は必須ではないようです。(実運用環境では構成したほうが良いと思いますが、機能検証をしたい場合には HGS を構成しなくても検証が可能です)

最近、SQL Database で VBS (Virtualization based security) Enclaves を使用した Always Encrypted のサポートがプレビューで開始され、次のアナウンスがありました。

これに伴い、Always Encrypted Secure Enclaves のドキュメントを見直していて必須でないことに気づきました。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 19th, 2023 at 5:45 pm

Azure Arc を使用した SQL Server 2012-2019 の PAYG での利用について

leave a comment

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 の公式情報も増えていくのではないでしょうか。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 19th, 2023 at 2:44 pm

Posted in Azure Arc,SQL Server

Tagged with ,

拡張セキュリティ更新プログラム (ESU) による SQL Server の更新プログラムが配布されました

leave a comment

本日は Windows のセキュリティ更新プログラムの提供日となっていましたが、本日はリモートコードの脆弱性対応として SQL Server に対しての更新プログラムの提供も行われています。(脆弱性の例としては CVE-2023-21528 等があります)

SQL Server 2014

SQL Server 2016

SQL Server 2017

SQL Server 2019

SQL Server 2022

今回の問題は広範囲のバージョンの 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 上に構築した仮想マシンで検証をしています。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 15th, 2023 at 8:07 pm

Posted in ESU,SQL Server

Tagged with ,

SQL Server 2022 の PAYG による従量課金の仕組みを把握する

leave a comment

SQL Server 2022 から従来からのライセンス買い切りによる購入形態だけでなく、PAYG による従量課金によるコアライセンスの活用ができるようになりました。

SQL Server 2022 で使用する場合には、エディション選択時に「Microsoft Azure を通じて従量課金制の課金を使用します」を選択することで、Azure のコストとして PAYG による SQL Server の利用ができるようになります。
image

このライセンスの利用形態では、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 付きライセンスでのみ利用可能」が追加されています。

image

Enterprise Edition を使用して、ハイパーバイザーの物理コアのライセンスを取得し、それを使用して仮想マシンにライセンスを割り当てる形態は従来通りとなりますが、仮想マシンに直接ライセンスを割り当てる形態については、2019 までと比較して制限が追加されているようです。

これにより、PAYG によるサブスクリプションライセンスを検討しなくてはいけないケースが出てくるかもしれませんね。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 9th, 2023 at 9:37 pm

SQL Server on Azure VM の複数サブネットによる可用性グループの構成の特徴を理解する

leave a comment

以前投稿した 複数サブネット構成を使用した SQL Server on Azure VM の可用性構成について に近いものとなりますが、改めて特徴を把握しておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 18th, 2023 at 9:54 pm

Posted in Azure,SQL Server

Tagged with ,

SQL Server 2022 の model_replicatedmaster / model_msdb について

leave a comment

SQL Server 2022 では、システムデータベースのディレクトリに、次のデータベース用のファイルが格納されています。

  • model_replicatedmaster
    • model_replicatedmaster.mdf
    • model_replicatedmaster.ldf
  • model_msdb
    • model_msdbdata.mdf
    • model_msdblog.ldf

これらのファイルは、SQL Server 2019 でも存在していたのですが、通常のインスタンスでは使用されていませんでした。

SQL Server 2022 になると、状況が変わり、これらのファイルが使用されているデータベースとして model_replicatedmaster / model_msdb というデータベースが SSMS や DMV では表示されませんが内部的に存在するようになり、基本構成としてファイルが使用されるようになりました。

現状、これらのデータベースの情報が公開されているものはないのですが、2022 で新しく追加されたシステムデータベースとなるため、本投稿で現在調べられていることをまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 5th, 2023 at 9:54 am

SQL Server の動的メモリ管理の情報が出力される二つのリングバッファーについて

leave a comment

SQL Server のメモリ管理については、メモリ管理アーキテクチャ ガイド で解説が行われています。

このガイドの中で、メモリ不足の検出 に次の記載があります。

次の 2 つのリング バッファーに、動的メモリ管理に関連する情報が保持されます。

  • メモリ不足が通知されているかどうかなど、リソース モニターのアクティビティを追跡するリソース モニター リング バッファー。 このリング バッファーには、現在のRESOURCE_MEMPHYSICAL_HIGH状態に応じて状態情報が含まれます。 RESOURCE_MEMPHYSICAL_LOWRESOURCE_MEMPHYSICAL_STEADYRESOURCE_MEMVIRTUAL_LOW
  • 各 Resource Governor リソース プールのメモリ通知のレコードが含まれるメモリ ブローカー リング バッファー。 内部メモリ不足が検出されると、メモリの割り当てを行うコンポーネントに対して、メモリ不足を示す通知がオンになり、キャッシュ間でメモリのバランスをとるためのアクションがトリガーされます。

SQL Server のメモリ管理は「動的メモリ管理」によって実施されており、OS / SQL Server のメモリ使用状況に応じて、各役割のメモリを自動的に調整します。

この動的メモリに関する動作については、リングバッファーから確認をすることができるようになっています。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 3rd, 2023 at 5:56 pm

Posted in SQL Server

Tagged with

拡張イベントで Non-yielding Scheduler が発生した際にスタックのコピーを取得する

leave a comment

先日投稿した SQL Server 2022 で Non-yielding Scheduler 発生時の出力内容が追加されていました は SQL Server 2022 向けの情報となり、投稿時点の最新バージョンの SQL Server を使用することで、ERRORLOG から g_copiedStackInfo のコンテキストを取得し、スケジューラーを解放しないスレッドのスタックを確認することができることを確認しました。

それ以外のバージョンでは、ダンプが出力されたタイミングでしか確認できないとなると、発生時の初回の情報しか確認でいないことになり、SQL Server のサービスを連続稼働している最中のエラーの原因特定が困難になってしまいます。

これを解消することができないか、考えていたところ「nonyield_copiedstack_ring_buffer_recorded」という拡張イベントを見つけることができました。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 28th, 2022 at 6:07 pm

Posted in SQL Server

Tagged with

SQL Server 2022 で Non-yielding Scheduler 発生時の出力内容が追加されていました

leave a comment

SQL Server でスレッドが CPU を解放せずに占有し続けた状態となる Non-yielding Scheduler となった場合、SQL Server のプロセスのダンプが出力されます。

出力されたダンプについては、Non-yielding IOCP Listener, Non-yielding Scheduler and non-yielding resource monitor known issues and fixes で解説されている内容を基に解析を行うことになりますが、SQL Server 2022 では解析のための情報が追加されているようです。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 26th, 2022 at 9:49 am

SQL Nexus で System.Data.SqlClient.SqlException (0x80131904) が発生した場合の対応方法

leave a comment

SQL Nexus でレポートを作成する際に、一部の内容 (例: Perfmon Summary の Click here to view more CPU metrics) を表示する際に、次のエラーが発生することがあります。

System.Data.SqlClient.SqlException (0x80131904): 文字列から日付と時刻、またはそのいずれかへの変換中に、変換が失敗しました。 (英語だと Conversion failed when converting date and/or time from character string.)

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 21st, 2022 at 3:22 pm

Posted in SQL Server

Tagged with