从别的机器上备份了一个数据库,文件名www.fars.com.cn_backup_2010_04_06_162949_8750000.bak,该机器上的sql2005的版本不明确,现在在我的机器上安装了sql2005企业版,为了还原这个数据库,我新建了一个数据库,名字叫www.fars.com.cn,数据库的保存地址是C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA,我把这个备份文件复制到C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup,然后选择数据库还原,常规中选择源设备,选择刚才复制的备份文件,确定后就提示失败,说执行语句或批处理时发生了异常,其他信息:设备C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\www.fars.com.cn_backup_2010_04_06_162949_8750000.bak上的媒体簇结构不正确。这是什么原因,该如何解决这个问题?

解决方案 »

  1.   

    http://blog.csdn.net/CN_SQL/archive/2008/10/16/3084864.aspx
      

  2.   

    --try
    RESTORE DATABASE 数据库名
    FROM DISK='bak文件完整路径'
    WITH REPLACE 
      

  3.   

    sql_sf你好,请问你的方法事先需要在2005中新建数据库吗?
      

  4.   

    可能是高版本的数据库文件在低版本的SQL下还原.参考:
    2005转到2000的步骤
    1. 生成for 2000版本的数据库脚本
    2005 的manger studio
    -- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例
    -- 右键要转到2000的库
    -- 任务
    -- 生成脚本
    -- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2000的库
    -- 勾选"为所选数据库中的所有对象编写脚本"
    -- 在接下来的"选择脚本选项"中, 将”编写创建数据库的脚本”设为True,找到"为服务器版本编写脚本"项, 选择"SQL Server 2000"
    -- 其他选项根据需要设置
    -- 最后把脚本保存到一个 .sql 脚本文件2. 在2000中创建目标数据库
    在查询分析器(或2005的manger studio在打开脚本文件), 连接到SQL Server 2000,执行上面生成的脚本.以创建一个新的数据库3. 将数据从2005导到2000
    打开SQL Server 2000的企业管理器
    -- 右键要导入数据的数据库
    -- 任务
    -- 导入数据
    -- 在"SQL Server 导入和导出向导"的"选择数据源"步骤中, 确定选择的是要导出的数据库
    -- 在"选择数据源"步骤中, 连接到 2005, 并选择源数据库
    -- 在"选择源表和源视图"中, 选择所有的表
    -- 最后完成
      

  5.   

    Beirut给的文章介绍的好像不太针对我的问题,我的不存在高低版本之间恢复数据库的问题,就是在2005之间恢复的问题。
      

  6.   

    RESTORE DATABASE www.fars.com.cn
    FROM DISK='F:\www.fars.com.cn_backup_2010_04_06_162949_8750000.bak'
    WITH REPLACE 这么执行的,错误提示:
    消息 102,级别 15,状态 1,第 1 行
    '.' 附近有语法错误。
    消息 319,级别 15,状态 1,第 3 行
    关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。
      

  7.   

    RESTORE DATABASE [www.fars.com.cn] --这里是你的数据库名? 为啥这么多. ?
    FROM DISK='F:\www.fars.com.cn_backup_2010_04_06_162949_8750000.bak'
    WITH REPLACE  
      

  8.   

    没办法,人家的数据库名字就是这么起的,按你说的重新来了下,还是不行,提示:消息 3241,级别 16,状态 7,第 1 行
    设备 'F:\www.fars.com.cn_backup_2010_04_06_162949_8750000.bak' 上的媒体簇的结构不正确。SQL Server 无法处理此媒体簇。
    消息 3013,级别 16,状态 1,第 1 行
    RESTORE DATABASE 正在异常终止。我怀疑是不是备份时就有问题,或者说给的文件不够啊。
      

  9.   

    刚才问了下,说原始数据库是在SQL2008下建的,会不会是这个原因导致我这边无法还原,另外,他让我修改这个备份文件的保存路径,我不明白是什么意思,也不知道从哪里修改,他说这个备份文件里写的是在他机器里的保存路径,现在需要修改为放置在我机器中的保存路径,我不知道从哪里去修改。还是说我要去弄一个SQL2008来安装才能恢复?