数据库同步操作时 由于发服务器的数据库的数据库名字(测试数据库)与订阅服务器已存在的数据库(在运行的)名字一样,造成初始化订阅服务器数据库时,将订阅服务器上的在正常运行的数据覆盖了,现在如何恢复订阅服务器的数据库?关键是测试数据库 与同名的订阅数据库的结构不太一样。
用log explorer 查看订阅服务器上的数据日志,发现只有最后同步的几条记录。但整个数据库日志文件很大,为什么同步之前的数据库日志无法查询到?
如何恢复?急!! 

解决方案 »

  1.   

    我的订阅服务器上的数据库是12月20日建的,当时也是通过BAK文件还原的,现在BAK文件还有的。
     另。用log explore attach log 时   显示也是从12月20日开始的  但同步之前的log就是没有显示出来。 
      

  2.   

    有完全备份 又用日志存在的情况下你完全不用担心,只要你的日志没有被截断
    为了保险起见 建议你停掉sqlserver备份mdf和ldf
    1 备份尾日志
    backup database dbname to disk='d:\log.bak' with no_truncate
    2 恢复全备份
    restore database dbname from disk='你的完全备份文件' with norecovery
    3 还原到你要的时间点比如恢复到2011年1月1号的15点
    restore log dbname from disk='d:\log.bak' with recovery,stopat='2011-01-01 15:00'
      

  3.   

    好,我先试试  这些语句是在 sql 的查询分析器里执行吗
      

  4.   

    一定要停 SQLSERVER吗 ,我还有其他的数据库在运行的。可以不停吗?
      

  5.   

    restore log fenghuanghf from disk='d:\data\log.bak' with recovery,stopat='2011-01-06 12:49' 提示:服务器: 消息 4330,级别 16,状态 4,行 1
    无法应用此备份集中的日志,因为该日志位于与数据库不一致的恢复路径上。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE LOG 操作异常终止。什么意思?
      

  6.   

    restore log fenghuanghf from disk='d:\data\log.bak' with
    MOVE 'fenghuanghf_LOG' TO '路径\fenghuanghf_LOG.ldf' 
    recovery,stopat='2011-01-06 
    --路径是指你的MDF的路径
      

  7.   

    不行啊  一样的错误 。我昨天是是这样操作的:
    1. 直接用 restore database fenghuang789 from disk='d:\data\fenghuang1220' with norecovery    
    出错:服务器: 消息 3201,级别 16,状态 2,行 1
    无法打开备份设备 'd:\data\fenghuang1220'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE DATABASE 操作异常终止。后来我用fenghuang1220备份文件 在sql企业管理器里 新建数据库  还原数据库操作  成功还原 
    然后我对还原成功的数据库进行  backup database  生成789.bak 文件  
    然后用restore database fenghuang789 from disk='d:\data\789.bak' with norecovery    
    命令 执行成功。然后再用  restore log 命令时出错。问:为什么用我的fenghuang1220备份文件进行restore database 操作出错,直接在sql企业管理器里还原是成功的(说明备份文件是好的)。??为什么 restore log 命令出错 ?急啊  要怎么才能恢复数据库?恢复数据库时  数据库的名字是不是要跟原来的名字一样?
      

  8.   

    你的问题要一分为二来看
    1 你用备份文件恢复到一个新的数据库 因为mdf和ldf存在,所以会出错,所以你用后面那个方法是成功的是因为你已经新建了数据库文件了
    2 见我14楼的回复,你的日志链中间断裂过了 所以没法恢复到断裂后的点了
      

  9.   

    我的数据库在12月20日创建后 就没有进行过备份操作  日志文件也没有动  日志文件不大可能中间断链啊出问题后  我用log erplore 打开过几次   会有影响吗?  而且出问题时日志文件的使用比例达到了99% 有1.4G,是同步操作后突然剧增的。
      

  10.   

    1. 直接用 restore database fenghuang789 from disk='d:\data\fenghuang1220' with norecovery 
    出错:服务器: 消息 3201,级别 16,状态 2,行 1
    无法打开备份设备 'd:\data\fenghuang1220'。设备出现错误或设备脱机。详细信息请……我是先用sp_detacch_db fenghuang789 的  LDF 和 mdf文件是存在的。那我先把 LDF 和 mdf文件先移开 是否就能成功restore database fenghuang789 from disk='d:\data\fenghuang1220' with norecovery 
    ???
      

  11.   

    事务日志不会造成日志链的断裂,你日志链的断裂肯定不是由事务复制引起的,
    具体什么原因就不清楚了,log explorer会不会这个我没研究过,不清楚你log explorer的具体操作步骤
      

  12.   

    你还在纠结fenghua789的问题呀 这个不是重点 我估计你原来的数据库就叫fenghua吧
    直接还原,不要换名字 换出很多问题来(前提是你mdf ldf已经备份)
    restore database fenghuang from disk='d:\data\fenghuang1220' with norecovery  
      

  13.   

    原来的数据库名就是fenghuang789 我现在按照你说的 先sp_detach 'fenghuang789'   然后 把  ldf 和mdf  文件移走  
    然后在 restore database fenghuang789 from disk='d:\data\fenghuang1220' with norecovery 还是同样的错误:
    服务器: 消息 3201,级别 16,状态 2,行 1
    无法打开备份设备 'd:\data\fenghuang1220'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE DATABASE 操作异常终止。
      

  14.   

    d:\data\fenghuang1220 检查一下权限
      

  15.   

    d:\data\fenghuang1220的权限 是 everyone  
      

  16.   

    犯了低级错误  fenghuang1220 应该是 fenghuangzy1220我 restore database fenghuang789 from disk='d:\data\fenghuangzy1220' with norecovery  还是失败 提示   文件物理位置为:e:\data\fenghuang_log.ldf   e:\data\fenghuang_log.mdf在 e: 建立data 目录后   执行成功!!
    但用  restore log fenghuang789 from disk='d:\log.bak'  with  recovery,stopat='2011-01-06 12:49' 
    还是提示 :服务器: 消息 4330,级别 16,状态 1,行 1
    无法应用此备份集中的日志,因为该日志位于与数据库不一致的恢复路径上。
    服务器: 消息 3013,级别 16,状态 1,行 1
    RESTORE LOG 操作异常终止。换成命令:restore log fenghuang789 from disk='d:\log.bak'  with move 'fenghuang_log'  to 'e:\data\fenghuang_log.ldf' recovery,stopat='2011-01-06 12:49' 报错:服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'recovery' 附近有语法错误。语句哪里错了  ?怎么改?
      

  17.   

    restore filelistonly from disk='d:\log.bak'
    发现 fenghuang_data  d:\Data\fenghuang789_data.LDF
         fenghuang_log   d:\Data\fenghuang789_Log.LDF重新
    RESTORE   DATABASE  fenghuang789   FROM   DISK='d:\data\fenghuangzy1220 '  with   replace,norecovery, 
    move   'fenghuang_Data '   to   'd:\data\fenghuang789_data.mdf ',  move   'fenghuang_log'   to   'd:\data\fenghuang789_log.ldf ' 命令成功!restore log fenghuang789 from disk='d:\log.bak' with recovery,stopat='2011-01-06 12:49'  还是报错修改恢复时间
    restore log fenghuang789 from disk='d:\log.bak' with recovery,stopat='2010-12-21 12:49' 还是报错
    会是什么原因? 是log文件坏了吗?
      

  18.   

    如果你真急 就加我msn 我教你怎么怎么一步步查看日志好坏,备份是否有效,论坛上讲不清楚 你反馈的信息要么不正确要不不在点上,到现在你都在纠结恢复的数据库路径和文件名上