Linux 上の SQL Server: 内部的な不具合にもかかわらず、問題なく動作します。なぜでしょうか?

Table of Contents

Linux 上の SQL Server: 内部的な不具合にもかかわらず、問題なく動作します。なぜでしょうか?

初見Microsoft が Linux 向け SQL Server のパブリック プレビューをリリースしたので、試してみました。

Linux 版 SQL Server は、Red Hat Enterprise 7.2、Ubuntu 16.04、Linux ベースの Docker エンジンの 3 つのプラットフォームをサポートしています。他のバージョンの Linux へのインストールも、サポート対象外ではありますが、動作する可能性があります。Docker イメージは Mac または Windows へのインストールを可能にします。Microsoft は、最小 3.25GB の RAM を指定しています。

テスト用に、Ubuntu 16.04「Xenial」を搭載した、8GBのデュアルプロセッサ搭載の仮想マシンにインストールしました。セットアップでは、ライセンス契約への同意とSA(システム管理者)パスワードの設定を行いました。その後、コマンドラインツールのsqlcmd(SQLクエリの実行)とbcp(一括コピー)をインストールしました。インストールスクリプトで自動起動を有効にするように求められます。

Linux上のSQL Serverとは何でしょうか?これは基本的にWindows SQL Serverと同じコードで、SQL Platform Abstraction Layer(SQLPAL)と呼ばれる互換性レイヤー上で動作しています。SQLPALはWindows API呼び出しをOSシステムコールにマッピングします。また、SQL OSと呼ばれる「ユーザーモードオペレーティングシステム」と呼ばれるコンポーネントも含まれています。これはハードウェアを抽象化し、タスクスケジューリング、メモリ管理、例外処理などのサービスを提供します。SQL OSは2005年からSQL Serverに搭載されていますが、Linux向けに開発されたものではなく、現在では拡張されています。

つまり、Windows でも、SQL Server は長い間、いくつかの仮想化技術を使用してきました。

SQLPALアーキテクチャを示すMicrosoftのスライド

SQLPALアーキテクチャを示すMicrosoftのスライド

SQLPALはMicrosoft ResearchのDrawbridgeという製品をベースにしているようですが、同じものではありません。長年SQL ServerチームのメンバーであるSlava Oks氏は、「これはSQLPALであり、もはやオリジナルのDrawbridgeではありません」とツイートしました。また、パフォーマンスを最適化するために「すべてのクリティカルパスからレイヤーを削除した」と述べていますが、別のツイートでは「多くの領域でまだ十分なパフォーマンス改善を行う機会がなかった」ため、今後さらに改善される可能性があると付け加えています。

SQL Server on LinuxはvNextバージョンであり、2017年に一般提供開始予定です。価格とライセンスはWindowsと同じで、無料のExpress版から上位版まで、同じエディションが提供されます。MicrosoftのSQL Serverゼネラルマネージャー、ローハン・クマール氏は、先日開催されたConnectイベントでEl Regに対し、「SKUは同じです。これは新たな導入オプションです。SQLライセンスをお持ちであれば、Linuxへの導入も選択できます」と述べました。

Windowsと同じコードを実行しているにもかかわらず、Linux製品はWindowsのすべての機能を備えているわけではありません。現在のプレビューでは、フルテキスト検索、レプリケーション、Stretch DB(Azureへのデータベース拡張)、Polybase(データウェアハウスへのクエリ)、Always On可用性グループ、Active Directory認証、SQL Serverエージェント、SQL Server R Services、Analysis Services、Reporting Services、Integration Services、Data Quality Services、Master Data Servicesなどの機能がサポートされていません。Kumar氏によると、CLR(.NET Runtime)ストアドプロシージャは有効化されていませんが、チームは将来的にクロスプラットフォームの.NET Coreとの統合を検討しています。

これらの機能の一部は、一般リリース前に有効になる可能性があります。

Linux インスタンスに接続された SQL Server Management Studio

Linux インスタンスに接続された SQL Server Management Studio

SQL Server Management Studio (SSMS) は引き続き Windows 専用ですが、Windows SSMS から Linux SQL Server インスタンスに接続しても問題ありません。開発者は Visual Studio のデータベースツールも使用でき、クエリ、テーブル設計、ストアドプロシージャの編集などが可能です。

Discover More