SE の雑記

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

Azure VM で AD を使用しない AlwaysOn 可用性グループを Windows Server 2019 と SQL Server 2019 で構築する

one comment

SQL Server 2019 では SA (ソフトウェア アシュアランス : Software Assurance) の特典として、DR 用のレプリカを Azure 上に構築することがライセンスとして許容されるようになります。
(Failover servers for disaster recovery in Azure ではなく、Failover servers for disaster recovery というオンプレミスに DR を構築するパターンも新しい特典としてあります)

image

この SA 特典の詳細については、ライセンスガイド に詳細に記載されています。
従来まで、SA の特典として、プライマリのコアライセンスで、HA 用途の Passive Secondary を構築することができましたが、今回からは、新しくプライマリのコアライセンスで、DR 用途の Passive Secondary も構築ができるようになっています。

この特典ですが、「オンプレミスと Azure のどちらにも DR 環境を構築することができる」特典となっているようです。
次の図は、ライセンスガイドの P29 の図を引用したものとなりますが、プライマリのコアライセンスだけで、次のような構成も組むことが可能となるようです。

SQL Server の可用性機能としては AlwaysOn 可用性グループを構築するケースが多いですが、最新の OS (Windows Server 2019) と最新の SQL Server (SQL Server 2019) を使用した場合、どのような構成で SQL Server on Azure VM を構築することができるのか検証した一環の内容が本投稿になります。
Windows Server 2016 と SQL Server 2016 以降でも設定はできると思いますが検証はしていません。
久しぶりに Azure VM で AlwaysOn を組んだのですが、TP3 で Azure 上でワークグループクラスターを構築し、その上に CTP 2.4 のAlwaysOn を構築してみる で検証したときとは、ところどころ変わっているもんですね。
Azure 上で AG を構築する際には次のドキュメントを参照しておくと作業がスムーズに進むかと思います。

 
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 25th, 2020 at 4:31 pm

Posted in SQL Server

Tagged with ,

Graphical を使用して PowerShell でグラフを描画

leave a comment

PowerShell でグラフの描画をしようとしたとき、Chart Control を使用してグラフを作成するという方法があります。

単純なグラフがこれ以外の方法で描画できないかなと思い探してみたところ、Graphical というモジュールが手軽に使えそうでしたので、少し試してみました。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 21st, 2020 at 11:17 pm

Posted in PowerShell

Tagged with

IaaS の SQL Server で AlwaysOn を構築した際に考慮しておきたい設定について

leave a comment

Azure の IaaS (仮想マシン) に SQL Server をインストールした場合、AlwaysOn 可用性グループで可用性を向上させることが多いかと思います。
IaaS の SLA は Virtual Machines の SLA に記載されており、可用性セットや Premium SSD を使用することで稼働率を上昇させることは可能です。
AlwaysOn 可用性グループを使用した場合は、可用性セットによる稼働率の向上を行いますが、IaaS の可用性セットでは、可用性セット内のいずれかのインスタンスへの接続を保証することになるため、クラスター内のいずれかのサーバーが停止した時間が発生するということになります。
クラスターの標準の設定であれば、数秒程度の停止であればフェールオバーを発生させることなくシステムを稼働させることはできますが、メンテナンスで数 10 秒停止するようなケースでは、フェールオーバーが発生することになります。
メンテナンスが発生した場合に、できるだけフェールオーバーを発生させないようにするための情報については、いくつかの情報が公開されていますので、本投稿ではその情報をまとめておきたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 18th, 2020 at 8:29 pm

Posted in SQL Server

Tagged with

SQL Server へのクエリ実行の「コマンドタイムアウト」の情報取得について考えてみる

leave a comment

アプリケーションから SQL Server / SQL Database にコマンド (クエリ) を実行する際には、「コマンドタイムアウト」(クエリタイムアウト) について考慮をしておく必要があります。
ADO.NET の SQL Server 向けのドライバーではデフォルトでは 30 秒に設定されています。

コマンドタイムアウトの時間に達すると「Timeout expired.? The timeout period elapsed prior to completion of the operation or the server is not responding.」「実行タイムアウトの期限が切れました。操作完了前にタイムアウト期間が過ぎたか、サーバーが応答していません。」のエラーが発生し、クエリの実行がキャンセルされます。
アプリケーション側で Exception をキャッチして、その時に実行されていたクエリなどをロギングするようになっていれば、「どのようなクエリによりタイムアウトが発生したか?」を確認することができますが、そのようなロギングの仕組みがない or 情報が不足している場合に、サーバー側観点だけでどのような情報取得の対応ができるか、考えてみました。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 16th, 2020 at 8:51 pm

新しくなった Microsoft Edge の日本語版のインストーラーをダウンロードする

leave a comment

2020/1/16 11 時 時点の内容ですので、少しすると変わっているかもしれません。
あと、私の環境固有かもしれません。

新しくなった Microsoft Edge (Chromium ベースの Edge) ですが、次の URL からダウンロードできます。
https://www.microsoft.com/en-us/edge
image
 
Download ボタンからダウンロードできますが、日本語以外の言語の EULA が表示されたり、ページをリロードするたびに EULA の言語が中国語版だったり、英語版だったりと、私の環境ではダウンロードされるインストーラーの言語が安定しませんでした…。
何回かリロードしていると日本語版がダウンロードできるんですけどね…。
image
言語によってファイルハッシュが異なっているようなので、インストーラーは各国語向けになっていそうではありますが、日本語版のインストーラーを簡単に入手したい場合は次の URL から入手できるかと。
(表示される EULA の言語によって、language の指定が変わっているようです)
https://c2rsetup.officeapps.live.com/c2r/downloadEdge.aspx?ProductreleaseID=Edge&platform=Default&version=Edge&source=EdgeStablePage&Channel=Stable&language=ja
 
SHA256 のファイルハッシュが 3D4014D834922321AB4F50576DADC2E0A843E82C72CB8CFD1AA23D7241BE540C のファイルであれば日本語のインストーラーになっていると思います。
image
 
追記
知人に教えていただいたのですが、製品チームも本事象は把握されているようです。

Written by Masayuki.Ozawa

1月 16th, 2020 at 11:28 am

Posted in Windows Client

Tagged with

SQL Server / SQL Database アーキテクチャ ドキュメント

leave a comment

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 13th, 2020 at 11:36 pm

Posted in SQL Server

Tagged with

SQL Databaese の Ring Buffer の Time Stamp を日付に変換してみる

leave a comment

SQL Server / SQL Database では、「sys.dm_os_ring_buffers」という Ring Buffer の情報を確認することができます。
Using sys.dm_os_ring_buffers To Diagnose Memory Issues in SQL Server」 等で解説をされているのですが、SQL Server の様々な情報をメモリ上に確保している DMV となります。
この DMV では timestamp という値を持っているのですが、この値を加工するためには、sys.dm_os_sys_info の ms_ticks を元にして、コンピューターを起動してからの経過時間を使用していつのイベントなのかを確認するのが一般的です。
しかし、sys.dm_os_sys_info については、SQL Database では使用することができず、この DMV では、コンピューターを起動してからの経過時間を取得することができません。
SQL Database で timestamp を実際の時間に直す方法が何かないか考えてみたのですが、sys.dm_os_memory_cache_clock_hands の round_start_time の最大値で代替できそうでした。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 13th, 2020 at 8:51 pm

Posted in SQL Database

Tagged with

tempdb のロギング最適化による最小のログ記録の動作を確認してみる

leave a comment

SQL Server の tempdb では、ロギング最適化という動作により、トランザクションログの書き込みを最小限にするようにされています。
最近は、「SQL Server を使いこなす」という観点での勉強を進めており、その中でトランザクションログの書き込み内容の解析も多少できるようになってきましたので、tempdb のロギング最適化による、最小のログ記録の動作についても、実際のトランザクションログの書き込み内容を元にしてみていきたいと思います。
(本投稿の最小のログ記録については、一括挿入を実行する際等の最小ログ記録とは別の動作です)
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 5th, 2020 at 4:47 pm

SQL Database のリソース割り当てについてのドキュメントが公開されています

one comment

先日、SQL Database Hyperscale のパフォーマンスについては SQL Hyperscale のパフォーマンスのトラブルシューティング診断 で公開されていることを書きました。
通常の SQL Database についてもパフォーマンスの調査時に重要となるリソース割り当てについてのドキュメントが、いくつか公開されていたようです。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 4th, 2020 at 5:02 pm

Posted in SQL Database

Tagged with

INSERT を例にしたトランザクションログの内容の確認

leave a comment

SQL Server のトランザクションログの内容を確認する際のアプローチとして「DBCC LOG 」や「sys.fn_dblog」を利用して内容を確認するという方法があります。
これらの DBCC や関数はアンドキュメントとなっており、詳細な情報は公開されていません。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 26th, 2019 at 12:02 am