「インストール後に導入ミスをしていた」ことが判明した(インストールトラブル):SQL Serverトラブルシューティング(4)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、具体的な対処方法を紹介していきます。今回は異なるエディションを間違って入れてしまったなどの場合の原因と解決策を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。今回は、「インストール後に導入ミスが判明した」場合の原因と解決方法を解説します。
トラブル 03(カテゴリー:インストール):インストール後に導入ミスをしていたことが判明した
SQL Serverのインストールが済んだとしても、初期作業はまだ終わっていません。インストールしたSQL Serverが「設計通りに導入されているかを確認する」必要があります。
この段階でよくあるミスがこちらです。
トラブルの実例:使用するメディアを間違えてしまい、異なるエディション/ライセンスモデルをインストールしてしまった。
「Standard Edition」と「Enterprise Edition」のようなエディション単位での誤りの他に、「サーバ/CAL(Client Access Licence)モデル用のEnterprise Edition」と「コアベースライセンスモデル用のEnterprise Edition」などのライセンスモデルの誤認も、筆者がこれまで構築をサポートしてきた中でも混同してしまいがちなトラブルです。
参考として、Windows Server 2008 R2上にサーバ/CALモデル用とコアベースライセンスモデル用、それぞれのSQL Server 2012 CU4 Enterprise Editionをインストールしたときに生成されるログから、「バージョン情報の記述」を確認してみましょう(リスト3-1、リスト3-2)。
YYYY-MM-DD HH:MM:SS.00 Server Microsoft SQL Server 2012 - 11.0.2383.0 (X64) Oct 5 2012 19:35:54 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
YYYY-MM-DD HH:MM:SS.00 Server Microsoft SQL Server 2012 - 11.0.2383.0 (X64) Oct 5 2012 19:35:54 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
両者は、4行目の「Core-based Licensing」という文字列の有無で違いを確認できます。
トラブルの原因
では、なぜ混同してしまうのでしょう。
リスト3-1を再度ご覧ください。サーバ/CALモデル用のEnterprise Editionのログにはライセンスモデルを明確に示す記載がありません。単に「Enterprise Edition (64-bit)」とあるだけです。
そのために、コアベースライセンスモデル用のEnterprise Editionを使うユーザーは、間違いに気が付きにくいのです。
なお、ライセンスモデルの誤りは、ライセンス違反になるだけでなく、使用可能なコア数も異なるのでパフォーマンスに影響を及ぼす可能性があります。SQL Server 2012以降のエラーログの序盤を確認すると、使用しているコア数について記載があります(リスト3-3、リスト3-4)。
サーバー SQL Server detected 4 sockets with 10 cores per socket and 20 logical processors per socket, 80 total logical processors; using 40 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
サーバー SQL Server detected 4 sockets with 10 cores per socket and 20 logical processors per socket, 80 total logical processors; using 80 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
サーバ/CALモデルでは、SQL Serverのライセンスに基づいて、「80の論理プロセッサのうち、40の論理プロセッサを使います」とあるのに対し、コアベースライセンスモデルでは、「80の論理プロセッサのうち、80の論理プロセッサを使います」とあります。
解決方法
もし、導入するエディションを間違ってしまった、あるいは変更したい場合には、「エディションのアップグレード」と呼ばれる機能で修正する方法があります(*6)。
しかし、この方法では、上位エディション(例えば、Enterprise Edition)から下位のエディション(例えば、Standard Edition)へのダウングレードはできません。よくある例は、「Enterprise Editionを導入したが、機能が過剰なことが分かったので、低価格なStandard Editionにしたい」といった場合です。
この場合は、残念ながらEnterprise EditionからStandard Editionへのダウングレードパスが存在しないので、実作業としては、Enterprise Editionをアンインストールしてから、あらためてStandard Editionをインストールすることになります(*7)。
インストール作業でのトラブルは、その後のスケジュールに支障が生じるので、焦ってしまいがちです。しかし、「ちょっとしたことだから」「時間がないから」といってエラーやミスを放置して運用を始めてしまうのは絶対に勧められません。しばらくしてから重大な問題となり、システム停止を伴うほどの障害になってしまった事例を過去に何度か見ています。
そんな状況に陥らないよう、インストール前の準備、実際の作業時間、障害が発生してしまった場合の対応時間、インストール後の動作確認まで、余裕を持ってインストール作業の準備と時間を取ることが肝要です。
「インストール完了」までのチェックポイント
- システム要件を調査した上で、余裕を持ってインストール作業時間を計画する
- 導入後は、導入ディレクトリや機能などを含めて設計通りにインストールされているかを確認する
- 何かエラーは発生していないか、起動停止、フェイルオーバー、接続や動作に問題ないかを確認する
筆者紹介
内ヶ島 暢之(うちがしま のぶゆき)
ユニアデックス株式会社所属。Microsoft MVP Data Platform(2011〜 )。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を行っていた。2016年4月よりIoTビジネス開発の担当となり、新しい仕事に奮闘中。ストレッチをして柔らかい身体を手に入れるのが当面の目標。
椎名 武史(しいな たけし)
ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイクロソフト、「SQL Server 2016」正式版を2016年6月1日リリース
マイクロソフトは、データベースソフトウェアの最新版「SQL Server 2016」を6月1日より一般向けに出荷開始すると発表した。 - 「SQL Server 2016」に搭載される新たなセキュリティ対策を追う
パブリックプレビューが公開されているマイクロソフトのRDB次期版「SQL Server 2016」。特徴の1つとするセキュリティ対策機能のポイントと目指すところをキーパーソンに聞いた。 - クエリストアって何だ? SQL Server 2016のパフォーマンス向上に注目
2015年6月に開催されたイベント「DB tech showcase」の講演の中から、2016年にも正式版がリリースされる次期SQL Serverの目玉機能をウオッチ。 - Oracleから「SQL Server 2016」へ、マイクロソフトが移行支援策を展開
日本マイクロソフトが「SQL Server 2016」の導入支援策を発表。Oracle Databaseからの乗り換えで、ライセンスを特別価格で提供する。