MS SQL Server 2019 インストール完全ガイド:基本設定とベストプラクティスを徹底解説
本記事では、Microsoft SQL Server 2019 のインストール手順をステップバイステップで解説し、すべてのオプション、コンポーネント、関連する推奨事項、そしてベストプラクティスについて詳しくご紹介します。
MS SQL Server は主要なリレーショナルデータベース管理システム(RDBMS)であり、エンタープライズ分野では Oracle Database の最大の競合相手として知られています。
目次
- MS SQL Server 2019 のエディション
- SQL Server のライセンス体系
- SQL Server インストールの開始
- SQL Server 2019 コンポーネントのインストール
- SQL Server のインスタンス名
- SQL Server サービス設定の構成
- データベースエンジンのオプション設定
MS SQL Server 2019 のエディション
MSSQL 2019 には以下の 5 つのエディションが存在します。
- Express:無償で利用できるエディションです。機能に制限があり、最も重要な制限はデータベースの最大サイズが 10GB である点です。学生の課題や SQL/T-SQL の学習など、小規模なプロジェクトに適しています。
- Standard:フル機能を備えた商用エディションですが、一部制限があります。SQL Server が使用できる RAM の上限は 128GB で、AlwaysOn 可用性グループなどの一部コンポーネントは含まれません。中小規模の組織での導入に向いています。
- Enterprise:すべての機能とコンポーネントを制限なく利用できます。大企業や、高度な機能を必要とする会社で一般的に採用されるエディションです。
- Developer:Enterprise 版と同様に制限がなく無償で利用できますが、アプリケーションの開発およびテスト目的でのみ使用可能です。
- Web:Standard 版に似ていますが、より多くの制限がある代わりに、ライセンスコストも低く抑えられています。
SQL Server のライセンス体系
MS SQL Server には 2 つのライセンスモデルがあります。
- PER CORE(コアベース):ホスト(サーバー)の物理コア数に応じて MSSQL をライセンスします。
- SERVER + CAL:サーバー本体のライセンスに加え、それを利用する各ユーザーのライセンスを購入する方式です。
なお、Enterprise エディションは PER CORE モデルのみでライセンスされます。また、MSSQL Server 2019 では、コンテナ、仮想マシン、Big Data Clusters についてもライセンス契約が可能です。
SQL Server インストールの開始
本記事では、Windows Server 2019 上に MS SQL Server 2019 Enterprise Edition をインストールします。
補足:SQL Server 2019 は Linux を完全にサポートしており、Docker や Kubernetes でも動作します。
- SQL Server 2019 のインストールイメージをダウンロードし、マウントして setup.exe を実行します。
- 今回はスタンドアロンインスタンスをインストールするため、「インストール」タブから 「新しい SQL Server スタンドアロン インストール」を選択します。
SQL Server のインストールウィザードでは、これ以外にも以前のバージョンからのアップグレードやエラーの修復など、さまざまな操作を行うことができます。
SQL Server の更新プログラム設定
このステップでは、Windows Update 経由で更新プログラムを検索する機能を有効にできます。有効にするかどうかは任意ですが、サーバーに対して明確な更新計画がない場合は、この設定を有効にしておくことをおすすめします。
このステップでは次のようなエラーが発生することがあります。
Error 0x80244022: Exception from HRESULT: 0x80244022
これは Windows Update の問題に関連するエラーです。対処方法については Microsoft の公式ドキュメントやサポート記事をご参照ください。
その後、「次へ」をクリックして進みます。セットアップファイルのインストールは自動的に実行され、SQL Server のファイルがインストール用に準備されます。インストールルールも自動的にチェックされ、MSSQL のインストール前に解決すべき問題(再起動の必要性や Windows エディションとの非互換性など)が見つからなければ、そのまま完了します。
SQL Server のインストールタイプ
このステップでは、新しい SQL Server インスタンスをインストールするか、既存のインスタンスに機能を追加するかを選択できます。ここでは 「SQL Server 2019 の新規インストールを実行する」を選択します。
続いて、SQL 製品キーを入力します。製品キーをお持ちでない場合は、無料のエディション(Developer など)を選択してください。ただし Developer エディションは開発・テスト用途限定であり、本番環境では使用できない点に注意しましょう。
「ライセンス条項」のステップでは、ライセンス契約に同意します。
SQL Server 2019 コンポーネントのインストール
このステップでは、さまざまな SQL Server コンポーネントのインストールを求められます。それぞれの役割と、どれをインストールすべきかを見ていきましょう。
- Database Engine Services:SQL Server の中核となるエンジンです。必須のコンポーネントです。
- SQL Server Replication:レプリケーションサービスです。利用頻度が高い機能のため、必要かどうか確信が持てない場合はインストールしておくことをおすすめします。
- Machine Learning Services および Language Extensions:SQL Server のコンテキスト内で R/Python/Java のコードを実行するためのサービスです。機械学習を利用する予定があれば必要になります。
- Full-Text and Semantic Extractions for Search:全文検索技術やドキュメント(.docx など)に対するセマンティック検索が必要な場合に選択します。セマンティック検索には FILESTREAM も必要になります。
- Data Quality Services:データの修正や検証を行うサービスです。DQS が必要かどうか不明な場合は、インストールしないほうがよいでしょう。
- PolyBase Query Service For External Data:他の SQL Server や Oracle Database 上にあるような外部データへのアクセスを可能にします。HDFS データソース向けの Java コネクタは PolyBase 技術に関連しており、HDFS を利用したい場合はインストールしてください。
- Analysis Services:SSAS とも呼ばれます。大規模企業での BI(ビジネスインテリジェンス)レポートや OLAP 分析に使用される技術です。
次に、共有機能(特定のインスタンスではなくサーバー全体に適用される機能)の一覧に進みます。
- Machine Learning Server(スタンドアロン):Machine Learning Services と同等の機能ですが、SQL Server エンジンなしでインストールできます。
- Data Quality Client:単体で動作する DQS クライアント版です。
- Client Tools Connectivity:ODBC、OLE DB などのライブラリ群を含みます。インストールが推奨されます。
- Integration Services:SSIS とも呼ばれるデータ統合サービスです。ETL(抽出・変換・読み込み)処理に使用され、データを自動的に取り込みながら変換したい場合に必要となります。Scale Out Master/Worker は SSIS のスケーリングに使われますが、不要であればチェックを外しても問題ありません。
- Client Tools Backwards Compatibility:旧式の DMV やシステムプロシージャです。こちらもインストールが推奨されます。
- Client Tools SDK:開発者向けツールキットです。必要かどうか不明な場合はインストールしないでください。
- Distributed Replay Controller/Client:SQL Server Profiler の機能を複製・強化したものです。負荷テストなどのパフォーマンステストのシミュレーションに使用します。
- SQL Client Connectivity SDK:開発者向けの ODBC/OLE DB SDK です。
- Master Data Services:Power BI のコンポーネントのひとつで、データの分析、検証、統合、修正に使用されます。
HDFS 用 Java コネクタなどの一部機能は、旧バージョンの SQL Server では利用できません。
同じ画面で、SQL Server ファイルの保存先ディレクトリを指定することもできます。特別な理由がない限り、デフォルトの C:\Program Files\Microsoft SQL Server\ のままにしておきましょう。
必要な機能を選択すると、インストールウィザードがシステムとの互換性を確認し、問題がなければ自動的に次のステップへ進みます。
SQL Server のインスタンス名
既定のインスタンスのままにすることもできます。この場合、インスタンス名は MSSQLSERVER になります。名前付きインスタンスを選択した場合は、独自の SQL Server 名を設定できます。ここでは例として DEV という名前を付けます。混乱を避けるため、インスタンス ID もインスタンス名と同一にすることをおすすめします。
「インストール済みのインスタンス」の一覧には、サーバー上に既存の MSSQL インスタンスが表示されます。
SQL Server サービス設定の構成
「サービス アカウント」タブでは、SQL Server の各サービスがホスト上でどのアカウントで実行されるかを指定します。ベストプラクティスとしては、最も安全性が高い MSA(管理されたサービスアカウント)または gMSA(グループ管理サービスアカウント)を使用することです。ここでは通常のドメインユーザーアカウントを使用します。
SQL Server Agent のスタートアップの種類を「自動」に設定しておきましょう。そうしない場合、毎回手動でエージェントを起動する必要が出てきます。
また、SQL Server 2016 以降では、インストール時に IFI(Instant File Initialization/即時ファイル初期化)を有効にできるようになりました。インストールウィザード上では「SQL Server データベース エンジンに対してボリュームのメンテナンス タスク権限を付与する」という項目に相当します。これを有効にすると、以下の場合に古いデータがゼロで上書きされなくなります。
- データベースを作成する場合
- データファイルまたはログファイルにデータを追加する場合
- 既存ファイルのサイズを拡張する場合(自動拡張操作を含む)
- データベースやファイルグループを復元する場合
これによりファイル初期化が高速化されますが、古いデータがゼロ化されないため、ファイル内の過去の情報が部分的に残るというセキュリティ面の懸念があります。データ漏洩のリスクが低い環境であれば、この設定を有効にすることをおすすめします。
照合順序(Collation)の設定
次のステップでは照合順序(Collation)を選択します。
照合順序とは SQL Server の文字エンコーディングに関する設定で、ページのエンコーディング、並べ替えルール、char/varchar のエンコーディング、その他言語関連の設定を決定します。
サーバーインストール時に SQL Server 全体の照合順序を選択します。インストール後にも変更は可能ですが、作業がかなり煩雑になるため、最初に適切な照合順序を選んでおくのが賢明です。
英語のみのデータを扱う場合は、SQL_Latin1_General_CP1_CI_AS を選択すれば問題ありません。日本語を扱う場合は Japanese_CI_AS などが候補になります。
本番環境で SQL Server を運用する場合は、データベースごとに個別設定も可能とはいえ重要なパラメータであるため、公式ドキュメントの照合順序に関するセクションを必ず確認してください。
データベースエンジンのオプション設定
「データベース エンジンの構成」ステップでは 6 つのタブが表示されます。順番に見ていきましょう。
サーバーの構成(認証モード)
認証モードを選択し、SQL Server 管理者アカウントを指定します。選択肢は Windows 認証モードと混合モードの 2 つです。
- Windows 認証では、ドメインユーザーまたは Windows マシンのユーザーのみが認証できます。
- 混合モードでは、SQL Server のアカウントを使った認証も可能になります。
Microsoft は最も安全な方法として Windows 認証を推奨していますが、実際には Java 製アプリケーションなど、他のアプリからサーバーに接続するケースも多いでしょう。その場合は SQL Server 認証が必要になります。
ユーザーが Windows 搭載コンピュータや Windows 認証対応アプリからのみアクセスすると確信できるなら、Windows 認証モードを選択してください。ここでは混合モードを選択します。この場合、sa ユーザーのパスワードを設定し、管理者権限を持つ Windows アカウントを指定する必要があります。
データディレクトリ
「データ ディレクトリ」タブでは、SQL Server がデータベースファイルやトランザクションログを格納するディレクトリを指定します。
データの保存には専用の RAID ドライブを使用するのが理想的です。ディスクサブシステムは SQL Server のパフォーマンスにとって極めて重要なので、NAS や高速ディスクによるローカル RAID など、利用可能な中で最良のストレージ構成を選びましょう。
システムデータベース、ユーザーデータベースのログ、バックアップなど、すべてのディレクトリを別々のストレージに分散させることも良いプラクティスとされています。こうすることで、ストレージレベルで SQL Server の最大性能を引き出せます。ここでは、すべてのフォルダに対して個別の RAID 1 ドライブを指定します。
TempDB の設定
「TempDB」タブでは tempdb の設定を行います。tempdb はほぼすべてのデータ操作に関わるため、正しく構成することはサーバーパフォーマンスにとって非常に重要です。
- ファイル数:tempdb のデータファイル数です。CPU コア数に応じて指定する必要があります。目安としては CPU コア数を 2 で割った値が良いとされ、32 コアのサーバーなら 16 ファイルが推奨されます。また、コア数にかかわらず 8 ファイル未満にはしないことが推奨されています(マイクロソフトのサポート技術情報 KB2154845 参照)。
- 初期サイズ:tempdb データファイルの初期サイズです。サーバーを再起動するたびに tempdb のサイズは初期サイズに戻ります。予想されるワークロードに応じてサイズを指定するのが望ましく、見積もりが難しい場合はデフォルトの 8MB のままでも構いません。tempdb 専用のアレイやドライブを用意する場合は、頻繁なファイル拡張を避けるため、ディスク全体を埋めるサイズを指定するのがよいでしょう。
- 自動拡張:tempdb ファイルの増分拡張ステップです。初期サイズとの兼ね合いで設定します。将来の負荷が読めない場合は 64MB のままにしておきましょう。IFI が有効であれば、ファイル拡張時の待ち時間は大幅に短縮されます。大きな増分値を設定すると、ファイル拡張時に大幅な遅延が発生する可能性があるため注意が必要です。
- データディレクトリ:tempdb ファイルの配置先ディレクトリです。複数のディレクトリを指定した場合、ファイルはラウンドロビン方式(循環)で配置されます。たとえば 4 つのディレクトリを指定すれば、データファイルはすべてのディレクトリに均等に分散されます。ベストプラクティスとしては、データファイルごとに異なるディスクアレイを割り当てることです。
- TempDB ログファイルの初期サイズ/自動拡張:tempdb ログファイルの初期サイズと増分ステップを設定します。データファイルと同じ考え方が適用されます。
- ログディレクトリ:tempdb ログファイルの保存先です。データファイルの数にかかわらずログファイルは 1 つだけで、指定するディレクトリも 1 つです。可能であれば、ログファイルにも専用アレイを割り当てましょう。
MaxDOP の設定
MaxDOP は、並列クエリの実行と並列度を制御する SQL Server の設定です。SQL Server にすべての CPU コアを並列プランの処理に使わせたい場合は、MaxDOP 値を 0 に設定します。何らかの理由で並列クエリを無効化したい場合は 1 を設定します。最大のパフォーマンスを得るには、以下の表のルールに従って MaxDOP を構成してください(Microsoft の公式ガイドライン参照)。
| サーバー構成 | プロセッサ数 | ガイダンス |
|---|---|---|
| NUMA ノードが 1 つのサーバー | 8 以下の論理プロセッサ | MAXDOP を論理プロセッサ数以下に設定 |
| NUMA ノードが 1 つのサーバー | 8 を超える論理プロセッサ | MAXDOP を 8 に設定 |
| NUMA ノードが複数のサーバー | NUMA ノードあたり 16 以下の論理プロセッサ | MAXDOP を NUMA ノードあたりの論理プロセッサ数以下に設定 |
| NUMA ノードが複数のサーバー | NUMA ノードあたり 16 を超える論理プロセッサ | MAXDOP を NUMA ノードあたり論理プロセッサ数の半分に設定(最大値は 16) |
ここでは 0 に設定しました。これにより並列クエリの実行で最大のパフォーマンスが得られますが、全コアが現在のクエリの実行に占有されるため、他のプロセスが待たされる遅延が発生する可能性もあります。高負荷のサーバーでは、上記の表のルールに従うことをおすすめします。詳細は Microsoft の公式ドキュメントも併せてご覧ください。
メモリの設定
「メモリ」タブでは、SQL Server が使用する最小および最大の RAM サイズを指定します。適切な値を見積もるのは難しいため、一般的にはサーバー全体の RAM の 80〜85% を SQL Server に割り当てることが推奨されます。実際のメモリ使用量を把握するには、DMV(動的管理ビュー)などを利用して 24 時間体制でメモリ使用率を監視する必要があります。
ここではデフォルト値(最小 0、最大 2147483647 MB)のままにします。
FILESTREAM の設定
「FILESTREAM」タブでは FILESTREAM 機能を有効にできます。これはバイナリファイルをファイルシステム上に保存し、SQL 経由でアクセスできるようにする機能です。SQL レベルでバイナリデータを扱う予定がない場合は、FILESTREAM は無効のままにしておきましょう。
その後の「機能の構成ルール」ステップは自動的に完了します。「インストール準備完了」の内容を確認し、「インストール」をクリックしてください。
以上で、SQL Server 2019 Enterprise の基本的なインストールは完了です。次回の記事では、SQL Server のパフォーマンス分析やトラブルシューティングの主な方法について解説します。
補足:SQL Server 2014 や 2016 などの旧バージョンでは、一部のタブや設定項目が存在しない場合があります。
-
Windows 10 / Windows Server 2019でWindowsストアをブロックする4つの方法
Windowsストアは、Microsoftが提供する公式のソフトウェアプラットフォームで、個人用途やビジネス用途に合わせたさまざまなアプリをダウンロードできる場所です。Windows 8およびWindows Server 2012以降で利用可能になっています。しかし、状況によってはWindowsストアの起動を無効化したいケースがあります。無効化すると、ユーザーはWindowsストアから一切アプリをダウンロード・インストールできなくなります。特に企業環境では、セキュリティや運用管理の観点からWindowsストアを無効化することが求められるでしょう。Windows 10マシンでWindowsストア
-
統合データプラットフォーム「SQL Server 2019」徹底解説:ビッグデータ時代の新スタンダード
「データは新しいオイル」という言葉の起源 2006年、イギリスの数学者クライヴ・ロバート・ハンビーは「Data is the new Oil(データは新しいオイルだ)」という言葉を残しました。それ以来、IT業界のリーダーたちはこの言葉を繰り返し耳にし、その思想に共鳴しながら、データ活用への取り組みを一段と深めてきました。 ハンビーはさらにこう述べています。「データは確かに価値あるものだが、精製されなければ本来の力を発揮できない。石油がガソリンやプラスチック、化学製品へと加工されて初めて利益を生む活動を牽引する存在になるように、データも分解と分析を経て初めて真の価値を持つのだ。」 多くのITリー