sql-serverでデータベースの一部をバックアップおよび復元することは可能ですか?


19

クライアントサイトからサイトに定期的に転送するsql-server 2005データベースがあります。直接接続がなく、Webベースのファイル転送アプリケーションを介してファイルを転送する必要があるため、これには長い時間がかかります。データベースは現在約10GBですが、すべてのデータを必要とするわけではありません-ほとんどは監査テーブルと、再生成可能な計算値を保持するテーブルにあります。

監査テーブルを保持するファイルグループを作成することを検討しましたが、プライマリファイルグループをバックアップおよび復元できることを望んでいました。うまくバックアップできますが、復元時に同じデータベースに復元していないというエラーが表示されます。ファイルグループを使用して、データベースの一部を別のサーバーに復元することはできますか?これを行うためのより良い方法はありますか?


1
この質問:SQL Serverを使用した可能な限り最小のバックアップ、特にBrentの回答を読むことでメリットが得られます。
マリアン

これはかなりハックなしで可能に見えないので、私たちは別のデータベースにすべての監査ログテーブルを移動するに見えるかもしれません信じて
アダム・バトラーを

アプリケーションでコードを変更する必要はありませんか?クライアントに確認するのは少し大変です。
ショーンメルトン

回答:


15

正直に言うと、これが最も簡単です。

  • コピーをローカルでバックアップ/復元する
  • コピーから不要なデータを削除します(DROP ではなく DELETEまたはTRUNCATE TABLEを使用)
  • コピーを出荷する

あなたが指摘した追加の複雑さのために、ファイルグループを気にしません...


1
この新しく復元したデータベースを単純な復旧モデルに変更することをお勧めします。 msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod

7

プライマリファイルグループのみが必要であるという言い方をすると、データベース構造と非常に少量のデータのみが必要なように思えます。データベース構造(オブジェクト、テーブルなど)の更新だけが必要な場合は、すべてのオブジェクトでデータベースを単純にスクリプト化することをお勧めします。PowerShellを使用すると、これをすばやく簡単に実行できます。

次に、実際に必要なデータは、再生成できず、単にエクスポートするだけです(PowerShellスクリプトでもこれを実行できます)。その後、エクスポートファイルを小さなサイズに圧縮してから、接続を介してサイトに転送できると確信しています。

もちろん、これと同じように、@ gbnの提案はスクリプト化できるので、どのオプションが最も時間がかかるかを判断するのはあなた次第です。


2

これは、部分復元を使用して可能です。ソースデータベースのオブジェクトとファイルグループは、これをサポートする方法で整理する必要があります。RESTOREには、追加の特定のキーワードが必要です。

この概念には少し慣れる必要がありますが、実装するスクリプトの量は、提案されている他のソリューションの場合と同じです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.