松本美穂と松本崇博が執筆した SQL Server 2014 実践シリーズの「No.2 SQL Server 2014 への移行とアップグレードの実践」の HTML 版です。 日本マイクロソフトさんの Web サイトで Word または PDF 形式でダウンロードできますが、今回、HTML 版として公開する許可をいただきましたので、ここに掲載いたします。[2015年12月29日]
旧バージョンの SQL Server(SQL Server 2005 や 2008、2008 R2、2012)を SQL Server 2014 へ移行/アップグレードするメリットは、次のとおりです。
SQL Server 2014 には、OLTP 向けのインメモリ機能である「インメモリ OLTP」や、DWH/BI 向けのインメモリ機能である「クラスター化列ストア インデックス」(カラム指向データベースの SQL Server 実装)、SSD をバッファ プールの一部として利用可能な「バッファ プール拡張」、トランザクション ログへの遅延書き込みが行える「Delayed Durability」、「クエリ オプティマイザーの改良」(新しい基数推定のアルゴリズムや SELECT INTO のパラレル処理)など、性能向上を実現できる機能が数多く搭載されています。
詳しくは後述しますが、クラスター化列ストア インデックスの早期導入を行った株式会社gloops では、約240倍の性能向上を実現しています。同社は、数多くのソーシャル ゲームを提供していることで有名ですが、人気ゲーム「スカイロック」でのユーザー行動分析用 DWH 作成や、ユーザー ランキングの生成に SQL Server 2014 を採用し、従来 12分かかっていたバッチ処理を、わずか 3秒に短縮、テーブル容量は 55GB から、わずか 2.8GB へと、1/20 にも圧縮することができています。
また、インメモリ OLTP の早期導入を行った bwin 社では約16.7倍の性能向上(最新の検証では約30倍の性能向上)、FX 取引で有名な SBIリクイディティ・マーケット株式会社では約2.5倍の性能向上(各種のパフォーマンス チューニングによって、元々のシステムと比べると約30倍の性能向上)、Edgenet 社では約8~11倍の性能向上を実現しています。
このように、SQL Server 2014 は、大きな性能向上を期待できることが最大のメリットです。
4つ前のバージョンである SQL Server 2005 から SQL Server 2014 への移行/アップグレードを行う場合には、SQL Server 2008 以降で提供された機能も大きなメリットになります。たくさんの性能向上に関する機能が提供されていますが、主なものは次のとおりです。
この中でも、SQL Server 2008 から提供された「データ圧縮」や「バックアップ圧縮」は、大きな性能向上を実現できる機能なので、弊社のお客様でもたくさん利用されています。
SQL Server 2005 や SQL Server 2008 を動作させる OS としては、Windows Server 2003 や Windows Server 2003 R2 を利用しているという場合が多いのではないでしょうか。弊社のお客様にもたくさんいらっしゃいます。Windows Server 2003/2003 R2は、2015年7月15日にサポートが期限切れになるので、これ以降は、もし新たな脆弱性が見つかったとしても修正プログラムが提供されなくなってしまいます。
これは、OS を Windows Server 2012 R2 などへ移行/アップグレードする良い機会になります。また、SQL Server 2005 は Windows Server 2012/2012 R2 上では動作させることができないので、SQL Server も合わせてアップグレードする良い機会にもなります(SQL Server 2005は、Windows Server 2008/2008 R2上では動作させることができますが、より最新の OS へアップグレードすることで、サポート期限を長くすることができます)。
OS の移行/アップグレードに関する情報は、以下のキャンペーン サイトが参考になると思います。
http://www.microsoft.com/ja-jp/server-cloud/local/products/windows-server-2012-r2/migration/campaign.aspx
「OS が変わると、SQL Server の動作が心配」という方もいらっしゃると思いますが、SQL Server は、SQL Server だけで完結した製品なので、OS の影響をほとんど受けません(OS が変わったとしても、SQL Server の動作にはほとんど影響がありません。影響があるのは NTFS アクセス許可ぐらいです)。弊社のお客様でも、SQL Server をアップグレードするタイミングで OS を変更することが多いのですが、該当マシンを SQL Server 専用として利用している場合には、今まで(SQL Server で)問題が起きたことはありません。
また、Windows Server 2008 R2 以降は X64(64ビット)環境のみのサポートになるので、32ビットから 64ビット環境へ移行するという場合もあると思いますが、SQL Server 専用のマシンであれば、この影響もほとんどありません。SQL Server の機能は、32ビットでも 64ビットでも全く同じように動作させることができ、むしろ 64ビット化することによる性能メリットが(必ずといっても過言ではないほど)得られます。弊社のお客様でも、32ビットを 64ビット環境に移行することで、確実に性能向上しています。
これは最近のハードウェア性能の向上による影響も大きく、数年前に比べてメモリが非常に低価格になっていたり、CPU コア数の増加や、ファイバ チャネルなどストレージ接続部分での高速化、SSD/フラッシュ ストレージの低価格化など、数年前と同じ金額で、(当時と比べると)非常に高性能なマシンを購入することができます。例えば、メモリを 128GB 搭載したマシンでも、エントリ レベルのサーバーであれば 200万円以下で購入できてしまいます。
過去に、32ビットから 64ビット環境への移行時に問題となりえたのは、IIS(Web サーバー)上で ASP/ASP.NET を動作させていた場合で、この場合は(32ビットの)COM コンポーネントを動作させるために、いくつかの修正が必要になりました(SQL Server のデータベースに関しては修正の必要はありませんでした)。
SQL Server 2005 から SQL Server 2014 へのデータベースの移行もサポート
詳しくは第5章の「データベースの移行手順」で説明しますが、最も基本となるデータベース エンジン部分に関しては、SQL Server 2005 から SQL Server 2014 では大きな変化はないので、SQL Server 2005 上で取得したデータベースのバックアップを SQL Server 2014 上にリストアしても、多くの場合は何の問題もなく動作します。実際、弊社のお客様でも、今のところ 4社のデータベースを移行/アップグレードして検証していますが、特に問題は発生していません(ストアド プロシージャやアプリケーションは問題なく動作し、OS を変更した影響もありません)。また、前述したような SQL Server 2014 からの新機能が利用できることによって、多くの処理で性能向上を実現することができるので、アップグレードするメリットがあります。
なお、SQL Server 2014 は、Windows Server 2003/2003 R2 へはインストールすることができないので、SQL Server 2005+Windows Server 2003/2003 R2 の環境を SQL Server 2014 へ移行/アップグレードするには、OS を Windows Server 2008 SP2(Service Pack 2)以降に上げておく必要があります(後述しますが、SQL Server 2014 の OS の最低要件が Windows Server 2008 SP2 になります)。
また、SQL Server 2014 は、32ビット(x86)環境でも動作させることができますが、32ビット上で大容量メモリを利用するためのオプションである「AWE」(Address Windowing Extensions)は、SQL Server 2012 から未サポートになっているので、大容量メモリをフル活用するためには、64ビット版(X64)を利用する必要があります。これは、32ビット環境を 64ビット環境へ移行する良い機会にもなります。
SQL Server は、DWH(データ ウェアハウス)および BI(ビジネス インテリジェンス)関連の機能がバージョンが上がるたびにどんどん進化しているのも大きな特徴です。SQL Server 2014 からは「Power View の多次元対応」や、さまざまなデータソースからデータを取得/加工することができる「Power Query for Excel」などが提供されて、さらに充実しています。
SQL Server 2005 から SQL Server 2014 へ移行/アップグレードする場合には、SQL Server 2008 以降で提供された以下の DWH/BI 機能を利用できることも大きなメリットになります。
SQL Server 2005 と比較すると、Reporting Services が特に大きく進化しています。レポートが非常に作りやすくなって、かつ多彩なグラフ表現ができるようになったことで、弊社のお客様にも大変好評です。Excel と同じようなレポートを作成することも可能で、弊社のお客様では、今まで Excel で(人手で)管理していたワークシート(分析レポート)を、Reporting Services に移行することで分析レポートの作成を自動化する、といった使い方をしていたりします。
Reporting Services の多彩なグラフ表現(Excel と同じようなグラフ/レポートを作成可能)
また、SQL Server 2012 からはインメモリの BI エンジンとして Analysis Services が強化されたことも大きな進化です。従来の Analysis Services の多次元モデルよりも、高速な分析を行えるようになり、大量のデータ/ビッグデータにおける多次元分析にも利用することができます。
SQL Server 2014 は、Microsoft の提供するクラウド環境「Microsoft Azure」上の仮想マシン(VM:Virtual Machine)で動作させることもできます。また、Microsoft Azure の提供する「SQL データベース」(旧名:SQL Azure)サービスを利用すれば、SQL Server とほとんど同等のデータベース エンジン機能をクラウド利用することもできます。SQL Server の Microsoft Azure 対応機能には、主に次のものがあります。
バージョンが上がるごとに、クラウト対応機能が充実していき、SQL Server 2008 のころはコマンド ラインでしか操作できなかったものが、SQL Server 2014 では多くの操作が GUI でできるようになり、設定を容易に行えるウィザードもたくさん提供されるようになりました。
SQL Server 2014 では、オンプレミス(ローカル環境)のデータベースを、SQL データベースや Microsoft Azure 上の仮想マシンに簡単に配置(複製)することができたり、クラウド バックアップ(オンプレミスのデータベースをクラウド上にバックアップ)したり、クラウド DR(ディザスター リカバリ)を簡単に構成できる AlwaysOn 可用性グループのウィザードが提供されたりしています。
前述したように、SQL Server 2005 から SQL Server 2014 への移行/アップグレードを行う場合には、SQL Server 2008 以降で提供された機能も大きなメリットになりますが、ここまでに挙げた以外にも、次のような役立つ機能があります。
SQL Server 2005 と比較すると、コンプライアンス(法令遵守)関連の機能が非常に充実しています。SQL Server 2008 からの SQL Server Audit 機能を利用すれば、SQL Server に対するあらゆる操作の監査/ログ記録を行うことができるようになり、透過的なデータ暗号化機能を利用すれば、物理ファイルを暗号化することもできます。
SQL Server Audit で監査を作成しているときの様子
SQL Server 2008 からは、パフォーマンス データ コレクション機能が提供されたことも大きな特徴です。この機能を利用すれば、SQL Server の動作状況を自動監視することができ、監視した結果をもとにグラフィカルなレポートを生成してくれるので、性能監視を非常に簡単に行えるようになります。
パフォーマンス データ コレクションで性能監視をしているときの様子(グラフが自動作成される)
SQL Server 2012 からは、AlwaysOn 可用性グループ機能が提供されたことも大きな進化です。これは、データベース ミラーリングを進化させたような機能で、サーバー間でのデータベースの複製ができることはもちろん、セカンダリ(複製)側のデータをリアルタイムに参照できたり、セカンダリを複数台(SQL Server 2012 では最大 4台、SQL Server 2014 からは最大 8台)構成できたり、セカンダリ側でデータベースのバックアップを取得したりすることもできます。データベースの複製による可用性の向上だけでなく、セカンダリを有効活用することもできるようになっています。また、前述したようなクラウド DR(セカンダリを Microsoft Azure 上に配置)を実現することもできます。
これらの SQL Server 2008 以降に提供された新機能については、SQL Server 2014 自習書シリーズの「SQL Server 2005 ユーザーのための SQL Server 2014」で詳しく説明する予定なので、こちらもぜひご覧いただければと思います(ステップ バイ ステップ形式で簡単に試せるようにしたものを提供する予定です)。
第60回:SQL Server 2017 自習書 No.3「SQL Server 2017 Machine Learning Services」のご案内
第59回:SQL Server 2017 自習書 No.2「SQL Server 2017 on Linux」のご案内
第58回:SQL Server 2017 自習書 No.1「SQL Server 2017 新機能の概要」のご案内
第57回:SQL Server 2017 RC 版とこれまでのドキュメントのまとめ
第56回:「SQL Server 2016 への移行とアップグレードの実践」完成&公開!
第55回:書籍「SQL Server 2016の教科書 開発編」(ソシム)が発刊されました
第54回:「SQL Server 2016 プレビュー版 Reporting Services の新機能」自習書のお知らせ
第 53 回:SQL Server 2016 Reporting Services の新しくなったレポート マネージャーとモバイル レポート機能
第 52 回:SQL Server 2016 の自習書を作成しました!
第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回: iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回: PASS Summit 2012 参加レポート
第31回: SQL Server 2012 Reporting Services 自習書のお知らせ
第30回: SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回: 書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回: SQL Server 2012 の Power View 機能のご紹介
第25回: SQL Server 2012 の Data Quality Services
第24回: SQL Server 2012 自習書のご案内と初セミナー報告
第23回: Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加