SQL Server: SQL Server 2008 R2 への移行を計画する

SQL Server 2008 R2 への移行は簡単な作業ではありません。スムーズに移行できるように、ご使用の環境を調査して、移行手順を慎重に計画する必要があります。

Brien Posey

SQL Server 2008 R2 への移行は必ずしも簡単とは限りません。これはメジャー アップグレードなので、大規模な移行になります。ただし、他の多くのマイクロソフト製品と違って、SQL Server 2008 R2 では一括アップグレードがサポートされています。SQL Server 2000、SQL Server 2005、または SQL Server 2008 を実行している場合は、既存の SQL Server に SQL Server 2008 R2 をインストールできます。

ただし、多くの場合、SQL Server 2008 R2 への移行は、インストール ディスクを挿入してインストール ウィザードを実行するだけで済む単純な作業ではありません。場合によっては、SQL Server をアップグレードするのではなく、移行しなければならないことがあります。この記事では、SQL Server 2008 R2 に移行するためのいくつかのオプションについて説明します。

適切なアドバイス

メジャー アップグレードの前には、必ずインフラストラクチャの詳細な調査を実施することをお勧めします。このような場合、SQL Server アップグレード アドバイザーを使用すると、新しいバージョンの SQL Server に直接アップグレードできるかどうか、または移行しなければならないかどうかを判断するのに役立ちます。アップグレード アドバイザーでは、SQL Server がインストールされているサーバーを分析して、正常なアップグレードの妨げになる可能性があるすべての問題が報告されます。報告された問題は、アップグレード前または移行の計画に着手する前に修正できます。

SQL Server アップグレード アドバイザーは、SQL Server 2008 R2 Feature Pack に付属している無償のツールです (Microsoft ダウンロード センターからダウンロードできます)。SQL Server 2008 R2 Feature Pack をダウンロードして展開したら、アップグレード アドバイザーには \X64\Redist\Upgrade Advisor フォルダーからアクセスできます。x86 版と Itanium 版もあり、それぞれ \X86 フォルダーと \IA64 フォルダーからアクセスできます。

ほとんどの SQL Server インストールはミッション クリティカルなので、問題が発生する可能性があることを恐れて、アップグレード アドバイザーのようなユーティリティを実行したくないと考えるかもしれません。また、アップグレード アドバイザーを実行する前に、インストールが必要な必須コンポーネントが多数存在するので、このような懸念がさらに加速する場合があります。

さいわい、通常は、SQL Server を実行しているサーバーでアップグレード アドバイザーを直接実行する必要はありません。アップグレード アドバイザーは、Windows XP (SP2 以降)、Windows Vista、Windows 7、Windows Server 2003 (SP2 以降)、または Windows Server 2008 にインストールできます。アップグレード アドバイザーをインストールすると、SQL Server を実行しているサーバーをリモートで分析できます。ただし、1 つ例外があります。それは、サーバーで SQL Server Reporting Service を実行している場合は、アップグレード アドバイザーをサーバーのローカルで実行する必要があることです。

アップグレード アドバイザーでは、アップグレードの妨げとなる問題を適切に予測しますが、アップグレード アドバイザーで確認できない項目がいくつかあります。たとえば、デスクトップ アプリケーションや暗号化されたストアド プロシージャは分析できません。また、廃止された機能の確認に関する問題もあります。

SQL Server 2008 R2 では、SQL Server 2000 からのアップグレードがサポートされていますが、SQL Server は、長い年月をかけて大幅な進化を遂げました。SQL Server の各バージョンでは新機能が追加されてきましたが、削除された機能もたくさんあります。廃止された機能に関連する問題がアップグレード アドバイザーで報告されない場合もあります。また、アップグレード アドバイザーでは、Notification Services が分析されません (これは SQL Server 2008 で廃止されました)。

SQL Server の旧バージョンとの互換性の問題の一覧を掲載している TechNet の記事があります。この記事では、廃止されたり非推奨になっている SQL Server 機能と、SQL Server アプリケーションでエラーが発生する原因となる可能性がある一部の動作の変更も記載されています。この記事では、SQL Server 2008 以降に変更または廃止された機能しか取り上げられていないので、古いバージョンの SQL Server を実行している場合は、さらに調査して、ご使用のバージョンのリリース後に変更された可能性がある機能を確認する必要があります。

アップグレード パス

一括アップグレードを試す場合は、マイクロソフトで認められたアップグレード パスに従って作業する必要があります。基本的には、アップグレードできる SQL Server のバージョンとエディションは、現在使用しているバージョンによって決まります。

たとえば、SQL Server 2005 (x64) Enterprise (SP2 適用済み) を実行しているサーバーが 1 台あるとします。この場合、SQL Server 2008 R2 にアップグレードする際の選択肢は、Enterprise Edition か Datacenter Edition のいずれかへのアップグレードのみになります。マイクロソフトでは、さまざまなアップグレード シナリオでサポートされる SQL Server 2008 R2 のエディションに関する情報を詳細な表形式で公開しています。アップグレード パスについては多くの注意事項があるので、SQL Server 2008 R2 を購入する前に、この表を確認することをお勧めします。ただし、ほとんどのアップグレード パスに当てはまるいくつかの一般的な規則があります。その規則には、次のようなものがあります。

  • SQL Server の同じエディションまたは上位のエディションにのみアップグレードできます。たとえば、現在 Datacenter Edition を実行している場合は、Enterprise Edition にダウングレードする手段としてアップグレード プロセスを使用することはできません。
  • 同じ CPU アーキテクチャを引き続き使用する必要があります。現在、SQL Server の 32 ビット エディションを実行している場合は、アップグレード後も 32 ビット エディションを使用する必要があります。
  • Evaluation Edition または Personal Edition を実行しているサーバーのアップグレード パスはありません。

アップグレード アドバイザーは、アップグレードで発生する可能性がある問題を検出するのに便利なツールですが、すべての問題を検出できるわけではありません。アップグレード アドバイザーでテストできない状況がいくつかあるので、可能な場合は、試しにアップグレードを実行することをお勧めします。

そのためには、SQL Server、ドメイン コントローラーなど、必要なインフラストラクチャ サーバーの完全なシステム バックアップを作成します。作成したバックアップを、運用ネットワークに接続されていない仮想サーバーに復元して、運用環境の SQL Server の展開を複製します。この複製した環境が運用できるようになったら、SQL Server 2008 R2 へのアップグレードを試行して、アップグレード後に必要なすべてのテストを実行します。

このようなテストを行うには複雑すぎる環境もあります。そのような場合は、運用環境の SQL Server の展開にできるだけ近い状態のテスト展開を用意します。アップグレード中またはアップグレード後に問題が見つかる場合もありますが、運用サーバーよりも、ラボ環境で問題が検出された方が望ましいでしょう。

移行を行う

移行は、一括アップグレードが不可能な状況以外でも役に立ちます。また、サーバーのトポロジを変更したり (32 ビット展開から 64 ビット展開への移行など)、SQL Server を新しいサーバー ハードウェアに移行したりするための手段として移行を実行できます。

データベースを SQL Server 2008 R2 に移行する前に、SQL Server 2008 用の Microsoft Assessment and Planning (MAP) Toolkit をダウンロードすることをお勧めします。MAP Toolkit では、実際の移行プロセスは実行されませんが、移行の計画に役立ちます。MAP Toolkit で実行できる処理には、次のようなものがあります。

  • SQL Server のインベントリ: 組織内で実行されているすべての SQL Server インスタンスを特定できます。また、バージョン情報も収集できます。
  • ハードウェア情報: MAP Toolkit で SQL Server 展開のインベントリを作成する際には、SQL Server が実行されているハードウェアと CPU アーキテクチャ (32 ビットまたは 64 ビット) についてレポートすることもできます。
  • 移行の計画: 要件に基づいて、移行に適している SQL Server を特定するのに役立ちます。

移行のメカニズム

SQL Server 2008 R2 の移行に使用する正確な手順は、移行元の SQL Server のバージョンによって異なります。ただし、この記事では、実際の移行で必要な手順の概要を説明します。

最も単純な場合、移行プロセスでは、サーバーに SQL Server 2008 R2 をインストールして構成する手順が含まれます。次に、既存のデータベースのバックアップを、構成したサーバーに復元する必要があります。ただし、人生で起こるいろいろなことと同じように、細部をおろそかにすると痛い目に遭います。

最初の細部は、既存の SQL Server をバックアップする方法です。すべてのトランザクションが保持されるようにサーバーをバックアップする必要があります。データベースの access プロパティを Single_User に設定するか、データベースを "読み取り専用" に設定するのが理想的です。

バックアップを行う際の問題点は、バックアップと復元のプロセスに時間がかかることです。移行の予定によっては、完全バックアップと復元を行う時間が確保できない場合があります。このような場合は、前もって完全バックアップを実行しておくことで、移行にかかる時間を短縮できます。その後、実際に移行する前に差分バックアップを実行します。

SQL Server 2008 R2 が実行されているサーバーにデータベースを復元する場合は、SQL Server Management Studio でいくつかの復元オプションを指定する必要があります。具体的には、新しいデータベースに、復元するデータベースと同じ名前を付ける必要があります。また、[復旧状態] セクションにある [コミットされていないトランザクションをロールバックして、データベースを使用可能な状態にする。別のトランザクション ログは復元できません。] オプションを選択する必要もあります。

復元が完了したら、実行しなければならないことが 2 つあります。まず、データベースの access プロパティを Multi-User に設定して、ユーザーが再度データベースを使用できるようにします。それから、データベースの互換性レベルを SQL 2008 (モード 100) に設定します。この手順を省略すると、データベースが互換モードのままになることがあります。移行元の SQL Server のバージョンによっては、SQL Server 2005 および SQL Server 2008 で導入された機能が、互換モードによって機能しない場合があります。

このように、SQL Server 2008 R2 への移行はそれほど難しい作業ではありませんが、多くの手順を実行しなければなりません。互換性に関する問題を回避するには、前もって移行を慎重に計画する必要があります。

Brian Posey

Brien Posey は、MVP であり、数千件の記事と数十冊の書籍を執筆した実績のあるフリーランスのテクニカル ライターです。Posey の Web サイトのアドレスは brienposey.com (英語) です。

関連コンテンツ