web-dev-qa-db-ja.com

古いデータベース(SQL 2008)のデータを新しいデータベース(SQL 2016)と同一に保ちますか?

データベースを新しいサーバーに移動しています。

新しいサーバーではSQL Server 2016が実行されており、現在のサーバーではSQL Server 2008が実行されています。

数週間バックアップ/フォールバック計画を立てる必要があります(何か問題が発生した場合に備えて、アプリケーションを2008 Serverに切り替えて作業を続けることができます)。

古いインスタンスに切り替える必要がある場合に備えて、レプリケーション(または代替手段)を有効にして、2008インスタンスですべてのトランザクション/マージを同期して、両方のデータベースを最新の状態にできるかどうか疑問に思っています。

ビジネス要件により、must SQL Server 2008にフォールバックできる必要があります。これは交渉不可能です。

6
arleitiss

コメントから変換:

レプリケーションの下位互換性 によると、トランザクションレプリケーションは2016パブリッシャーと2008サブスクライバー間では機能しませんが、 マージレプリケーション はサポートされます。マージレプリケーションをチェックして、ニーズに合うかどうかを確認してください。 – スコットホジン

または、2014にアップグレードすると、トランザクションレプリケーション用に2008と下位互換性があります。安定した船を手に入れたら、必要に応じて新しいバージョンに進むことができます。 – Ramakant Dadhichi

古いインスタンスに切り替える必要がある場合に備えて、レプリケーション(または代替手段)を有効にして、2008インスタンスですべてのトランザクション/マージを同期して、両方のデータベースを最新の状態にできるかどうか疑問に思っています。

少し複雑ですが、SQL Server 2014サーバーを導入して、トランザクションレプリケーションサブスクライバーおよび Republisher として機能させることができます。

ただし、他の唯一のオプションは、SQL 2016データベースからすべての変更を移動してSQL 2008データベースに適用する一連のスクリプトを開発することです。または データベースのインポート/エクスポートウィザード を使用します。フォールバックを実行する可能性が十分に低く、これを実行するための十分な時間がある場合は、これが適切なオプションになる場合があります。

ダウングレードのためにダウンタイムが発生する可能性がある場合は、データベース全体をdacpacとしてエクスポートして、それを下位バージョンにインポートすることもできます。
これは、onpremとAzureの間でデータベースを移動するための好ましい方法です。

エクスポートについては、次の手順に従います。 https://docs.Microsoft.com/en-us/sql/relational-databases/data-tier-applications/export-a-data-tier-application?view=sql -server-ver15

0
Piotr