SE の雑記

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

SQL Server 2016 SP3 で DNN がサポートされるようになりました

leave a comment

SQL Server では、AlwaysOn 可用性グループ / FCI (Failover Cluster Instance) で、DNN (分散ネットワーク名 : Distributed Network Name) という接続方法を使用することができます。

この接続方法を使用すると、Azure の IaaS で可用性環境を作成する際に Azure Load Balancer を使用せずに、接続のためのエンドポイントを作成することができます。(オンプレミスで DNN を使用することもでき、この場合は、エンドポイント用の仮想 IP を用意せずに接続ができるようになります)

この機能ですが、各バージョンの SQL Server の初期状態から使用することができるのではなく、累積修正プログラムを適用することで使用することができるようになります。

この DNN を使用した接続ですが、SQL Server 2016 については、先日リリースされた SP3 で AlwaysOn 可用性グループ / FCI のサポートが開始されました。

2021/9/20 時点では、Windows Server 2019 と次のバージョンの SQL Server で DNN がサポートされています。

AlwaysOn 可用性グループ

KB4578579 – Improvement: Availability Group listener without the load balancer in SQL Server 2016, 2017 and 2019

FCI

KB4537868 – Improvement: Enable DNN feature in SQL Server 2016 and 2019 FCI

2021/9/20 時点では、SQL Server 2017 で FCI の DNN のサポートが行われていないようですね。

Written by Masayuki.Ozawa

9月 20th, 2021 at 8:35 pm

Posted in SQL Server

Tagged with

SQL Database の最終起動日時を取得する

leave a comment

Azure の PaaS の SQL Server である、SQL Database は計画メンテナンスにより、メンテナンスが発生した際には、SQL Server のサービスの再起動が発生します。

計画メンテナンスの情報については、Azure SQL Database および Azure SQL Managed Instance での Azure メンテナンス イベントの計画 に記載されています。

最新のドキュメントでは、記載内容が変わっていますが、古いドキュメント では、次のように記載されていました。

頻度

平均すると、1 か月に 1.7 回の計画メンテナンス イベントが発生します。

今は、次のような機能が追加されており、計画メンテナンスが以前より把握しやすいようになっていますが、どこかのタイミングで計画メンテナンスによる再起動を発生し、再起動を完全に抑えることはできません。

計画メンテナンスによる瞬間的な接続の切断が行われたかの状況については、標準のメトリックの「Failed Connections」を使用して確認することができるそうです。

このメトリックを使用したアラートルールを設定して接続の失敗を把握することで、メンテナンスが行われたのかを把握するという方法をとることもできるのではないでしょうか。

image

それ以外の方法として、DMV から SQL Server の起動時間を取得するという方法をとることもできます。

今回の投稿ではこの方法についてまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 20th, 2021 at 12:48 pm

Posted in SQL Database

Tagged with

test

leave a comment

Written by Masayuki.Ozawa

9月 15th, 2021 at 9:54 am

Posted in 未分類

SQL Server 2019 on Windows の Language Extension で .NET 5 C# が動作するようになりました

leave a comment

Open sourcing the .NET 5 C# Language Extension for SQL Server で発表がありましたが、SQL Server 2019 から使用することができるようになった Language Extension で .NET 5 C# が使用できるようになりました。

今回のアナウンスは、次のアナウンスの続きにあたるものになるのではないでしょうか。

 

SQL Server では、このような機能を使用したデータ分析を Advanced Analytics と呼ぶこともありますが、機能を活用することで、標準の T-SQL では難しい分析を行うことが可能となります。

今回の C# の発表を読みながら、この領域の情報をまとめてみたいと思います。

使用方法のステップバイステップについては GitHub のコンテンツを参照すると実際に試すことができます。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 12th, 2021 at 4:31 pm

Posted in SQL Server

Tagged with

AKS on Azure Stack HCI (Windows Server 2019) に対して Azure DevOps でパイプラインを実行するためのメモ

leave a comment

AKS on Azure Stack HCI (OS は HCI OS ではなく、Windows Server 2019) に対して、Azure DevOps パイプラインを実行しようと思った際の作業した内容のメモを。

最終的には Azure Arc Enabled Kubernetes の GitOps を使用することになるのかなとは思うのですが、今回はそこまでは試せていません。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 6th, 2021 at 10:35 pm

高速データベース復旧 (ADR) の動作を把握するために必要となる情報

leave a comment

SQL Server 2019 以降と Azure SQL Database では、データベースの高速な復旧を可能とする高速データベース復旧 (ADR : Accelerated Database Recovery / CTR : Constant Time Recovery) という機能が搭載されています。

SQL Server 2019 では手動で有効化する必要がありますが、現在の Azure SQL Database ではデフォルトで有効化されており、無効にすることはできませんので、SQL Database を使用している場合には、必ず ADR が使用されています。

この ADR の挙動を把握する必要があり、情報を調査した際の内容をまとめておこうと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

9月 4th, 2021 at 10:41 pm

SQL Server で特定テーブルに1件のレコードを最初にINSERTした場合、アクセスが発生するファイルを調べてみる

leave a comment

MySQLエキスパートyoku0825が目指す、DBAとしての未来像 を興味深く読ませていただいたのですが、記事の中の次の質問がとても面白い内容でした。

インストールされたばかりのMySQLがあるとして、特定テーブルに1件のレコードを最初にINSERTした場合、アクセスが発生するファイルとその理由をすべて教えてください

MySQLに初めてINSERTするとアクセスが発生するファイルは何かという質問をどう調べるのか で MySQL についてまとめられていますが、SQL Server ではどのようになるのかまとめてみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 29th, 2021 at 8:12 pm

Posted in SQL Server

Tagged with

Windows Server 2022 が RTM (GA) したようなのでメモ

one comment

Microsoft のブログ等でのアナウンスはまだのようですが、Windows Server 2022 から Preview が取れたようで、サポートラフサイクルの開始が 2021/8/18 からと記載された情報が公開されました。

image

Windows Server 2022 は Preview を 1,2 回インストールしただけで、あまり情報を追えていないのでどの辺を見ればよいかのメモを。

2021/9/1 に GA のアナウンスが行われました。

Windows Server 2022 now generally available?delivers innovation in security, hybrid, and containers

 

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 19th, 2021 at 11:31 pm

SQL Server のクライアント/サーバー間のデータ通信に使用される文字コードについて

one comment

MySQL の場合は、10.1.4 接続文字セットおよび照合順序 のような設定で、クライアント / サーバー間のデータ通信 (クエリ / 結果) で使用される文字コードを設定できるかと思います。

SQL Server の場合は、サーバーに文字データ格納時の文字コード (コードページ) / 文字列を比較する場合のルールを「照合順序」で設定することができますが、クライアント / サーバー間のデータ通信で使用される文字コードについては、明示的な指定を行うことはできません。

SQL Server ではクライアント / サーバー間の通信で使用されるデータではどのような文字コードが使用されているのかについて、まとめてみたいと思います。

本投稿のような内容を調べる場合には、クエリ実行時のパケットをキャプチャして、SQL Server のプロトコルのドキュメント に記載した TDS の使用を確認することになるかと思います。

Windows の OS としての文字コードの扱いについては、Unicode と文字セットについて を参照してください。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 14th, 2021 at 8:31 pm

Posted in SQL Server

Tagged with

SQL Server on Kubernetes の MS 提供ドキュメント

one comment

SQL Server on Kubernetes Designing and Building a Modern Data Platform という SQL Server on Kubernetes (k8s) に特化した書籍が発売されました。

ざっと一通り目を通したのですが、Windows エンジニアが、Linux 上に k8s の複数ワーカーノードの環境を一から作成して、操作を行うというような流れとなっており、SQL Server のエンジニアが k8s を学習を始めるのに適している書籍ではないかと思います。

私の場合は、Windows Server 2019 がインストールされている環境がいくつかりますので、Azure Stack HCI 検証方法 Tips に記載しているような、Windows Server 上に AKS on Azure Stack HCI を構築して検証を行っていますが、この環境でも書籍内の操作は問題なく行うことができました。

書籍内には、https://www.centinosystems.com/blog/category/kubernetes/ の記事も参照されており、こちらも併せて読むとよさそうです。

k8s 上に展開した SQL Server を Deploymentの更新 で最新バージョンに更新する流れや、NFS を使用した PVC の作成などにも触れられており、単純に Pod を展開する以外のスキルも身に着けることができます。

NFS のマウントオプションについては触れられていなかったので、What are the NFS mount options for databases on NetApp? / Oracle DatabaseのNFSバッファ・サイズ・パラメータの構成 あたりをマウントオプションの参考にするのもよさそうですね。

Service については、LoadBarancer ではなく NodePort を使用するようになっていますので、MetalLB も別に学習するとよいかもしれません。

SQL Server と k8s の組み合わせについては、SQL Server 2017 でコンテナー版の SQL Server の提供が開始された時から情報の公開が始まり、Big Data Cluster (BDC) / Azure Arc Enabled SQL Managed Instance で、k8s に最適化された SQL Server ベースの環境が提供され、いくつかのドキュメントが公開されています。

本投稿では、SQL Server on Kubernetes について、MS から提供されているドキュメントについて記載しておこうと思います。

SQL Server を単体で動作させるもの / Big Data Cluster / Arc Enabled SQL MI / Azure SQL Edge といくつかの利用形態を k8s 上で使用するための情報が公開されています。

Read the rest of this entry »

Written by Masayuki.Ozawa

8月 11th, 2021 at 10:27 pm

Posted in kubernetes,SQL Server

Tagged with ,