SQLServer2005如果只有数据库的完整备份文件,可以还原回数据库吗?
只有.bak,没有原数据库,可以还原回数据库吗?
如果可以,怎么操作呢?

解决方案 »

  1.   

    用語句時
    RESTORE DATABASE [test] FROM  DISK = N'D:\DataBak\test_20080217.bak' WITH  FILE = 1,  
    MOVE N'BOM' TO N'e:\SQL2005\test.mdf',  MOVE N'BOM_log' TO N'e:\SQL2005\test_1.ldf',  
    NOUNLOAD,  REPLACE,  STATS = 10
    GO
      

  2.   

    还原数据库企业管理器
    --右键"数据库"
    --所有任务
    --还原数据库
    --"还原为数据库库"中输入还原后的数据库名
    --还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面
    --备份号--选择内容--选择你要恢复那次备份的内容
    --选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
    --如果要还原的数据库已经存在,选择"在现有数据库上强制还原"-
    -确定
    --或用SQL语句:
    restore database 数据库 from disk='c:\你的备份文件名'还原数据库
    企业管理器中的操作:1.进行完整恢复
    企业管理器--右键"数据库"--所有任务--还原数据库
    --"还原为数据库库"中输入还原后的数据库名,设为:test
    --还原选择"从设备"--选择设备--添加--添加你的备份文件
    --确定,回到数据库还原的界面
    --"还原备份集",选择"数据库--完全"
    --选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
    --如果要还原的数据库已经存在,选择"在现有数据库上强制还原"
    --"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"
    --确定--或用SQL语句:
    restore database 数据库 from disk='c:\你的完全备份文件名' with norecovery
    2.进行差异恢复
    企业管理器--右键"数据库"--所有任务--还原数据库
    --"还原为数据库库"中选择数据库名:test
    --还原选择"从设备"--选择设备--添加--添加你的备份文件
    --确定,回到数据库还原的界面
    --"还原备份集",选择"数据库--差异"
    --"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"
    --确定--或用SQL语句:
    restore database 数据库 from disk='c:\你的差异备份文件名' with norecovery
    3.进行日志恢复
    企业管理器--右键"数据库"--所有任务--还原数据库
    --"还原为数据库库"中选择数据库名:test
    --还原选择"从设备"--选择设备--添加--添加你的备份文件
    --确定,回到数据库还原的界面
    --"还原备份集",选择"事务日志"
    --"恢复完成状态",选择"使数据库可以继续运行,但无法还原其它事务日志"
    --确定--或用SQL语句:
    restore log 数据库 from disk='c:\你的日志备份文件名' with recovery--解决还原数据库目录不对的详细步骤:1.企业管理器中的方法:
    --右键"数据库"
    --所有任务
    --还原数据库
    --"还原为数据库库"中输入还原后的数据库名
    --还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面
    --备份号--选择内容--选择你要恢复那次备份的内容
    --选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
    --如果要还原的数据库已经存在,选择"在现有数据库上强制还原"-
    -确定
    2.用SQL语句的方法(假设你的备份文件名为: c:\xx.bak--列出备份文件中的逻辑文件名
    restore filelistonly from disk='c:\xx.bak'
    --用语句恢复,根据上面列出的逻辑文件名使用move选项
    restore database 恢复后的数据库名
    from disk='c:\xx.bak'
    with move '逻辑数据文件名1' to 'c:\物理数据文件名1'
    ,move '逻辑数据文件名2' to 'c:\物理数据文件名2'
    ...
    ,move '逻辑数据文件名n' to 'c:\物理数据文件名n'
    没有什么要特别注意的,和企业版之间的备份/还原要注意的东西一样:1.要注意备份时的设置问题,不要指定多个备份文件,否则还原时也要指定多个备份文件2.要注意备份的媒体处理方式问题,用重写,而不是追加,否则还原的时候要指定备份号3.要注意备份的方式,用完全备份,而不是其他备份方式,否则还原时还要其他备份文件支持4.还原时要注意数据文件路径的问题,如果两个系统的数据文件目录不一致,要重新指定5.还原后要注意孤立用户的问题(即两个系统中的SQL用户不同,解决方式参考sql联机帮助)
    可能的原因:1.你还原后的数据库的数据文件所放的磁盘空间不够
      解决的办法是把数据文件放在空间足够的分区2.你的磁盘分区采用的是FAT16/FAT32,前者限制了最大文件大小为2G,后者最大为4G
      解决的办法是改磁盘分区格式为NTFS
      

  3.   

    楼上说的是数据库.mdf,而现在只有备份文件.dat
      

  4.   

    这里引用的是2000的,不知道有帮助没
    在开始菜单-》程序-》找到Microsoft SQL Server-》选择企业管理器。 之后打开。找到数据库在数据库下,新建一个数据库,名称就叫你DAT的名称(比如叫ABC),点确定。 
    点中ABC数据库,点右键,选择所有任务-》还原数据库。 在还原位置选中。从设备,选择设备。 
    在还原自:点添加。 
    文件名的地方,选择你DAT所在的地方。之后点一直点确定。 
    完成。
      

  5.   

     解决方法:
         1 新建一个同名数据库:Mydb.mdb
         2 执行以下语句:
            restore database [name] from disk=''  with replace