看看SQL Server错误日志怎么描述的。

解决方案 »

  1.   

    你的文件路径有问题:
    数据库备份,执行语句:
    backup database 数据库名 to disk='填写要备份文件到哪个文件夹下的路径'--数据库恢复
    restore   database   MrData from   disk='F:\数据库备份\bak数据库\MrData.bak'  with   recovery,   
      move   'MrData_data'   to   'F:\数据库备份\佐登妮丝\MrData_data.mdf',   
      move   'MrData_log'   to     'F:\数据库备份\佐登妮丝\MrData_data.ldf'  
    数据库库恢复,如果上面一句代码在不同机子上的数据库执行的话,
    可能会出错,找不到路径,因为在备份数据库的时候把数据库的路径也保存在里面,
    所以这样恢复数据库的话,就会默认的在这个文件夹下面创建数据库  
      

  2.   

    先确认你的备份路径是否正确?或者备份设备是否正确?
    贴下你的BACKUP DATABASE语句.
      

  3.   

    数据库代理作业生成的sql 脚本。
    — 2008-6-24/23:00 上生成的脚本
    — 由: WINNTSRV\Administrator
    — 服务器: WINNTSRVBEGIN TRANSACTION            
      DECLARE @JobID BINARY(16)  
      DECLARE @ReturnCode INT    
      SELECT @ReturnCode = 0     
    IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1 
      EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'  — 删除同名的警报(如果有的话)。
      SELECT @JobID = job_id     
      FROM   msdb.dbo.sysjobs    
      WHERE (name = N'hospital 备份')       
      IF (@JobID IS NOT NULL)    
      BEGIN  
      -- 检查此作业是否为多重服务器作业  
      IF (EXISTS (SELECT  * 
                  FROM    msdb.dbo.sysjobservers 
                  WHERE   (job_id = @JobID) AND (server_id <> 0))) 
      BEGIN 
        -- 已经存在,因而终止脚本 
        RAISERROR (N'无法导入作业“hospital 备份”,因为已经有相同名称的多重服务器作业。', 16, 1) 
        GOTO QuitWithRollback  
      END 
      ELSE 
        -- 删除[本地]作业 
        EXECUTE msdb.dbo.sp_delete_job @job_name = N'hospital 备份' 
        SELECT @JobID = NULL
      END BEGIN   — 添加作业
      EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'hospital 备份', @owner_login_name = N'sa', @description = N'没有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback   — 添加作业步骤
      EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'第 1 步', @command = N'BACKUP DATABASE [hospital] TO  DISK = N''D:\数据库备份\hospital'' WITH  INIT ,  NOUNLOAD ,  NAME = N''hospital 备份'',  NOSKIP ,  STATS = 10,  NOFORMAT', @database_name = N'hospital', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 0, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
      EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1   IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback   — 添加作业调度
      EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'第 1 调度', @enabled = 1, @freq_type = 4, @active_start_date = 20070325, @active_start_time = 70000, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback   — 添加目标服务器
      EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)' 
      IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback END
    COMMIT TRANSACTION          
    GOTO   EndSave              
    QuitWithRollback:
      IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION 
    EndSave: 
    以下是备份数据库时出现错误,错误日志信息。手工备份出现同样错误。2008-06-24 18:49:55.98  spid55 BackupMedium::ReportIoError: 在备份设备“D:\数据库备份\hospital”上 write 失败。操作系统错误 1117(因为 
    2008-06-24 18:49:56.06  backup BACKUP 未能完成命令 BACKUP DATABASE [hospital] TO  DISK = N'D:\数据库备份\hospital' WITH  
    2008-06-24 18:49:56.06  spid55 Internal I/O request 0x416ACF90: Op: Write, pBuffer: 0x036C0000, Size: 983040, 
    2008-06-24 18:51:47.35  backup BACKUP 未能完成命令 BACKUP DATABASE [hospital] TO  DISK = N'D:\数据库备份\hospital' WITH  
    2008-06-24 18:51:47.35  spid55 Internal I/O request 0x416ACB40: Op: Write, pBuffer: 0x03400000, Size: 983040, 
    2008-06-24 18:51:47.35  spid55 BackupMedium::ReportIoError: 在备份设备“D:\数据库备份\hospital”上 write 失败。操作系统错误 1117(因为 
    2008-06-24 19:22:10.04  spid56 BackupMedium::ReportIoError: 在备份设备“D:\数据库备份\hospital”上 write 失败。操作系统错误 1117(因为 
    2008-06-24 19:22:10.07  backup BACKUP 未能完成命令 BACKUP DATABASE [hospital] TO  DISK = N'D:\数据库备份\hospital' WITH  
    2008-06-24 19:22:10.07  spid56 Internal I/O request 0x416ACF90: Op: Write, pBuffer: 0x036E0000, Size: 983040, 
    2008-06-24 19:24:47.07  spid55 BackupMedium::ReportIoError: 在备份设备“D:\数据库备份\hospital”上 write 失败。操作系统错误 1117(因为 
    2008-06-24 19:24:47.09  backup BACKUP 未能完成命令 BACKUP DATABASE [hospital] TO  DISK = N'D:\数据库备份\hospital' WITH  
    2008-06-24 19:24:47.09  spid55 Internal I/O request 0x416ACFA0: Op: Write, pBuffer: 0x036D0000, Size: 983040, 
    2008-06-24 19:29:57.21  backup BACKUP 未能完成命令 BACKUP DATABASE [hospital] TO  DISK = N'D:\数据库备份\hospital' WITH  
    2008-06-24 19:29:57.21  spid55 Internal I/O request 0x416ACFA0: Op: Write, pBuffer: 0x036D0000, Size: 983040, 
    2008-06-24 19:29:57.21  spid55 BackupMedium::ReportIoError: 在备份设备“D:\数据库备份\hospital”上 write 失败。操作系统错误 1117(因为