上記の件名で問題に直面しています。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 を使用しています。