web-dev-qa-db-ja.com

データベース(SQL Server 2012で作成)をアップグレードせずにSQL Server2014のインスタンスにアタッチする

実稼働サーバー(SQL Server 2012)にデータベースがあり、開発サーバー(SQL Server 2014)があります。

データベースを開発サーバーに接続する必要がありますが、一度接続すると自動的にバージョン2014にアップグレードされるため、本番サーバーに再度接続することはできません。

データベースをアップグレードせずに開発サーバーに接続することはできますか?

開発に変更を加え、デタッチして、本番環境に戻すことを計画しています。

1
vcRobe

番号。

いくつかの可能な回避策、それらのどれも些細なことではありません:

  1. SQL 2012開発インスタンスをインストールします(推奨)。
  2. 2014 devデータベースに(構造とデータの両方に)変更を適用する場合は、スクリプトを介してのみ適用してください。行った各変更がSQL2012と2014の両方と互換性があることを確認します。作成したこれらすべてのスクリプトを開発で保持し、作業が完了したら、それらすべてを運用サーバーで実行します。
  3. 2014 devデータベースに変更を加え、本番環境に再デプロイする準備ができたら、SQL2012を対象とした「データを含める」オプションを指定した「スクリプトデータベースウィザード」を使用します。この巨大なスクリプトを本番環境で実行します。
  4. データベースサイズによって#3が不可能な場合は、スクリプトデータベースWizard構造のみに使用し、SSISまたはデータインポート/エクスポートウィザードを使用してすべてのデータを移動します。
  5. 本番サーバー(mydatabase_dev)に本番データベースの開発コピーを作成します。

5ディスク容量が許せば、おそらく最も単純で最も簡単です。 2 2012開発インスタンスをインストールできない場合、おそらく「ベストプラクティス」に最も準拠しているものです。どういうわけかあなたが部分を逃した場合、3と4は台無しにするのが最も簡単です。できればこれらは避けたいと思います。

明らかに、現在のニーズと次のニーズに対応するための最良のオプションは、本番環境と可能な限り一致する永続的な開発環境を用意することです。明らかに、これは、本番ボックスではなく、新しいサーバー/仮想マシンで、または開発サーバーの2番目のインスタンスとして実行します。

2
BradC

そのアップグレードが行われないことは不可能です。データベースを接続して新しいバージョンで使用できるようにするために必要な変更があります。

これは、内部参照やポインタ形式などの内部的なものであり、バージョンごとの正確な内部変更は文書化されていません。 好奇心を満たすためだけに詳細については、ここを参照してください ですが、これらのビットを直接編集しようとするリスクはありません。

データベースの互換性レベルを変更しないことは可能ですが、そのデータベースのバックアップを取り、別のSQL Server2012インスタンスに復元することはできません。

サーバー/データベースのバージョンが異なるため、開発サーバーでのテストのメリットを最大限に活用するには、本番サーバーと開発サーバーを同じバージョンにする必要があります。すぐに本番環境をアップグレードする予定がない場合は、開発者をダウングレードできます。

5
Nic