数据恢复! 数据库备份sql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 程序是完整备份,就是我得到的数据库文件是包含数据库及日志文件的,可以恢复到数据中.但是恢复后却发现数据不是最新的.是前几天的.我下了 SQL Log Analyzer查看.可以看到事务语句都在.我理解数据还在LOG里.但是怎么让LOG里的事务,执行起来? 我是说恢复状态,在窗口下半部分,比如有RECOVERY, NORECOVERY等的选项参考: 执行数据库完整还原(完整恢复模式) 建议把每天自动备份的SQL语句贴一下.. 建议检查数据库备份文件的备份时间,查看方法如下,restore headeronly from disk='[数据库备份文件名]'--> 结果BackupStartDate 备份开始时间BackupFinishDate 备份完成时间 BACKUP DATABASE mydata DISK='d:\mydata01'备份语句是这样的.用SQL Log Analyzer可以查到LDF文件里,有很多日志.会不会因为死锁引起后面插入,删除,事务没有执行.而日志中却有.这种情况除了使用第三方软件从LOG中找数据,有没其它方法?用fn_dblog(null,null)函数只能查到一部分.第三方的就能查到所有. 如果你的语句是这么写的,那可能是因为 在同一个bak文件中,包含了多个备份,用上面版主的代码,看看:--1.第一次备份backup database xx to disk = 'c:\xxx.bak'--2.查看文件头,会返回很多字段,这里只取出2个字段restore headeronly from disk='c:\xxx.bak'/*BackupStartDate BackupFinishDate2014-08-17 14:52:23.000 2014-08-17 14:52:23.000*/--3.第二次备份backup database xx to disk = 'c:\xxx.bak'--4.会有2条记录,分别表示2次备份restore headeronly from disk='c:\xxx.bak'/*BackupStartDate BackupFinishDate2014-08-17 14:52:23.000 2014-08-17 14:52:23.0002014-08-17 14:53:08.000 2014-08-17 14:53:08.000*/ BackupStartDate BackupFinishDate ----------------------- -----------------------2014-08-14 00:00:20.000 2014-08-14 00:00:20.000只有一行记录.谢谢大家!最后从LDF读取事务数据,将数据找回.只是不明白一个问题.如果有死锁的情况下.数据库在执行备份时数据库会怎么处理?通过这次的事情,应该是数据没有写入MDF,但LDF里有记录.不知道这样理解对不对?如何找出所有连接中,哪个死锁? 以前收集的一个查询死锁进程的语句,看看是不是你需要的SELECT '死锁的进程' , spid , kpid , a.blocked , dbid , uid , loginame , cpu , login_time , open_tran , status , hostname , program_name , hostprocess , nt_domain , net_address , s1 = a.spid , s2 = 0FROM master..sysprocesses a JOIN (SELECT blocked FROM master..sysprocesses GROUP BY blocked) b ON a.spid = b.blockedWHERE a.blocked = 0UNION ALLSELECT '_牺牲品_' , spid , kpid , blocked , dbid , uid , loginame , cpu , login_time , open_tran , status , hostname , program_name , hostprocess , nt_domain , net_address , s1 = blocked , s2 = 1FROM master..sysprocesses aWHERE blocked = 0 这个a.id中的a是什么意思啊 为什么我的sqlserver打不上补丁. sysbase语法改写成server2000语法 高手救人啊!!! 如何实现类似当当网上图书的模糊搜索 asp.net+MS SQL2005数据库的网站,数据库如何上传到虚拟主机==在线等 关于varchar数值过滤问题 求教各位高人:(十万火急)数据库数据纪录存储问题 SQL server7.0中如何复制表结构? 数据库表之间不能建立主外键关系???? 一个建立数据库结构的问题 必须声明标量变量 的错误 关于两个数据项的模糊比较
参考: 执行数据库完整还原(完整恢复模式)
BackupStartDate 备份开始时间
BackupFinishDate 备份完成时间
备份语句是这样的.用SQL Log Analyzer可以查到LDF文件里,有很多日志.
会不会因为死锁引起后面插入,删除,事务没有执行.而日志中却有.这种情况除了使用第三方软件从LOG中找数据,有没其它方法?用fn_dblog(null,null)函数只能查到一部分.第三方的就能查到所有.
如果你的语句是这么写的,那可能是因为 在同一个bak文件中,包含了多个备份,用上面版主的代码,看看:
--1.第一次备份
backup database xx to disk = 'c:\xxx.bak'
--2.查看文件头,会返回很多字段,这里只取出2个字段
restore headeronly from disk='c:\xxx.bak'
/*
BackupStartDate BackupFinishDate
2014-08-17 14:52:23.000 2014-08-17 14:52:23.000
*/
--3.第二次备份
backup database xx to disk = 'c:\xxx.bak'
--4.会有2条记录,分别表示2次备份
restore headeronly from disk='c:\xxx.bak'
/*
BackupStartDate BackupFinishDate
2014-08-17 14:52:23.000 2014-08-17 14:52:23.000
2014-08-17 14:53:08.000 2014-08-17 14:53:08.000
*/
----------------------- -----------------------
2014-08-14 00:00:20.000 2014-08-14 00:00:20.000只有一行记录.谢谢大家!最后从LDF读取事务数据,将数据找回.只是不明白一个问题.如果有死锁的情况下.数据库在执行备份时数据库会怎么处理?通过这次的事情,应该是数据没有写入MDF,但LDF里有记录.不知道这样理解对不对?如何找出所有连接中,哪个死锁?
, spid
, kpid
, a.blocked
, dbid
, uid
, loginame
, cpu
, login_time
, open_tran
, status
, hostname
, program_name
, hostprocess
, nt_domain
, net_address
, s1 = a.spid
, s2 = 0
FROM master..sysprocesses a
JOIN (SELECT blocked
FROM master..sysprocesses
GROUP BY blocked) b ON a.spid = b.blocked
WHERE a.blocked = 0
UNION ALL
SELECT '_牺牲品_'
, spid
, kpid
, blocked
, dbid
, uid
, loginame
, cpu
, login_time
, open_tran
, status
, hostname
, program_name
, hostprocess
, nt_domain
, net_address
, s1 = blocked
, s2 = 1
FROM master..sysprocesses a
WHERE blocked = 0