web-dev-qa-db-ja.com

オンラインではないため、ファイルまたはファイルグループ「fileStream」のバックアップは許可されていません

アクセス権のないユーザーによって作成されたデータベースをバックアップしようとしています。次のエラーメッセージが表示されます。

オンラインではないため、ファイルまたはファイルグループ「fileStream」のバックアップは許可されていません。

次に、T-SQLを介してデータベースをバックアップすることを提案しますオンラインファイルグループのみをバックアップします。ただし、これは私の要件ではありません。

オフラインファイルグループを再びオンラインにしたい。私は この答え を見ました。これは、alter databaseコマンドを使用してfielgroupをオフラインにすることを提案しています。

alter database dn_name
modify file (name='filegroup_name', offline)
go

ただし、上記のコマンドのドキュメントを見たように、fielgroupをオンラインに戻すオプションはありません。私は何をすべきか? SQL Server 2012でファイルグループ(またはファイル)をオンラインに戻すにはどうすればよいですか?

5
Saeed Neamati

ファイルがまだ存在する場合は、これを実行できるはずです。

RESTORE DATABASE YourDB FILEGROUP=YourFG WITH RECOVERY;

ファイルが存在しない(または存在するがデータを回復する資格がない)場合は、おおまかな週末になります。データベースの複雑さに応じて、おそらくバックアップ計画の作成を開始します(しゃれた意図はありません)。

  1. 新しいデータベースを作成する
  2. 古いデータベースに対して「スクリプトの生成」オプションを使用して、オブジェクトとデータをスクリプト化します(またはサードパーティツールを使用してスキーマ/データの比較を行います)
  3. すべてのデータベース設定、ログインなどが新しいデータベースに同じようにマップされていることを確認します(TDE、証明書、Service Brokerなどを使用している場合、これは複雑になる可能性があります)。
  4. 古いデータベースの名前を変更する
  5. 新しいデータベースの名前を変更する

(データベースの新しいコピーを指すようにアプリケーションを調整できる場合は、4。と5.をスキップすることもできます。)

4
Aaron Bertrand