最初の状況では、次のようなことを試したようです(または、ダイアログを実行するときにGUIが準備するものは何でも)。
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;
ただし、この方法ではmdf
ファイルとファイルの両方が必要ldf
です。そうしないと、次のようなエラーメッセージが表示されます。
メッセージ5120、レベル16、状態101、1行
目物理ファイル「C:\ sql_logs\YAFnet_log.ldf」を開くことができません。オペレーティングシステムエラー2:「2(システムは指定されたファイルを見つけることができません。)」。
これで、ファイルしかない場合でも続行する方法がありmdf
ます。SQL Serverから適切にデタッチされたファイルがあるとすると、次の構文を使用して、ログファイルなしでファイルmdf
を添付できるはずです。mdf
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;
ただし、あなたの場合、ファイルはSQLServerから適切に切り離されていなかったようです。
メッセージ1813、レベル16、状態2、行1
物理ファイル名 "C:\ sql_logs\YAFnet_log.ldf"が正しくない可能性があります。データベースがシャットダウンされたときに開いているトランザクション/ユーザーがあったか、データベースにチェックポイントが発生しなかったか、データベースが読み取り専用であったため、ログを再構築できません。このエラーは、ハードウェアまたは環境の障害が原因でトランザクションログファイルが手動で削除または失われた場合に発生する可能性があります。
エラーメッセージに記載されている説明を含め、いくつかの考えられる説明があります。おそらく、無効なSANシャドウから取得されたか、読み取り専用でデタッチされたか、SQL Serverまたは基盤となるシステムがクラッシュした後、コピー/ダウンロード中に破損したか、または他に何を知っているかを知っています。
Yafのサポートまたはサービスプロバイダーのサポートに戻って、適切なバックアップが利用可能かどうか、またはそれができない場合はファイルの代替コピーがあるかどうかを確認する必要がありmdf
ます。また、私たちの誰もがYafが何であるかを実際に知らないか、あなたが話しているYafを確認する方法を持っていないことを覚えておいてください。
そうでなければ、この特定のmdf
ファイルは無効であり、したがってあなたをあまり遠くに連れて行かないので、あなたは運が悪いようです。
これが、デタッチ/アタッチおよび/またはO / SレベルのファイルコピーアプローチがSQLServerのバックアップ(または移行)の非常に有用な方法ではない理由です。適切なバックアップ/リカバリ計画が必要です。つまり、データ損失の許容範囲に適した適切なフル/差分/ログバックアップを作成する必要があります。mdf
また、データベースのデタッチは、ほとんどの場合、劣った考えです。デタッチ中またはデタッチ後にファイルに何かが発生した場合、データベースのコピーはゼロになります。