トップ回答者
SQLServer2008でデータベースの復元ができません。

質問
-
SQLServer2008でデータベースの復元ができません。
別のSQLServerで作成したバックアップデータベースファイルからManagement Studioにて
データベースの復元を実行すると次のエラーが発生します。"D:\20100210dbname.bak" で読み取れませんでした: 38(ファイルの終わりです。) (Microsoft SQL Server、エラー: 3203)
環境は、OS:WindowsServer2008R2 SQLServer2008Stanardエディションです。
バックアップ・復元方法がよくないのでしょうか?
どなたかご教授願えませんでしょうか。
宜しくお願い致します。
以下エラーメッセージのコピーです。タイトル: Microsoft SQL Server Management Studio
------------------------------Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
ADDITIONAL INFORMATION:"D:\20100210dbname.bak" で読み取れませんでした: 38(ファイルの終わりです。) (Microsoft SQL Server、エラー: 3203)
ヘルプを表示するには http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.2531&EvtSrc=MSSQLServer&EvtID=3203&LinkId=20476 をクリック
------------------------------
BUTTONS:OK
------------------------------===================================
Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
プログラムの場所:場所 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteWithResults(String sqlCommand)
場所 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteWithResults(String query)
場所 Microsoft.SqlServer.Management.Smo.BackupRestoreBase.ExecuteSqlWithResults(Server server, String cmd)
場所 Microsoft.SqlServer.Management.Smo.Restore.ReadBackupHeader(Server srv)
場所 Microsoft.SqlServer.Management.SqlManagerUI.SqlRestoreDatabaseGeneral.buttonSelectDevice_Click(Object sender, EventArgs e)
場所 System.Windows.Forms.Control.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.OnClick(EventArgs e)
場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
場所 System.Windows.Forms.Control.WndProc(Message& m)
場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
場所 System.Windows.Forms.Button.WndProc(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)===================================
"D:\20100210dbname.bak" で読み取れませんでした: 38(ファイルの終わりです。) (.Net SqlClient Data Provider)
------------------------------
ヘルプを表示するには http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.2531&EvtSrc=MSSQLServer&EvtID=3203&LinkId=20476 をクリック------------------------------
サーバー名: (local)
エラー番号: 3203
重大度: 16
状態: 2
行番号: 1
------------------------------
プログラムの場所:場所 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
場所 System.Data.SqlClient.SqlDataReader.HasMoreRows()
場所 System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
場所 System.Data.SqlClient.SqlDataReader.NextResult()
場所 System.Data.ProviderBase.DataReaderContainer.NextResult()
場所 System.Data.Common.DataAdapter.FillNextResult(DataReaderContainer dataReader)
場所 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
場所 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
場所 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
場所 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
場所 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
場所 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteWithResults(String sqlCommand)
回答
すべての返信
-
皆様、こんにちは。
NOBTA さん、いつも回答ありがとうございます。
SakaMoni さん、フォーラムのご利用ありがとうございます。
その後いかがでしょうか。バックアップファイルに問題があるようですが、なにか進展はありましたか?
復元しようとしたときにファイルが破損していた、ということを避けるため、バックアップ後にファイルが正常か確認する事もご検討ください。
RESTORE VERIFYONLY (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms188902.aspx
勝手ながら、有用な情報と思われたため、NOBTAさんの回答に回答マークを付けさせていただきました。
今後ともフォーラムをよろしくお願いします。
それでは。