ディレクトリ/データ ファイルをコピーして MSSQL サーバーを復元することは可能ですか? ハード ディスクが破損しており、C:\Program Files (x86)\SQL Server 2008\MSSQL\MSSQL10.MYDATABASE ディレクトリを復旧できました。これを新しいインストールにコピーしてサービスを開始しようとしましたが、失敗しました。何らかの方法でデータベースを復元することは可能ですか?
Windows 7 64 ビットと MS SQL Server 2008 R2 を使用しています。
答え1
ファイルからデータベースを復元するには、データ ファイル (MDF、場合によっては NDF も存在する) とログ ファイル (LDF) が必要です。
- SQL Server Management Studioを起動します
- 右クリックしてデータベースノード
- 選択する添付
- クリック追加
- 保存したMDFファイルを選択します
- LDFファイルは自動的に追加されます。そうでない場合は、「見つかりません」というメッセージが表示され、省略記号ボタンをクリックして手動でファイルを追加する必要があります。
これが失敗した場合は、MDFファイルのみを添付してください。sp_attach_single_file_db関数
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012Restored' ,
@physname = N'D:\ApexSQL\backups\CS2.mdf';
これが失敗した場合、MDFファイルが破損している可能性があります。MDFファイルを読み取ってデータを回復するサードパーティのツールを試すことができます。
ApexSQL 回復破損したMDFファイルを読み取り、すべてのオブジェクトを再作成し、テーブルレコードを回復できるツールです。T-SQLスクリプトを作成したり、データベースのコピーを作成したりできます。
免責事項:私はApexSQLのサポートエンジニアとして働いています
答え2
ディレクトリ全体をコピーするべきではありません。問題のデータベースのデータベースとトランザクション ログ ファイルのみをコピーする必要があります。
ターゲット ホスト上の SQL Server をアンインストールして再インストールします。
問題のデータベースのデータベースとトランザクション ログ ファイルをターゲット ホストにコピーします。
データベースをアタッチします。
答え3
まさに @joeqwerty が言ったとおりです。将来に向けたヒントをいくつか紹介します。
データベース ファイル .MDF は、ログ ファイル .LDF とは別のドライブに保存することをお勧めします。また、すべてのデータベースを C: ドライブから離しておくこともお勧めします。TEMPDB は、専用のドライブにある場合に最もよく機能します。
システムDBを移動する方法についての記事はこちらテックネット