web-dev-qa-db-ja.com

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

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

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

19
Adam Butler

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

  • コピーをローカルにバックアップ/復元する
  • コピーから不要なデータを削除します(DELETEまたはTRUNCATE TABLEを使用して、not DROP ...)
  • コピーを発送

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

15
gbn

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

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

もちろん、これと同じように、@ gbn提案をスクリプト化して、どのオプションが最も時間がかからないかを判断する必要があります。

7
user507

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

概念に慣れるには少し時間がかかるかもしれませんが、実装するスクリプトの量は、提案されている他のソリューションの場合と同じです。

2
Michael Green