7

上記の件名で問題に直面しています。Filestream データベースからデータ バックアップのみを取得し、そのバックアップを復元することは可能ですか?

シナリオ: 製品イメージをデータベースに保存しており、データベースのサイズは現在 70 GB を超えています。そのため、同じことを毎日バックアップすることは難しく、時間もかかります。BCP バックアップ機能を提供しましたが、BCP バックアップ機能を復元しているときに、テーブルから欠落している行がいくつかあることに気づいたので、同じ機能を中継するつもりはありません。また、クライアントまたは私たちは画像データを気にしません。何かが発生した場合は、新しいファイルストリームを有効にしてデータバックアップを復元するだけで、画像ファイルを再度アップロードします.

私が行った研究開発:

1) 方法 1 :

次のクエリでバックアップを取得しましたが、データのみが得られると想定しています。

BACKUP DATABASE [DBName] 
        FILEGROUP = N'PRIMARY' TO  DISK = N'E:\SendReceiveData\Test.bak' 
        WITH NOFORMAT, NOINIT,  
        NAME = N'DBName-Full Filegroup Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

同じバックアップを、次のクエリを使用して別の場所に復元したいと考えています。(Management Studio ではデータベースを復元できません)

RESTORE DATABASE [RestoreDBName] 
  FILE = N'DBName'
  FROM  DISK = N'E:\SendReceiveData\Test.bak' 
  WITH  FILE = 1,  
  MOVE N'DBName' TO N'D:\MyDatabases\RestoreDBName.mdf',  
  MOVE N'DBName_log' TO N'D:\MyDatabases\RestoreDBName_0.ldf',  
  NOUNLOAD,  REPLACE,  STATS = 10

しかし、クエリの復元中に言及していなくても、既に作成されているファイル グループ FileStream グループを確認しています。また、ファイルストリームテーブルを削除したい場合、削除が許可されておらず、エラーが発生します。FilestreamGroup を直接削除しようとすると、エラーが発生します。ファイルストリームテーブルとファイルグループを削除できれば、それらを新しく作成でき、新しいファイルストリームで動作すると思いましたが、できません。

2) 方法 2 :

上記のようにデータベースをバックアップします。しかし、復元中に最初に Filestream を使用して空のデータベースを作成し、データベースを復元しようとしましたが、エラーも発生しました。

3) 方法 3 :

Filestream テーブルは Primary FileGroup に属しているため、filestream グループが含まれていると思いました。そこで、Primary FileGroup で作成した One テーブル、ImageData FileGroup で作成した Image テーブルの一時データベースを作成しました。次に、プライマリ ファイル グループのみをバックアップし、データベースを復元してもイメージ テーブルが表示されないと想定します。しかし、まだ Image テーブルは復元データベースに私を示しています。ファイル グループが表示されている場合は、4 つのファイル グループ (プライマリ、イメージデータ、ログ、およびファイル ストリーム) がすべて利用可能です。

では、どこが間違っているのか、それが不可能なのか教えていただけますか? SQL Server 2008 を使用しています。

4

2 に答える 2