4

2 つのデータベース インスタンスがあるとします。

InstanceA - Production server
InstanceB - Test server  

私のワークフローは、最初に新しいスキーマの変更を にデプロイInstanceBし、テストしてから にデプロイすることInstanceAです。

そのため、いつでも、インスタンス スキーマの関係は次のようになります。

InstanceA - Schema Version 1.5
InstanceB - Schema Version 1.6 (new version being tested)

私のワークフローのもう 1 つの部分は、データInstanceBをできるだけ最新の状態に保つことです。これを実現するために、 のデータベース バックアップを取得し、InstanceAそれらを に適用 (復元) していInstanceBます。

私の質問は、スキーマのバージョンが復元プロセスにどのように影響するかです。

私はこれを行うことができることを知っています:

Backup InstanceA - Schema Version 1.5
Restore to InstanceB - Schema Version 1.5

しかし、私はこれを行うことができますか?

Backup InstanceA - Schema Version 1.5
Restore to InstanceB - Schema Version 1.6 (new version being tested)

いいえの場合、失敗はどのように見えますか?

はいの場合、スキーマ変更のタイプは重要ですか?

たとえば、storec proc を変更しただけの場合とは異なる場合、この種のスキーマの変更は復元プロセスに影響を与えるべきではないと思いますSchema Version 1.6Schema Version 1.5一方で、テーブルの定義がSchema Version 1.6違うSchema Version 1.5(列を追加するなど)と違うと、復元に影響が出ると思います。

私はこれを十分に明確にしたことを願っています。

ご意見をお寄せいただきありがとうございます。

4

2 に答える 2

8

いいえ、復元はスキーマを調べません。単にデータファイルをそのまま復元するだけなので、復元後はスキーマ 1.5 になります。すでに存在するものはすべて上書きされます。

最初にデータ リフレッシュ リストアを実行してから、1.6 スキーマの変更を適用することをお勧めします。

于 2010-03-19T21:39:51.137 に答える
4

特定のファイル グループのみを復元する場合を除き、復元にはデータとスキーマの両方が含まれます。データベースの完全な復元を実行すると、すべてのスキーマがデータベースに含まれ、データベースが完全に置き換えられます。ファイル グループを作成し、そのファイル グループに特定のテーブルを配置する場合、必要なファイル グループだけを復元できます。これには、テーブルのデータとスキーマ (およびファイル グループに配置するその他のもの - インデックスなど) のみが含まれます。 、具体化されたビューなど)

実際に注目すべきは、スキーマおよびデータ比較ツールです。Redgate、ApexSql Compare、AdeptSQL、または Visual Studio Database Edition のようなものはすべて、あなたが説明したシナリオとまったく同じで素晴らしい仕事をすることができます. 私は個人的に VS データベース エディションを使用しています。これは、ゴールド パートナー ライセンスで入手できるので気に入っています。それはまさにあなたが探していることを行い、それで素晴らしい仕事をします. 私も過去に他のすべてを使用しましたが、どれもお勧めします。それらのほとんどには 30 日間の試用版があります。いくつかをダウンロードして、現在のシナリオで試用してください。

于 2010-03-19T21:42:43.830 に答える