SE の雑記

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

Archive for the ‘SQL Server on Linux’ tag

SQL Server on Linux の syslog をフィルターして OMS に連携する

leave a comment

OMS では標準機能として、syslog の連携機能を持っています
Log Analytics の Syslog データ ソース

上記のドキュメントに、次のように記載されているとおり、ファシリティ (Facility)と重要度 (Sevirity) で取得対象をフィルタすることができるようになっています。

OMS Agent for Linux は、構成で指定されているファシリティと重大度を持つイベントだけを収集します。 OMS ポータルを通じて、または Linux エージェントで構成ファイルを管理することによって、Syslog を構成できます。

image

Windows の場合、SQL Server 系のログがイベントログに出力されます。
Linux の場合は、syslog に出力されますので、syslog 経由でエラーの発生状況を監視することになるかと。

Read the rest of this entry »

Written by masayuki.ozawa

1月 21st, 2018 at 3:43 pm

Posted in SQL Server

Tagged with , ,

OMS + collectd を使用した SQL Server のパフォーマンス情報の収集

leave a comment

Windows 版の SQL Server であれば、SQL Server の各種情報をパフォーマンスモニター経由で取得 / ロギングすることができますが、Linux ではパフォーマンスモニターは使用することができないため、ほかの方法で SQL Server のパフォーマンス情報の取得を検討する必要があります。

方法の一つとして、collectd を使用して取得することができるかと。
今回は、collectd で取得した情報を OMS 連携して、パフォーマンス情報の取得を実施してみます。
詳細については、Log Analytics で Linux エージェント上の CollectD からデータを収集する を参照して下さい。

本投稿は、Ubuntu の環境で試したものとなっています。

また、collectd の SQL Server の設定については、mssql-monitoring の設定を使用しています。

Read the rest of this entry »

Written by masayuki.ozawa

1月 20th, 2018 at 11:55 pm

Posted in SQL Server

Tagged with , ,

SQL Server on Linux の syslog を OMS に連携してみる

leave a comment

SQL Server on Linux の ERRORLOG に出力されるようなメッセージについては syslog にも出力されるようになっています。

Azure の OMS では、syslog を連携することもできるため、Linux に OMS エージェントをインストールすることで、syslog を連携することができます。

Log Analytics の Syslog データ ソース

実際に連携した際の画面が次の画像になります。

image

現状、facility が daemon、severity が info の情報として出力されるため、次のような設定を OMS で実施することで受け取ることができるようになるかと。
image

Written by masayuki.ozawa

1月 13th, 2018 at 12:11 pm

Posted in SQL Server

Tagged with ,

Linux 版の bcp と sqlcmd の日本語対応状況のメモ

leave a comment

SQL Server on Linux 向けのコマンドラインとして、Windows 版の SQL Server でも実装されている「bcp」「sqlcmd」は、Linux 向けもリリースされていますが、日本語の扱いが Windows 版と少し異なる点がありますので簡単にではありますがまとめてみました。

各コマンドの Linux 版の詳細については、次のドキュメントから確認することができます。

私が検証した限りでは、次の操作は気を付けておく必要があるかと。

  • char / varchar で CP932 固有の文字の「テキスト形式でのエクスポート」
  • 日本語名のテーブルの bcp を使用したエクスポート
  • char / varchar で CP932 固有の文字の「コンソールへの出力」
  • bcp のデフォルトの改行コードが LF となる

日本語を使用していても、nchar / nvarchar で UTF-16 を使用しているものについては問題なく実行することができており、char /varchar についても Native 形式のエクスポートであれば問題はありませんでした。

  • bcp を使用して char / varchar に CP932 固有の文字を使用していて、テキスト形式でデータをエクスポートする

というような運用が必要な場合、Linux 版のコマンドラインツールだと少し問題が出てくるかもしれませんね。

bcp のドキュメントに次のように記載されているので、CP932 の扱いが

このリリースでは、Latin-1 および UTF-16 文字がサポートされています。

Linux の SQL Server に対して、Windows 環境から bcp / sqlcmd を実行した場合は従来通りの動作となるかと。

Read the rest of this entry »

Written by masayuki.ozawa

1月 8th, 2018 at 9:21 pm

Posted in SQL Server

Tagged with ,

SQL Server on Linux の可用性グループで手動フェールオーバーを実施した際に必ず意識しておきたいこと

leave a comment

リリース当初からドキュメントがかなり更新されており、ビジネス継続性とデータベース復旧 – SQL Server on Linux からの一連のドキュメントを確認しておけばよいはずではありますが、個人的に引っかかったところを。

可用性グループでしか試していませんが、FCI (Failover Cluster Instance) の構成を手動フェールオーバーした場合も同様かと思います。

詳細については SQL Server on Linux の HA 可用性グループを操作します。SQL Server on Linux の HA 可用性グループを操作します。 を確認してください。

このドキュメント、CTP のリリース時点から大幅に情報が加筆されていますので、プレビューリリース当初に目を通しただけの方は、再度情報を確認した方がよいかと思います。

Read the rest of this entry »

Written by masayuki.ozawa

1月 8th, 2018 at 7:32 pm

SQL Server 2017 の on Linux における分散トランザクションのサポート状況について

leave a comment

Linux 上の SQL Server 2017 のリリース ノート に次のような記載があります。

Distributed transactions requiring the Microsoft Distributed Transaction Coordinator service are not supported on SQL Server running on Linux. SQL Server to SQL Server linked servers are supported unless they involve the DTC. For more information, see Distributed transactions requiring the Microsoft Distributed Transaction Coordinator service are not supported on SQL Server running on Linux.

2017/12 末時点の SQL Server 2017 on Linux では、DTC がサポートされておらず、ローカルトランザクションによるトランザクションについては、サポートされていますが、DTC を使用したトランザクションについてはサポートされていません。
(ローカルトランザクションはサポートされているので、同一サーバー内の複数の DB に対してのトランザクションはサポートされています)

これについては、AlwaysOn 可用性グループの DTC サポート (DTC_SUPPORT = PER_DB) についても含まれているようで、Linux 版については、可用性グループの分散トランザクションサポート についても該当することになるかと思います。

Read the rest of this entry »

Written by masayuki.ozawa

12月 28th, 2017 at 5:12 pm

新しいコマンドラインツールの mssql-cli のクエリ実行方法のメモ

leave a comment

先日、新しいクロスプラットフォーム対応のコマンドラインツールである、mssql-cli というツールがリリースされました。

Try mssql-cli, a new interactive command line tool for SQL Server

今まで、コマンドラインで SQL Server に接続するためには、sqlcmd を使う機会が多かったと思います。
sqlcmd もクロスプラットフォーム対応されているのですが、このツール自体は、SQL Server 2005 から実装されたもので (それ以前は、osql / isql として実装)、バージョンによって改善はされているのですが、大きな変更はないツールだったのではないでしょうか。

mssql-cli は、モダンなコマンドラインツールとして開発が行われているもので、次の画像のように、コマンドラインでインテリセンスを使いながら入力をするということが可能です。 
クエリの実行履歴についても「~/.config/mssqlcli」配下の履歴ファイルに保存されていますので、クエリを後から確認もできます。

image

このツールは Python で実装されているのですが、どのようにして、SQL Server に対してクエリが実行されているのかが気になったのでちょっと調べてみました。

SQL Server に接続するアプリケーション開発のファーストステップのドキュメントとしては、Build an app using SQL Server がありますが、Python SQL ドライバー を使うのではなく、別のアプローチで接続しているんですね。

Read the rest of this entry »

Written by masayuki.ozawa

12月 24th, 2017 at 12:14 pm

Posted in SQL Server

Tagged with ,

SQL Server on Linux でメンテナンプラン相当の処理を実行する方法

leave a comment

SQL Server on Linux の非サポート機能として SQL Server Management Studio (SSMS) に「メンテナンスプラン」が記載されています。

SQL Server on Linux の SSIS では、一部の機能がサポートされていないのですが、メンテナンスプランのベースとなっている、制御フローのコンポーネントについてはサポート対象となっています。

サポートされており、サポートされていないコンポーネント
抽出、変換、および SSIS Linux でのデータを読み込む
SQL Server Integration Services ( SSIS ) on Linux とは

Read the rest of this entry »

Written by masayuki.ozawa

12月 10th, 2017 at 1:06 pm

SQL Server on Linux のメモリ周りの設定について

leave a comment

SQL Server on Linux では、Linux 特有の動作として OOM Killer があり、Windows 版とは異なるメモリ設定を意識しておく必要があります。

これについては、次のドキュメントで詳細に解説されています。

本投稿では、これらのドキュメントの内容についてまとめてみたいと思います。

Read the rest of this entry »

Written by masayuki.ozawa

12月 9th, 2017 at 12:05 pm

SQL Server 2017 CU2 で、on Linux のメモリ制限が 2GB に緩和されています

leave a comment

SQL Server 2017 CU2 で、SQL Server on Linux のメモリ制限が 3.25 GB から 2GB に緩和されています。

FIX: Minimum memory limit set to 2GB to install or start SQL Server 2017

各ドキュメントも更新が行われています。

Updating memory requirement to 2GB for CU2

Windows / Mac の Docker で使う場合などは、デフォルトの 2GB から変更する必要がありますよという説明をしていたのですが、CU2 からは説明しなくても大丈夫そうですね。

Written by masayuki.ozawa

12月 8th, 2017 at 7:09 pm