【Ubuntu】SQL Server on Linuxのインストール

サーバー

「SQL Serverを用いたシステムを開発したい」
「Ubuntu上でSQL Serverを動かしたい」

このような場合には、この記事の内容が参考になります。
この記事では、UbuntuにSQL Serverをインストールする方法を解説しています。

本記事の内容

  • SQL Server on Linuxとは?
  • SQL Server on Linuxのシステム要件
  • SQL Server on Linuxのインストール
  • SQL Server on Linuxの動作確認

それでは、上記に沿って解説していきます。

SQL Server on Linuxとは?

SQL Server on Linuxとは、名前の通りLinuxで動くSQL Serverになります。
そもそも、以前はSQL ServerはWindows専用のデータベースでした。

それをLinuxでも動くようにしたということでしょう。
ただし、SQL Server on Linuxはオープンソースではありません。

一応、無償版も用意されています。
しかし、無償版をシステムで本格的に利用するのは難しいでしょう。

用意されているSQL Server のエディションは、以下があります。

  • Enterprise(有償)
  • Standard(有償)
  • Web(有償)
  • 開発者(無料)
  • Express Edition(無料)

開発者版であれば、制限なしでEnterprise版と同機能を利用できます。
もちろん、その場合は製品化はできません。

それでも、開発用にライセンスを購入しなくて済みます。
これは、何気に凄いことですね。

以上、SQL Server on Linuxを説明しました。
次は、SQL Server on Linuxのシステム要件を説明します。

SQL Server on Linuxのシステム要件

現時点(2022年7月)でのSQL Server on Linuxの最新バージョンは、SQL Server 2022 (16.x)となります。
この最新バージョンは、2022年6月にリリースされています。

ただし、これは正式版ではありません。
「Preview」とあるように、ベータ版と捉えた方がよいでしょう。

そうは言っても、基本的なシステム要件は正式版と変わらないはずです。
インストール方法も同じことでしょう。

よって、SQL Server 2022が正式版でもこの記事の内容は有効と言えます。
では、SQL Server on Linuxのシステム要件を説明していきます。

サポートされているプラットフォームは、以下。

プラットフォームファイル システム
Red Hat Enterprise Linux 8.0 – 8.5 ServerXFS または EXT4
Ubuntu 20.04 LTSXFS または EXT4
Linux 上の Docker エンジン 1.8 以降該当なし

そして、公式ではシステム要件が次のように記載されています。


要件
[メモリ]2 GB
ファイル システムXFS または EXT4 (BTRFS などの他のファイル システムはサポートされていません)
ディスク領域6 GB
プロセッサの速度2 GHz
プロセッサのコア数2 コア
プロセッサの種類x64 互換のみ

よほど古いマシンでない限りは、このシステム要件は問題ないでしょう。
そうだとすると、気になるのはUbuntu 20.04 LTSのみがサポート対象と言うことになります。

正式版の公開時には、Ubuntu 22.04 LTSも追記されるといいのですけどね。
おそらく、それはないとは思いますけど。

以上、SQL Server on Linuxのシステム要件を説明しました。
次は、SQL Server on Linuxのインストールを説明します。

SQL Server on Linuxのインストール

UbuntuへのSQL Server on Linuxのインストールは、PPAを利用します。
PPAは、Ubuntu公式以外のリポジトリを指します。

しかし、今回利用するのはマイクロソフトのパブリックなリポジトリです。
個人が勝手に公開しているモノではないので、安心して利用できます。

なお、リポジトリ登録には次のコマンドを利用します。

  • apt-key
  • add-apt-repository

これらのコマンドが利用できない場合は、次のパッケージをインストールしておきましょう。

sudo apt-get install software-properties-common apt-transport-https

準備が整ったら、SQL Server on Linuxのインストールを進めます。
まずは、リポジトリのGPGキーのインポートです。

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

SQL Server Ubuntuリポジトリを登録します。

sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-preview.list)"

リポジトリを登録できたら、パッケージリスト更新を行います。

sudo apt-get update

この時点でmssql-serverパッケージが認識可能となっています。

$ sudo apt info mssql-server
Package: mssql-server
Version: 16.0.600.9-2
Priority: extra
Section: misc
Maintainer: Microsoft Data Platform Group <dpgswdist@microsoft.com>
Installed-Size: 1,591 MB
Depends: libatomic1, libunwind8, libnuma1, libc6, adduser, libc++1, gdb, debconf, hostname, openssl (>= 1.0.1g), python3, libgssapi-krb5-2, libsss-nss-idmap0, gawk, sed, libpam0g, libldap-2.4-2, libsasl2-2, libsasl2-modules-gssapi-mit, tzdata
Conflicts: mssql-server-agent
Breaks: mssql-server-fts (<< 16)
Replaces: mssql-server-agent
Download-Size: 585 MB
APT-Manual-Installed: yes
APT-Sources: https://packages.microsoft.com/ubuntu/20.04/mssql-server-preview focal/main amd64 Packages
Description: Microsoft SQL Server Relational Database Engine
 The mssql-server package contains the Microsoft SQL Server Relational Database Engine.

パッケージの情報が確認できれば、あとはインストールするだけです。

sudo apt-get install -y mssql-server

インストールには、そこそこ時間がかかります。
インストールが完了したら、設定を行います。

SQL Server on Linuxの設定には、次のコマンドを用います。

sudo /opt/mssql/bin/mssql-conf setup

上記コマンドを実行すると、次のように表示されます。

$ sudo /opt/mssql/bin/mssql-conf setup
SQL Server のエディションを選択します:
  1) Evaluation (無料、製品使用権なし、期限 180 日間)
  2) Developer (無料、製品使用権なし)
  3) Express (無料)
  4) Web (有料)
  5) Standard (有料)
  6) Enterprise (有料) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
  7) Enterprise Core (有料) - CPU Core utilization up to Operating System Maximum
  8) 小売販売チャネルを介してライセンスを購入し、入力するプロダクト キーを持っています。

エディションの詳細については、以下を参照してください
 https://go.microsoft.com/fwlink/?LinkId=2109348&amp;clcid=0x411

このソフトウェアの有料エディションを使用するには、個別のライセンスを以下から取得する必要があります
Microsoft ボリューム ライセンス プログラム。
有料エディションを選択することは、
このソフトウェアをインストールおよび実行するための適切な数のライセンスがあることを確認していることになります。

エディションを入力してください(1-8):

とりあえず、ここでは無料で使える「Express」を選択します。
(プレビュー版は、ExpressであってもEvaluation扱いになり使用期限が存在します)
よって、「3」を入力してEnterを押します。

エディションを入力してください(1-8): 3
この製品のライセンス条項は
/usr/share/doc/mssql-server で参照できるほか、次の場所からダウンロードすることもできます:
 https://go.microsoft.com/fwlink/?LinkId=2104294&amp;clcid=0x411

プライバシーに関する声明は、次の場所で確認できます:
 https://go.microsoft.com/fwlink/?LinkId=853010&amp;clcid=0x411

ライセンス条項に同意しますか? [Yes/No]:

ライセンス条項には、もちろん「Yes」を入力してEnter。

ライセンス条項に同意しますか? [Yes/No]:Yes


SQL Server の言語の選択:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Руѝѝкий
(10) 中文 – 简体
(11) 中文 (繝体)
オプション 1-11 を入力:

言語は、日本語「6」を選択。

オプション 1-11 を入力: 6
SQL Server システム管理者パスワードを入力してください:

パスワードは、次の条件を満たす必要があります。

パスワードは 8 文字以上にし、大文字、小文字、数字、記号の 4 つのセットからいずれか 3 種類の文字を含める必要があります。

パスワードを入力したら、処理が開始されます。
環境によりますが、これも時間がかかりました。

ライセンス PID は正常に処理されました。新しいエディションは [Express Edition] です。
ForceFlush is enabled for this instance. 
ForceFlush feature is enabled for log durability.
DBSTARTUP (master, 1): InitPersistentVersionStoreTime took 702 ms
DBSTARTUP (master, 1): InitalizeForScansTime took 976 ms
DBSTARTUP (master, 1): PhysicalCompletionTime took 505 ms
DBSTARTUP (master, 1): PhysicalRecoveryTime took 580 ms
DBSTARTUP (master, 1): RecoveryCompletionTime took 621 ms
DBSTARTUP (master, 1): RedoRecTime took 317 ms
DBSTARTUP (master, 1): RemapSysfiles1Time took 207 ms
DBSTARTUP (master, 1): StartupInDatabaseTime took 43553 ms
DBSTARTUP (master, 1): UpgradeTime took 42731 ms
DBSTARTUP (model, 3): FileMgrPreRecoveryTime took 185 ms
DBSTARTUP (model, 3): InitPersistentVersionStoreTime took 157 ms
DBSTARTUP (model, 3): InitalizeForScansTime took 181 ms
DBSTARTUP (model, 3): LogMgrPreRecoveryTime took 302 ms
DBSTARTUP (model, 3): PhysicalCompletionTime took 203 ms
DBSTARTUP (model, 3): PhysicalRecoveryTime took 254 ms
DBSTARTUP (model, 3): RemapSysfiles1Time took 739 ms
DBSTARTUP (model, 3): StartupInDatabaseTime took 22567 ms
DBSTARTUP (model, 3): UpgradeTime took 20813 ms
DBSTARTUP (msdb, 4): FileMgrPreRecoveryTime took 135 ms
DBSTARTUP (msdb, 4): InitPersistentVersionStoreTime took 954 ms
DBSTARTUP (msdb, 4): InitalizeForScansTime took 1842 ms
DBSTARTUP (msdb, 4): OIBCleanupTime took 130 ms
DBSTARTUP (msdb, 4): PhysicalCompletionTime took 1070 ms
DBSTARTUP (msdb, 4): PhysicalRecoveryTime took 761 ms
DBSTARTUP (msdb, 4): RedoRecTime took 330 ms
DBSTARTUP (msdb, 4): RemapSysfiles1Time took 1971 ms
DBSTARTUP (msdb, 4): StartupInDatabaseTime took 47910 ms
DBSTARTUP (msdb, 4): UpgradeTime took 34010 ms
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
セットアップは正常に完了しました。SQL Server を起動しています。

以上、SQL Server on Linuxのインストールを説明しました。
次は、SQL Server on Linuxの動作確認を行います。

SQL Server on Linuxの動作確認

SQL Server on Linuxの起動状況を確認します。

$ systemctl status mssql-server --no-pager
● mssql-server.service - Microsoft SQL Server Database Engine
     Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-07-16 10:48:13 JST; 6min ago
       Docs: https://docs.microsoft.com/en-us/sql/linux
   Main PID: 96344 (sqlservr)
      Tasks: 219
     Memory: 985.8M
     CGroup: /system.slice/mssql-server.service
             ├─96344 /opt/mssql/bin/sqlservr
             └─96376 /opt/mssql/bin/sqlservr
〜

正常に起動していることを確認できます。
次は、SQL Server に接続してデータベースを作成してみましょう。

本来なら、このようになるはずです。
しかし、現状では何もできません。

現状、SQL Serverに接続する手段がありません。
SQL Serverサーバーをインストールしただけの状態ということです。

つまり、SQL Serverクライアントは何もインストールできていません。
データベースにおけるサーバーとクライアントについては、次の記事で説明しています。

今回はここまでとします。
SQL Serverクライアントについては、次の記事で説明しています。

以上、SQL Server on Linuxの動作確認を説明しました。

タイトルとURLをコピーしました