SQL Server 2000 のログ配布構成の SQL Server 2008 への移行
SQL Server 2000 のログ配布構成を SQL Server 2008 にアップグレードすることはできません。SQL Server 2000 ではログ配布にデータベース保守計画ウィザードが必要でしたが、SQL Server 2005 からはログ配布構成には不要になりました。したがって、サーバーを SQL Server 2008 にアップグレードした時点で現行のログ配布機能は使用できなくなります。
SQL Server 2000 のログ配布構成は移行できます。このトピックでは、そのための方法を紹介します。
移行時にフェールオーバーを使用すると、ログ配布構成の各サーバーをアップグレードする間もデータベースの可用性を維持できます。セカンダリ データベースを再初期化する必要はありません。
フェールオーバーを併用しない移行を行うと、セカンダリ サーバーへのフェールオーバーが不要なので簡単です。この方法では、プライマリ サーバーをアップグレードする間、データベースを使用できなくなります。セカンダリ データベースを再初期化する必要はありません。
完全バックアップからのセカンダリ データベースの再初期化を含め、ログ配布を完全に再配置します。
SQL Server 2008 にログ配布構成を移行した後に、SQL Server 2000 のログ配布で作成したテーブルおよび SQL Server エージェント ジョブを削除できます。
注意 |
|---|
バックアップの圧縮は SQL Server 2008 Enterprise で導入されました。移行されたログ配布構成では、backup compression default サーバー レベル構成オプションを使用して、トランザクション ログ バックアップ ファイルにバックアップ圧縮を使用するかどうかを制御します。ログ バックアップのバックアップ圧縮動作は、ログ配布構成ごとに指定できます。詳細については、「ログ配布を有効にする方法 (SQL Server Management Studio)」を参照してください。 |
制限事項
SQL Server 2000 ログ配布構成を SQL Server 2008 に移行すると、セカンダリ データベースをスタンバイ モードにすることができなくなります。
フェールオーバーを併用する移行
フェールオーバーを併用したログ配布構成の移行では、セカンダリ サーバー インスタンスをアップグレードする間、プライマリ サーバー インスタンスを一時的に元のバージョンの SQL Server にしておく必要があります。サーバー インスタンスのアップグレードでは、オンライン データベースのみがアップグレードされます。ログ配布セカンダリ データベースなどのオフライン データベースは、元のバージョンの SQL Server のままです。データベースがオフラインのままであれば、元のバージョンの SQL Server のログ バックアップは復元できます。
ここでは話をわかりやすくするため、SQL Server 2000 のログ配布プライマリ サーバー インスタンスをサーバー A、SQL Server 2000 のログ配布セカンダリ サーバー インスタンスをサーバー B と呼ぶことにします。この構成を次の図に示します。この図には、プライマリ サーバー インスタンス A とセカンダリ サーバー インスタンス B が示されています。
.gif)
セカンダリ サーバー インスタンスのサーバー B を SQL Server 2008 にアップグレードします。サーバー B をアップグレードするとき、ログ配布データベースはオフラインなので SQL Server 2000 データベースのままです。このデータベースは次の手順でアップグレードします。ログ ファイルをコピーおよび復元する SQL Server 2000 ログ配布ジョブは機能しなくなります。
注意この時点では、ユーザーは引き続きサーバー A のプライマリ データベースにアクセスできます。
プライマリ サーバー インスタンスのサーバー A からセカンダリ サーバー インスタンスのサーバー B にフェールオーバーします。
フェールオーバーするには、適用されていないトランザクション ログ バックアップを、サーバー A のプライマリ データベースからサーバー B に復元します。
WITH NORECOVERY を指定してプライマリ データベースのトランザクション ログの末尾を手動でバックアップします。このログ バックアップは、まだバックアップされていないログ レコードをキャプチャし、データベースをオフラインにします。
プライマリ サーバーの AdventureWorks データベースのログの末尾をバックアップする例を次に示します。バックアップ ファイルの名前は、Failover_AW_20080315.trn です。
BACKUP LOG AdventureWorks TO DISK = N'\\FileServer\LogShipping\AdventureWorks\Failover_AW_20080315.trn' WITH NORECOVERY; GOWITH RECOVERY を使用してトランザクション ログの末尾を復元し、サーバー B のセカンダリ データベースをオンラインにします。
フェールオーバー処理によってセカンダリ データベースがオンラインになった後、自動的に SQL Server 2008 データベースにアップグレードされます。データベースのアップグレード処理ではすべてのログが記録されます。
注意ユーザーは、アップグレード後にサーバー B のログ配布データベースを使用できるようになります。ただし、サーバー B で SQL Server 2008 ログ配布が構成されるまで、サーバー B のデータベースのログ バックアップは取得されません。
サーバー A を SQL Server 2008 にアップグレードします。ログ配布データベースはオフラインなので一時的に SQL Server 2000 データベースのままになります。
サーバー B で、サーバー B をプライマリ サーバーとし、サーバー A をセカンダリ サーバーとする SQL Server 2008 のログ配布を構成します。サーバー A へのトランザクション ログの配布を開始した後に、最初のログ バックアップが適用された時点でサーバー A のログ配布データベースが SQL Server 2008 データベースにアップグレードされます。
重要サーバー B でログ配布を構成する際には、[セカンダリ データベースの設定] ダイアログ ボックスの [セカンダリ データベースの初期化] タブで、必ず [いいえ、セカンダリ データベースは初期化されています] を選択します。詳細については、「ログ配布を有効にする方法 (SQL Server Management Studio)」を参照してください。
必要に応じて、サーバー A を再度プライマリ サーバーにする場合は、サーバー A にフェールオーバーします。詳細については、「プライマリとセカンダリ間のロールの切り替え」を参照してください。
フェールオーバーを併用しない移行
フェールオーバーを使用せずに SQL Server 2000 のログ配布構成を SQL Server 2005 に移行することもできます。この方法では、ログ配布構成の両方のサーバー インスタンスを簡単にアップグレードできますが、プライマリ サーバー インスタンスを SQL Server 2008 にアップグレードする間はプライマリ データベースを使用できません。
セカンダリ サーバー インスタンスを SQL Server 2008 にアップグレードします。セカンダリ サーバー インスタンスをアップグレードするとき、ログ配布データベースはオフライン状態なので SQL Server 2000 データベースのままです。ログ ファイルをコピーおよび復元する SQL Server 2000 ログ配布ジョブは機能しなくなります。
プライマリ サーバーを SQL Server 2008 にアップグレードします。アップグレードの進行中はプライマリ データベースを使用できません。
プライマリ サーバー インスタンスからセカンダリ サーバー インスタンスへのログ配布を構成します。[セカンダリ データベースの設定] ダイアログ ボックスの [セカンダリ データベースの初期化] タブで、必ず [いいえ、セカンダリ データベースは初期化されています] を指定します。詳細については、「ログ配布を有効にする方法 (SQL Server Management Studio)」を参照してください。
重要SQL Server 2000 のログ配布構成で使用したのと同一のバックアップ共有を指定してください。これにより、SQL Server 2008 でログ配布を有効にしたときに、セカンダリ データベースにすべてのログ バックアップが正しく適用されます。
データベースのアップグレード処理はすべてのログが記録されるので、セカンダリ サーバー インスタンスへのログ配布を開始した時点でセカンダリ データベースは SQL Server 2008 データベースにアップグレードされます。
ログ配布の再配置
ログ配布構成を移行したくない場合、プライマリ データベースの完全バックアップおよび復元によってセカンダリ データベースを初期化し直すことで、ログ配布を始めから再配置できます。使用しているデータベースが小さい場合、またはアップグレード中は高い可用性が必要ない場合、この方法が適しています。
ログ配布を有効にするには
SQL Server 2000 のログ配布テーブルおよびジョブの削除
SQL Server 2008 によって、SQL Server 2000 で使用していたログ配布テーブルが使用されることはありません。したがって、サーバーを SQL Server 2008 にアップグレードした後、ログ配布テーブルを削除できます。削除できるテーブルは次のとおりです。
log_shipping_databases
log_shipping_monitor
log_shipping_plan_databases
log_shipping_plan_history
log_shipping_plans
log_shipping_primaries
log_shipping_secondaries
また、SQL Server 2000 でログ配布構成に対して作成した SQL Server エージェントのログ配布ジョブも削除できます。