SE の雑記

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

Archive for the ‘SQL Server’ Category

拡張イベントと DMV を活用したセッション情報の取得

leave a comment

SQL Server のクエリの動作確認を実施していて、

  • 自クエリが使用した CPU 時間等の取得
  • 発生した待ち事象の取得
  • 取得されたロック情報の取得

を確認したいと考えたことはないでしょうか?
拡張イベント (xEvent) と、DMV を活用することで、これらの情報を取得することができます。
SQL Server 2012 以降であればこの仕組みを使用することができるはずです。
「本番環境での利用」は一切考慮しておらず、「開発環境でクエリの動作を確認すること」を目的としていますので、実行する環境には注意してください。
Read the rest of this entry »

Written by Masayuki.Ozawa

2月 17th, 2019 at 12:02 am

Posted in SQL Server

Tagged with

SQL Server IaaS Agent 拡張機能が日本語版の SQL Server に対してもサポートされるようになりました

leave a comment

Azure の仮想マシンで SQL Server を利用する際に、管理タスクを自動化することができる「SQL Server IaaS Agent 拡張機能」が、SQL Server インストール済みイメージに対して、日本語版の SQL Server をインストールした場合にもサポートされるようになりました。
Azure 仮想マシン上に作成した SQL Server の日本語化手順(Windows OS 版 SQL Server 2017 対応手順)
ただし、SQL Server Agent 拡張機能 (Resource Manager) による Azure Virtual Machines での管理タスクの自動化 に記載されているように SQL Server インストール済みイメージを使用した場合のみサポートされる状況には変わりがなさそうですので、この点は注意が必要かと。

注意
SQL Server IaaS Agent 拡張機能は、SQL Server VM ギャラリー イメージ (従量課金制またはライセンス持ち込み) でのみサポートされます。 SQL Server を OS のみの Windows Server 仮想マシンに手動でインストールする場合や、カスタマイズされた SQL Server VM VHD をデプロイする場合、この拡張機能はサポートされません。 そのような場合は、PowerShell を使用して拡張機能を手動でインストールおよび管理できる可能性がありますが、Azure Portal には SQL Server の構成設定が表示されません。 ただし、代わりに SQL Server VM ギャラリー イメージをインストールしてカスタマイズすることを強くお勧めします

SQL Server IaaS Agent 拡張機能は、以下の 2 種類のサービスで構成されています。
image
これらのサービスが SQL Server に対してアクセスできるようにする必要があるのですが、一番手っ取り早いのは SQL Server IaaS Agent 拡張機能を再インストールすることかと思います。
アンインストールについては、ポータルの拡張機能から実施することができますし、PowerShell でも削除することができます。
image

Remove-AzureRmVMSqlServerExtension -ResourceGroupName "<リソースグループ名>" -VMName "<VM 名>" -Name "SqlIaasExtension"

インストールについてはポータルからは実施することができませんので、PowerShell でインストールする必要があります。

Set-AzureRmVMSqlServerExtension -ResourceGroupName "<リソースグループ名>" -VMName "<VM 名>" -Name "SqlIaasExtension" -Version "2.0" -Location "<リージョン>"

 
Azure のゲストエージェント経由でインストールが行われ、IaaS Agent は Local System のサービスとして動作するため、SQL Server に対して接続が可能となっており、SQL Server にアクセスし、NT Service\SQLIaaSExtensionQuery のログインの作成などが実施されています。
(「NT Service\SQLIaaSExtensionQuery」は「sysadmin」のログインとなっています)
インストールが完了すると、ポータルの仮想マシンのブレード内に「SQL Server の構成」が表示され、様々な設定を行うことができるようになります。
image
IaaS Agent は、SQL Server の管理の利便性を向上させることができますので、日本語版の SQL Server のインストールを実施した場合もサポートされるようになったのはうれしいですね。
Azure での SQL Server 仮想マシンのライセンス モデルを変更する方法 を実施するためにも IaaS Agent が必要となりますので、このライセンス変更を日本語版の SQL Server を使った場合に実施できるようになったことも大きな改善点ではないでしょうか。

Written by Masayuki.Ozawa

2月 3rd, 2019 at 11:35 pm

2019/2 の丸わかり 1 日セミナーの申し込みが始まっています

leave a comment

毎月開催している丸わかり 1 日セミナーの 2019/2 の申し込みが始まっていました。
申し込みは こちら から。
4 セッションのうち、3 セッションは私が担当させていただき、次の内容についてお話をさせていただきます。

  • SQL Server 2019
  • Managed Instance
  • SQL Server マイグレーション

公開されている最新情報をお持ち帰りいただくことをゴールとしているので、前日に公開された情報なども、可能な範囲でではありますが、口頭で補足させていただいたり、参加いただいた方には私のセッション資料は DL できるようにしており、その中で補足ができるようにはしております。
4 時間という長めの時間ではありますが、この機会に最新の情報を、ぜひお持ち帰りください m(_ _)m

Written by Masayuki.Ozawa

1月 29th, 2019 at 10:00 am

SQL Server でコネクションプールによる接続となっていることを確認してみる

leave a comment

定期的に SQL Server にクエリを実行するアプリを作っていたところ、コネクションプール利用を誤っていて、TIME_WAIT の接続を大量に残してしまうということをやらかしてしまいました orz
コネクションプールの管理はアプリケーション側になると思いますが、SQL Server 観点でコネクションプールによる接続かどうかを確認する方法もありますので今回はその方法を紹介したいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 26th, 2019 at 11:17 pm

Posted in Go,SQL Server

Tagged with ,

SQL Server 2019 CTP 2.2 の Big Data Cluster を支えるソフトウェア

leave a comment

SQL Server 2019 の新機能である Big Data Cluster は Kubernetes 上に展開された SQL Server on Linux をインタフェースとして、Hadoop のエコシステムを活用することができるデータ分析基盤になります。
いままで触ってこなかったソフトウェアが大量に含まれていたので、軽くまとめた一覧を。
コンポーネントが多いので、HDInsight のように、まとまった情報が欲しいですね。

役割

ソフト

バージョン

URL

実行基盤

Kubernetes

1.10 以降

https://kubernetes.io/

リバースプ
プロキシ

nginx

nginx version: nginx/1.10.3 (Ubuntu)

https://nginx.org/en/

https://nginx.org/en/docs/

データ
分析基盤

Apache Hadoop

Hadoop 2.9.1
(HDP :
2.6.4.0-91)

https://hadoop.apache.org/

http://hadoop.apache.org/docs/current/

 

Apache Hive

1.2.1

https://hive.apache.org/

https://cwiki.apache.org/confluence/display/Hive/LanguageManual

 

Apache Livy

0.5.0

https://livy.incubator.apache.org/

 

Apache Spark

2.3.1

https://spark.apache.org/
https://spark.apache.org/docs/latest/

認証
セキュリティ

Apache Knox

1.1.0

https://knox.apache.org/

https://knox.apache.org/books/knox-1-1-0/user-guide.html

 

Apache Ranger

0.7.0.2.6.4.0-9

https://ranger.apache.org/

ログ収集
分析基盤

Fluent Bit

Fluent-Bit v0.13.5

https://fluentbit.io/

https://docs.fluentbit.io/manual/

 

Kibana

6.3.1

https://www.elastic.co/jp/products/kibana

https://www.elastic.co/guide/en/kibana/current/index.html

 

Elastic Search

6.3.2

https://www.elastic.co/jp/products/elasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

 

Grafana

Version 5.2.2
(commit: aeaf7b2)

https://grafana.com/

http://docs.grafana.org/

 

InfluxDB

1.5.3

https://www.influxdata.com/

https://docs.influxdata.com/influxdb/

 

Telegraf

1.6.0

https://www.influxdata.com/
https://docs.influxdata.com/telegraf/

 

Collectd

5.5.1

https://collectd.org/

https://collectd.org/documentation.shtml

プロセス
コントロール

Supervisor

3.2.0

http://supervisord.org/

Written by Masayuki.Ozawa

1月 24th, 2019 at 9:40 am

Posted in SQL Server

Tagged with ,

Attunity Replicate for Microsoft Migration のサポートマトリクスが当初より変更されています

leave a comment

Attunity Replicate for Microsoft Migrations の活用アセスメント や、海外のイベントで紹介されていた、利用期間が限定されており、移行のサポートマトリクスが限定的な Attunity Replicate for Microsoft Migration ですが、アナウンスされた当初とは、移行のサポートマトリクスが変更となっているようです。
当初は冒頭に記載したブログの内容のように「Microsoft 製品以外から、Microsoft が提供する Database への移行」をサポートしていました。

image

最新の情報は、Attunity Replicate for Microsoft Migration から確認できるのですが、サポートマトリクスが次のように変更となっています。

image

SQL Server から SQL Server の移行にも対応したようですね。
以前は、Attunity Replicate for Microsoft Migration では、ソースとして SQL Server を選択することができなかったはずなのですが、最新のバージョンですと SQL Server からの移行をサポートしています。
(実際に、SQL Server 2008 R2 から、SQL Server 2019 に移行することができました)
このソフトは永続的に使用することはできず、利用可能な期間については、Read about the Attunity Replicate for Microsoft Migrations program に次のように記載されています。

*Attunity Replicate for Microsoft Migrations is limited to database migrations only and cannot be used as a standalone product similar to Attunity Replicate. Database migrations should be completed within a twelve-month period. The twelve month’s use limitation per data migration will be implemented and governed by means of the applicable end user license agreement. This program expires June 30, 2019.

データシートには「2019/6/30まで」が使用期間として記載されていますが、こちら「2019/12/31」まで利用することができるそうです。
(フォーラムで質問した際の回答ですので、利用者の責任において利用可能期間はきちんと確認するようにしてください。)
ライセンス的には「データベースの同期」の目的ではなく、「デーベースの移行」の目的で使う必要があるとなっていますので、移行が完了した際にはデータの同期は外す必要があるので、利用目的についてはご注意ください。

Written by Masayuki.Ozawa

1月 16th, 2019 at 12:54 pm

Azure の SQL Server VM のライセンスモデルの変更でできるようになったことをまとめてみる

leave a comment

昨年の 11 月に Azure Hybrid Benefit for SQL Server on Azure Virtual Machines という記事が公開されました。
技術文書も Azure での SQL Server 仮想マシンのライセンス モデルを変更する方法 として別途公開されています。
2019/1 時点のこのアップデートでできるようになったことをまとめておきたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 7th, 2019 at 11:13 pm

「待ち事象」を起点とした SQL Server のボトルネックの調査の基本 その 2

leave a comment

「待ち事象」を起点とした SQL Server のボトルネックの調査の基本 その 1 の続きになります。
前回の投稿では、待ち事象の説明や、待ち事象の情報の取得方法について触れてみました。
今回の投稿では、実際に情報を取得しながら、待ち事象を確認してみたいと思います。
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 5th, 2019 at 10:12 pm

「待ち事象」を起点とした SQL Server のボトルネックの調査の基本 その 1

leave a comment

先日、ZOZOTOWNで最大級のトラフィックを記録する福袋発売イベントで実施した負荷対策 という、ZOZOTOWN さんの負荷対策についての記事が公開されました。
はてブをみると、かなりの方がブックマークをされているようですね。
私も案件の中で、ボトルネック調査をすることがあるのですが、その際の基本的なアプローチをまとめる、良い機会かなと思って本投稿を書いてみました。
 

ボトルネックを調査する対象となる環境はどのようなものか?

ボトルネックの調査を行うための環境ですが、色々ケースがあるかと思います。
例えば、次のようなものがあるのではないでしょうか。

  • 自分が保守に携わっている本番環境で発生するパフォーマンス問題
  • 開発環境で発生するパフォーマンス問題
  • 特定のタイミング (例 : 夜間バッチ) 発生するパフォーマンス問題

ここ数年はフリーランスとして業務をしているため、保守 / 運用を通して「自分が恒常的に面倒を見ているシステムに対してのボトルネック解消」を受けるような機会はありません。
私がボトルネックの調査に携わる機会が多いのは、次のようなケースです。

  • 自分が開発 / 保守に携わっておらず、システムの中身が全くわからない環境で発生しているパフォーマンス問題

このようなケースのパフォーマンス問題に対しての調査の依頼というものは、毎年相談を受けます。
本投稿は、「自分が中身を知っているシステムではない環境」でパフォーマンスのボトルネックを調査する場合の、私が実際に行っているアプローチの一つとなります。
 
Read the rest of this entry »

Written by Masayuki.Ozawa

1月 3rd, 2019 at 11:24 pm

はじめて Go を触る際に参考にさせていただいた情報のメモ

leave a comment

以前作成した、Zaiba2 の SQL Server / SQL Database のメトリクス情報の取得は、PowerShell / PowerShell Core で実行可能なスクリプトとして実装していたのですが、TICK Stack の標準のメトリクスの仕組みでは、Go が使用されている Telegraf が使用されています。
Telegraf には、新しい Input Plugin を組み込むことができるのですが、それには Go を使用したコーディングが必要となるので、この機会に勉強をしてみました。
その際に、Go を始めるにあたって参考にした情報をメモとして。
テストコードの記述や、Release にコンパイル済みモジュールが追加できていないのですが、Go 版の Zaiba2 のメトリクス収集は zaiba2go として GitHub に放流してあります。
Read the rest of this entry »

Written by Masayuki.Ozawa

12月 27th, 2018 at 12:21 am

Posted in Go,SQL Server

Tagged with ,