web-dev-qa-db-ja.com

破損したデータベースのPRIMARYファイルグループのみを復元することは可能ですか?

_[PRIMARY]_と_[SECONDARY]_の2つのファイルグループを持つデータベース(MyDatabase)があります。

_[SECONDARY]_ファイルグループには、_[DataFileA]_と_[DataFileB]_の2つのデータファイルがあります。

_[DataFileA]_が破損しています(_DBCC CHECKDB_プロセスの後でも)。

私はそれを解決しようとしました:

  1. DBCC CHECKDB ([MyDatabase], REPAIR_ALLOW_DATA_LOSS)しかし、それは役に立ちませんでした。
  2. 破損したデータファイル_[DataFileA]_を削除しましたが、成功しませんでした。

ただし、_[PRIMARY]_ファイルグループは問題ありません。

_[PRIMARY]_ファイルグループのみをバックアップして(新しい名前で)復元し、この単一のファイルグループから新しいデータベースを作成できますか?

1
itzik Paz

データベースはONLINEであるため、2つの主なオプションがあります。

  1. 古いデータベースと同じ[PRIMARY]ファイルグループオブジェクトのスキーマを使用して新しいデータベースを作成し、使用可能なツール(SSIS、bcp、リンクサーバーなど)のいずれかを使用してデータを転送します。既存のスキーマ、制約、および関係(外部キーなど)の複雑さによっては、これにはかなりの時間がかかる場合があります。

  2. [PRIMARY]ファイルグループの 部分バックアップ のみを取得します。 piecemeal restore を使用して、これを新しいデータベースとファイルに復元します。最後に、 ファイルグループを無効としてマークしますDBCC CHECKFILEGROUP for [PRIMARY]が最初に正常に実行されることを確認してください。オプション1と同様に、スキーマとデータを安全な場所にエクスポートする必要があります。ご存知のように、貴重なデータのバックアップをテストすることが優先事項です:)

3
Paul White 9