SQL Server on Linux を Azure Linux 仮想マシンで使用する場合の注意点について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、Azure 管理ポータルのギャラリーからデプロイした SQL Server 2017 on Linux を含む Azure Linux 仮想マシンを使用する場合の注意点について紹介します。 SQL Server 2017 on Linux を使用するうえで スワップ領域 (Swap) を作成することが推奨されていますが、Azure 管理ポータルのギャラリーからデプロイした SQL Server 2017 on Linux を含むAzure Linux 仮想マシンの場合、デプロイ後の Linux には、スワップ領域 (Swap) が存在しないイメージが存在します。   # Free SQL Server License: SQL Server 2017…

0

Azure 仮想マシン上に作成した SQL Server の日本語化手順(Windows OS 版 SQL Server 2017 対応手順)

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 BI Data Platform サポートチームの 高原 です。 今回は、Azure 管理ポータルのギャラリーからデプロイした Azure 仮想マシン上に作成した SQL Server 2017 (Windows OS 版) の日本語化手順 について紹介します。   Azure 管理ポータルのギャラリーから、SQL Server を含む Azure 仮想マシンのイメージをデプロイすることが可能ですが、該当イメージに含まれている SQL Server は英語版となります。 SQL Server データベース エンジンの実行可能ファイルは全言語共通であるため、英語版 SQL Server でも、日本語を挿入可能なデータ型 (Unicode 型など) をテーブル列として追加することで、日本語データの格納、取り出し、また、検索を実施することが可能です。 しかしながら、管理ツールのインターフェースを日本語にする必要がある場合は、以下の手順を実施することで、日本語化することが可能です。   ◆ SQL Server 2012 、2014  および 2016 の日本語化手順は以下の…

0

既存の SQL Server ライセンスを使用し、Azure 仮想マシン上に SQL Server をインストールするためには。

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。  BI Data Platform サポートチームの 高原 です。 ※ BI Data Platformサポートチーム では、Microsoft SQL Server/Azure SQL Database/BI Azure などの製品をサポートしています。 今回は、既存の SQL Server ライセンスを使用し、Azure 仮想マシン上に SQL Server をインストールするために必要な契約について紹介します。   既存の SQL Server ライセンス を Azure 仮想マシン上の SQL Server で使用するためには、ソフトウェア アシュアランス (Software Assurance) の契約が必要となります。   SQL Server Azure VM の料金ガイダンス + ライセンスを持ち込む…

0

SQL Server における分散トランザクション 3

  神谷 雅紀 Escalation Engineer     以下の投稿で、分散トランザクションの開始から終了までの動作を説明しました。   SQL Server における分散トランザクション 1 SQL Server における分散トランザクション 2   本投稿では、分散トランザクションに関連するその他の一般的なトピックについて説明します。     ロック所有者 session_id (SPID) –2   MS DTC トランザクションにエンリストしているセッションがない場合、sys.dm_tran_locks 動的管理ビューでは、そのトランザクションが所有しているロックの所有者 session_id が –2 と表示されます。実際に –2 というセッションが存在する訳ではなく、そのロックに紐づくセッションがないために、便宜的に –2 という値を使用しているだけです。 以下の例では、4) と 5) の間、7) から 8) の完了までの間、-2 がこの分散トランザクションによって獲得されたロックの所有者として表示されます。   1) トランザクション開始 2) セッション 51 が SQL Server…

0

SQL Server における分散トランザクション 2

  神谷 雅紀Escalation Engineer   SQL Server における分散トランザクション 1 の続きです。   前回の投稿では、SQL Server における MSDTC の接続を確立する際の振る舞いと、コミットまでの動作を説明しました。本投稿では、ロールバック時のシナリオや異常系シナリオについて説明します。   分散トランザクションの流れ (前回からの続き)   8) トランザクションのロールバック   ロールバック前までの流れは、前回紹介したコミットの場合と同様です。   8-1) アプリケーションは、アプリケーション側 MS DTC に対して、トランザクションのロールバック (中断) を要求します。 8-2) アプリケーション側 MS DTC は、SQL Server 側 MS DTC に対して、トランザクションの中断を要求し、その要求は SQL Server に対しても行われます。 この時、Transaction is aborting トレース/拡張イベントが生成されます。 8-3) SQL Server でのロールバックが完了すると、その完了が SQL Server…

0

SQL Server における分散トランザクション 1

  神谷 雅紀Escalation Engineer     分散トランザクション 分散トランザクションとは、複数のリソースマネージャーで実行されるトランザクションを、ひとつのトランザクションとして実行するトランザクションです。       リソースマネージャー リソースマネージャー (RM) とは、トランザクションによって更新されるデータを管理しているコンポーネントです。通常は、SQL Server や Oracle などのデータベース管理システムです。   トランザクションマネージャー トランザクションマネージャー (TM) とは、トランザクションを管理し、各リソースマネージャーに対してトランザクションに関する指示を出すソフトウェアコンポーネントです。SQL Server は、トランザクションマネージャーとして、Microsoft Distributed Transaction Coordinator (分散トランザクションコーディネーター / MS DTC) を使用します。   SQL Server における分散トランザクション実行時のソフトウェア構成 SQL Server やアプリケーションは、MS DTC Proxy を使用して MS DTC とのやり取りを行います。 最も一般的な形は次の図のように、それぞれの Windows で動作している MS DTC を使用して分散トランザクションを実行します。 尚、通常リソースマネージャは複数 (上図のように右側のサーバーが複数ある構成)…

0

照合順序 – 文字の比較と並び順 (その 2)

神谷 雅紀Escalation Engineer   照合順序 – 文字の比較と並び順 (その 1) では照合順序とは何かを書きました。今回は、照合順序に関わるいくつかの注意点について書きます。     照合順序の衝突   異なる照合順序が指定されている列同士は、比較することができません。 以下は、その簡単なサンプルです。   use mastergodrop database ja_90_bin2go– 照合順序 japanese_90_bin2 のデータベースを作成create database ja_90_bin2 collate japanese_90_bin2gouse ja_90_bin2go– 照合順序 japanese_90_bin2 のデータベースに japanese_90_ci_as と japanese_90_cs_as の列を持つテーブルを作成create table dbo.ja_90_cias (c1 int, c2 nvarchar(10) collate japanese_90_ci_as)create table dbo.ja_90_csas (c1 int, c2 nvarchar(10) collate japanese_90_cs_as)go– japanese_90_ci_as と japanese_90_cs_as…

0

照合順序 – 文字の比較と並び順 (その 1)

神谷 雅紀Escalation Engineer 照合順序が分かりにくいという意見がありましたので、今回は照合順序を取り上げます。        照合順序とは何か SQL Server では、文字の大小関係を比較する場合の基準を照合順序 (collation) と呼んでいます。例えば、「朝」と「海」ではどちらが大きいのか、「あ」「ア」「ア」を大きい順に並べた場合どのように並ぶのかといった、文字の大小関係を決めているのが照合順序です。 言語としての日本語の観点では、「朝」と「海」のどちらが大きくても、さほど問題にはならないように思えるかもしれません。しかし、もしこれらの文字に大小関係がなかったら、データを大きい順に並べても毎回違った並び順になる可能性があります。さらに、もしこれらの文字に大小関係がなかったら、大きくも小さくもないということになります。大きくも小さくもないということは、   if (a < b) …else if (a > b) …else …   の式で最後の else に入るということであり、そこに入るのは a = b の場合だけです。つまり、等しいということです。「朝」と「海」が等しいとなると、それは言語としての日本語でも問題となってきます。 このように、照合順序 (文字の大小関係) は、データを扱う処理にとっては、重要な要素です。 照合順序はどのような場面で使われるのか 文字の比較を行うすべての場面で使われます。 例えば、インデックスを作成する際には、キー列の値順にインデックス行を並び替えるために使われます。select … from … order by Col1 のようなクエリでデータを並び替える際にも使われます。select … from … group by Col1 のようなクエリでグルーピングを行う際にも使われます。また、if (@a = @b)…

1

TempDB を圧縮する場合の注意点について

高原 伸城 Support Escalation Engineer   皆さん、こんにちは。 Microsoft SQL Server/Microsoft Azure SQL Database サポートチームの 高原 です。 今回は、TempDB を圧縮する場合の注意点について紹介したいと思います。   一時テーブルに大量のデータを挿入したり、大量データをソートする必要があるような ロング トランザクション を実行した場合、TempDB のファイルサイズが大きく拡張される可能性があります。 そして、拡張された TempDB のファイルサイズを最も安全に初期サイズまで縮小させるためには、SQL Server サービスの再起動を実施することになります。 しかしながら、24時間365日 稼働し続けるシステムの場合、SQL Server サービスを即座に再起動させることは困難であるものと想定しています。   そのため、TempDB についても、ユーザーデータベースと同様に、DBCC SHRINKDATABASE, DBCC SHRINKFILE コマンド、または、SQL Server Management Studio (以降 SSMS) の圧縮タスクで、データベースを圧縮することが可能になっています。   +参考情報 SQL Server で tempdb データベースを圧縮する方法   しかしながら、TempDB…

0

[若葉マークブログ] 第 3 回 : システム データベースとは

みなさん、こんにちは。若葉マークブログの第 3 回は、システム データベースについてお話したいと思います。 システム データベースとは、SQL Server が動作する上で必要なデータベースで、master、msdb、model、Resource、tempdb の5つのデータベースがあります。以下の表をご参照下さい。 また、SQL Server 2012 の既定のインスタンス (MSSQLSERVER) におけるデータベースを構成するファイルの既定の場所も記載しております。 データベース 説     明 master ≪含まれる情報≫SQL Server のシステム レベルの情報 ・ログオン アカウント ・エンドポイント ・リンク サーバー ・システム構成設定 など   SQL Server の初期化情報を記録するための情報 ・他のすべてのデータベースの管理情報 ・他のすべてのデータベースの場所   ≪バックアップの推奨タイミング≫ ・データベース作成後、変更後、削除後 ・サーバーまたはデータベースの構成値の変更後 ・ログオン アカウントの変更後、追加後   ≪物理ファイル 既定の場所≫ C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\master.mdf C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\mastlog.ldf   ≪備考≫…

0