データベース エンジンのアップグレード

ここでは、アップグレード プロセスの準備および理解に必要な情報を提供します。内容は以下のとおりです。

  • アップグレードに関する既知の問題

  • アップグレード前の作業と注意点

  • データベース エンジンをアップグレードするための手順のトピックへのリンク

  • データベースを SQL Server に移行するための手順のトピックへのリンク

  • フェールオーバー クラスターに関する注意点

  • アップグレード後の作業と注意点

アップグレードに関する既知の問題

データベース エンジンをアップグレードする前に、「SQL Server データベース エンジンの旧バージョンとの互換性」を確認してください。サポートされるアップグレード シナリオとアップグレードの既知の問題については、「サポートされているバージョンとエディションのアップグレード」を参照してください。その他の SQL Server コンポーネントの旧バージョンとの互換性については、「旧バージョンとの互換性」を参照してください。

重要な注意事項重要

SQL Server のいずれかのエディションから別のエディションへアップグレードする前に、現在使用している機能がアップグレード先のエディションでサポートされているかどうかを確認します。

注意

SQL Server Enterprise エディションの以前のバージョンから SQL Server 2012 にアップグレードする場合は、"Enterprise Edition: コア ベース ライセンス" または "Enterprise Edition" を選択してください。これらの Enterprise エディションは、ライセンス モードのみが異なります。詳細については、「SQLServer のエディション別の計算容量制限」を参照してください。

アップグレード前のチェック リスト

以前のバージョンの SQL Server のアップグレードは、SQL Server セットアップ プログラムでサポートされています。また、以前の SQL Server バージョンのデータベースを移行することもできます。移行は、同じコンピューター上の SQL Server インスタンス間で行うことも、別のコンピューター上の SQL Server インスタンスから行うこともできます。移行オプションには、データベース コピー ウィザードの使用、バックアップ機能と復元機能、SQL Server Integration Services インポート/エクスポート ウィザードの使用、および一括エクスポート/一括インポート方式があります。

データベース エンジンをアップグレードする前に、必ず以下を実行してください。

SQL Server をアップグレードする前に、以下の問題点を確認して変更を行います。

  • SQL Server エージェントが MSX/TSX リレーションシップに参加している SQL Server のインスタンスをアップグレードする場合は、マスター サーバーをアップグレードする前に、対象サーバーをアップグレードします。対象サーバーより前にマスター サーバーをアップグレードすると、SQL Server エージェントは SQL Server のマスター インスタンスに接続できなくなります。

  • SQL Server の 64 ビット版から SQL Server 2012 の 64 ビット版にアップグレードする場合は、Analysis Services をアップグレードしてからデータベース エンジンをアップグレードする必要があります。

  • アップグレード対象のインスタンスからすべての SQL Server データベース ファイルをバックアップして、必要な場合はこれらのファイルを復元できるようにします。

  • アップグレード対象のデータベース上で適切なデータベース コンソール コマンド (DBCC) を実行して、データベースの一貫性を確保します。

  • SQL Server コンポーネントおよびユーザー データベースのアップグレードに必要なディスク容量を見積もります。SQL Server コンポーネントで必要とされるディスク容量については、「SQL Server 2012 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

  • 既存の SQL Server システム データベース (master、model、msdb、および tempdb) が自動拡張するように構成されていることを確認し、それらが十分なハード ディスク容量を備えていることを確認します。

  • すべてのデータベース サーバーが master データベースにログオン情報を持っていることを確認します。システム ログオン情報は master データベースに格納されるので、データベースを復元するにはこの作業が重要になります。

  • すべての起動ストアド プロシージャを無効にします。アップグレード プロセスでは、サービスの起動および停止はアップグレード中の SQL Server インスタンス上で行われます。起動時にストアド プロシージャを実行すると、アップグレード プロセスをブロックする可能性があります。

  • レプリケーションを停止し、レプリケーション ログが空であることを確認します。

  • SQL Server との従属関係を持つすべてのサービスを含むすべてのアプリケーションを終了します。アップグレード実行中のインスタンスにローカル アプリケーションが接続されている場合は、アップグレード操作が失敗する場合があります。

  • データベース ミラーリングを使用している場合は、SQL Server オンライン ブックの「サーバー インスタンスのアップグレード時に、ミラー化されたデータベースのダウンタイムを最小化する」を参照してください。

データベース エンジンのアップグレード

現在インストールされている SQL Server 2005 以降のバージョンを、バージョン アップグレードで上書きすることができます。SQL Server セットアップの実行時に以前のバージョンの SQL Server が検出された場合は、以前の SQL Server プログラム ファイルがすべてアップグレードされ、以前の SQL Server インスタンスに保存されているすべてのデータが保持されます。また、以前のバージョンの SQL Server オンライン ブックがコンピューター上に元の状態のまま残ります。

注記注意

SQL Server をアップグレードすると、以前の SQL Server インスタンスは上書きされて、コンピューター上に存在しなくなります。アップグレードする前に、SQL Server データベースおよび以前の SQL Server インスタンスに関連するその他のオブジェクトをバックアップしてください。

データベース エンジンをアップグレードするには、SQL Server インストール ウィザードを使用します。

アップグレード後のデータベース互換性レベル

tempdbmodelmsdb、および Resource データベースの互換性レベルは、アップグレード後、110 に設定されます。master システム データベースは、アップグレード前の互換性レベルを保持します。

アップグレード前のユーザー データベースの互換性レベルが 90 または 100 の場合は、アップグレード後も互換性レベルは変わりません。アップグレード前の互換性レベルが 80 以下の場合、アップグレードされたデータベースの互換性レベルは 90 に設定されます。これは、SQL Server 2012 でサポートされている下限の互換性レベルです。

注意

新しいユーザー データベースには、model データベースの互換性レベルが継承されます。

データベースの移行

SQL Server でバックアップと復元またはデタッチとアタッチの機能を使用して、ユーザー データベースを SQL Server インスタンスに移行することができます。詳細については、「バックアップと復元によるデータベースのコピー」または「データベースのデタッチとアタッチ (SQL Server)」を参照してください。

重要な注意事項重要

移行元と移行先両方のサーバーで同一の名前を持つデータベースは移動ま��はコピーすることができません。このような場合は、"既に存在します" と通知されます。

詳細については、「データベース コピー ウィザードの使用」を参照してください。

データベース エンジンのアップグレード後の作業

データベース エンジンをアップグレードした後は、次の作業を実行します。

  • サーバーを再登録します。サーバーの登録方法の詳細については、SQL Server オンライン ブックのトピック「サーバーの登録」を参照してください。

  • クエリ結果のセマンティクスの一貫性を維持するために、フルテキスト カタログを再作成します。

    SQL Server 2012 により、フルテキスト検索およびセマンティック検索に使用する新しいワード ブレーカーがインストールされます。ワード ブレーカーは、インデックスの作成時とクエリ時の両方に使用されます。フルテキスト カタログを再構築しない場合は、検索結果の一貫性が失われる可能性があります。以前のバージョンの SQL Server のワード ブレーカーと現在のワード ブレーカーで区切りが異なるフレーズを検索するフルテキスト クエリを発行すると、そのフレーズを含むドキュメントまたは行が検索されない場合があります。これはインデックスされたフレーズがクエリとは異なるロジックで区切られたためです。この問題を解決するには、新しいワード ブレーカーを使用してフルテキスト カタログを再作成 (再構築) し、インデックス時とクエリ時の動作が同一になるようにします。

    詳細については、SQL Server オンライン ブックの「sp_fulltext_catalog (Transact-SQL)」を参照してください。

  • 行数やページ数の誤りを修正するには、DBCC UPDATEUSAGE をすべてのデータベースに対して実行します。

  • SQL Server インストールを構成します。システムのセキュリティを向上させるため、SQL Server では、主要なサービスと機能を個別にインストールし、有効化できるようになっています。

  • SQL Server 2005 によって生成され、パーティション テーブルおよびパーティション インデックスに対するクエリに適用される USE PLAN ヒントを検証または削除します。

    SQL Server 2012 では、パーティション テーブルとインデックスでのクエリの処理方法が異なります。SQL Server 2005 で生成されたプランに USE PLAN ヒントを使用する、パーティション分割されたオブジェクトのクエリには、SQL Server 2012 で使用できないプランが含まれる場合があります。SQL Server 2012 にアップグレードした後は、次の手順を実行することをお勧めします。

    USE PLAN ヒントがクエリ内で直接指定されている場合 :

    1. USE PLAN ヒントをクエリから削除します。

    2. クエリをテストします。

    3. オプティマイザーによって適切なプランが選択されない場合は、クエリをチューニングし、USE PLAN ヒントを必要なクエリ プランと共に指定することを検討します。

    USE PLAN ヒントがプラン ガイドで指定されている場合 :

    1. sys.fn_validate_plan_guide 関数を使用して、プラン ガイドの有効性を確認します。また、SQL Server Profiler で、Plan Guide Unsuccessful イベントを使用して無効なプラン ガイドを確認することもできます。

    2. プラン ガイドが有効でない場合は、プラン ガイドを削除します。オプティマイザーによって適切なプランが選択されない場合は、クエリをチューニングし、USE PLAN ヒントを必要なクエリ プランと共に指定することを検討します。

    USE PLAN ヒントがプラン ガイドで指定されている場合、無効なプランが原因でクエリが失敗することはありません。この場合、USE PLAN ヒントを使用せずにクエリがコンパイルされます。

アップグレード前にフルテキストが有効または無効にマーク付けされていたデータベースは、アップグレード後もその状態を維持します。アップグレード後は、フルテキストが許可されているすべてのデータベースで、フルテキスト カタログが再構築され、自動的に生成されます。この処理には、多くの時間とリソースが必要になります。次のステートメントを実行すると、フルテキストのインデックス処理を一時停止することができます。

EXEC sp_fulltext_service 'pause_indexing', 1

フルテキスト インデックスの作成を再開するには、次のステートメントを実行します。

EXEC sp_fulltext_service 'pause_indexing', 0

関連項目

参照

サポートされているバージョンとエディションのアップグレード

概念

SQL Server の複数のバージョンおよびインスタンスの使用

旧バージョンとの互換性

レプリケートされたデータベースのアップグレード