SQLServer2008R2から2014へ移行する話①

こんにちは、uozyです。
最近は天候も良くいよいよゴルフの季節になってきましたね。


さて、弊社が提供しているサービスに「NTG-head」というデータ分析サービスがあります。
f:id:uozy:20150430183400p:plain
「NTG-head」はゴルフ場特化型データ分析サービスとして売上予測や来場者の動向分析など様々な機能を備えており、 導入頂いているコース様も増え着実に成長しているサービスです。

このサービスはAWSの各種サービス使用しておりDBエンジンとしてSQLServer2008R2を利用しています。 また、レポートエンジンとしてはSQLServerReportingServices(SSRS)を使用し、 https://msdn.microsoft.com/ja-jp/library/ms251671.aspx からSSRSのサービスを呼び出しブラウザに表示する仕組みとなっています。

サービスインして1年程経ちますが安定稼働しており目立った問題もなく運用できています。

それを今回はSQLServer2014に移行しようと思います。

なぜ移行するのか?

作りが悪くて直しようにも直せないとか、サポートが切れるとか、そういう話ではありません。
サービスの発展の為に最新の環境を提供したいという想いがあり今回の移行を決断しました。
ま、単純に2008に飽きたという話もあったりなかったりですが・・・(つω⊂)

移行して得られるメリット

  • DBエンジンの性能向上(インメモリOLTP・カラムストアインデックス)
  • SQLServerReportingServicesの機能向上
  • 新しいものに触っておきたいから(技術的な蓄積)

データ分析サービスなのでやはり一番のメリットはデータ処理速度の向上です。
Microsoftさんも、こう仰っているので期待しています。

"アプリを書き換えることなく、平均で10倍の高速化を実現" www.atmarkit.co.jp

また、レポートエンジンとしてSQLServerReportingServicesを利用しており、
こちらも機能アップしているので併せて試してみたいと思います。

移行手順

  1. 新規マシンの用意
    今回の環境です。
    WindowsServer2012 R2
    SQLServer2014 Standard
    AWSのAMIなら・・・ami-1641bb16
    Microsoft Windows Server 2012 R2 RTM 64-bit Locale Japanese
    with SQL 2014 Standard AMI provided by Amazon
    なおAWS Marketplaceには英語版しかありませんが、
    Community AMIsで検索すると日本語版が見つかります。
    SQLServerはインストール時の言語設定に依存する部分があるので、
    日本語インストールされているAMIを使用するのが良いと思います。

  2. 移行元(2008)でDBの完全バックアップを取得
     →普段通り完全バックアップを取得してください。

  3. 移行先(2014)でバックアップを復元
     →取得したフルバックアップをそのまま復元します。

移行後の設定

  1. 基本的な設定
    →サーバー設定とかログイン情報とかそういう類の設定ですね。ここは2008までと同じなので今回は割愛します。

  2. 互換性レベル
    →互換性レベルは移行元DBが100(2008)だと復元後も100(2008)に設定されます。このレベルの設定によりオプティマイザの動作方法が変わったりするわけです。新機能の恩恵を受けたいならば迷わず120(2014)に設定すべき箇所です。
    ※詳しくは、https://msdn.microsoft.com/ja-jp/library/bb510680.aspx
    また、互換性レベルを上げる事で廃止になった機能を使用している場合は修正が必要になってくるので注意が必要です。
    ※詳しくは、https://msdn.microsoft.com/ja-jp/library/ms144262.aspx

  3. 統計情報の更新
    オプティマイザが最新の統計を使用出来るように統計を更新しておきます。

sp_updatestats

まとめ

あまりにも普通に移行できてしまったのでちょっと感動が薄いですねw
特に難しい事をせずとも移行出来てしまうのはSQLServerのいいところですね。

次回は移行後のパフォーマンス比較やインメモリOLTP・カラムストアインデックス等の
新機能などを追いかけていきたいと思います。

バイバーイ\(^o^)/