私のアプリケーションは、私はこの方法でバックアップファイルから作成したデータベースを持っていますmdfコンテンツのみを調べるためにダミーファイルストリームファイルグループを作成することはできますか?
-- create empty db
CREATE DATABASE MyNewDB
-- restore on the empty db from file
RESTORE DATABASE MyNewDB
FROM DISK = 'c:\Temp\MyNewDB.bak'
WITH REPLACE,
MOVE 'MyDB_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.EXPRESS2008R2\MSSQL\DATA\MyNewDB.mdf',
MOVE 'MyDB_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.EXPRESS2008R2\MSSQL\DATA\MyNewDB_log.LDF',
MOVE 'MyDBFS' TO 'C:\FileStreamData\MyNewDBFS'
私はブロブを保存するために、FILESTREAMファイルグループを使用し、基本的に私はそこにファイルを格納し、単一のテーブルとシングルを持っていますSQL Server Filestreamデータとして保存されているバイナリデータを含むblob列。
顧客はファイルストリームの一部が膨大となるアプリを使用し続けると、それはMDFできるが(500メガバイトとFileStreamは、私が「テーブルのみ」を転送する必要がある開発マシン上の問題をデバッグすることはしばしば
60ギガバイト
です"500MB")と "ブロブではない"( "60GB")。私はデータベースを複製しているか、重複データベース上で、私はファイルのテーブルにNULLにBLOB列を設定し、その後、私は
CHCEKPOINT
を実行してどのような私はその仕事を終えるためにガベージコレクタを待ちます私はバックアップを取って小さなファイルを持つことができます。
時々、私はバックアップのコピーを復元するためのスペースがないか、またはそれを行う時間がありません。
だから私は行うことができるのが大好きですが、私はすべてのWebでの解決策を見つけることができませんでしたものです:.mdf
+ .ldf
のみ(データが含まれている)
コピー
どういうわけかクリートする
.mdf
、.ldf
と偽のFILESTREAMデータを添付し、 "偽のFILESTREAMデータ"(SQL Serverが接続時に受け入れるデータ)を作成テストデータベース
もちろん、私はブロブのクエリが動作するとは思っていませんが、他のテーブルのすべてのクエリはそうです。
私は必要なものを実現する方法がありますか(3Dパーティーツールを使用している可能性もありますか)?
私の場合は、BLOBデータを別のデータベースに分割することを検討します。しかし、私はあなたの現在の構造や、それがどれほど実用的であるかは確かではありません。ただし、元のデータベースに新しいデータベースのテーブルを選択したり、複数のテーブルを再結合したりすることもできます。 – Greg
データベースをスクリプト化する以外にも、かなり簡単なオプションはありません。管理スタジオは、実行時にテーブルを作成して値を挿入するスクリプトファイルを作成できます。たとえば、SQL 2014データベースからSQL 2008などにデータのコピーを取得する必要がある場合は、これが必要になる場合があります。一般に、スクリプト化されたものについてはいくつかの選択肢があります。 – Greg
最後に、一部のファイルまたは一部のファイルグループの断片的なリカバリでこのリンクを表示することもできます。 https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/example-piecemeal-restore-of-only-some-filegroups-full-recovery-model – Greg