首次全备及事务备份对数据库的影响,2014 SpexSql log评估版探索
参考:https://www.cnblogs.com/gered/p/9882367.html
关键词:解析事务日志
新建数据库test3,然后查看日志文件,382行记录
SELECT min([Begin Time]),max([Begin Time]),min([Current LSN]),max([Current LSN]) FROM [sys].[fn_dblog](NULL,NULL)
查看其最大最小
建表删除测试
create table test1_1(id int,num int); insert into test1_1 values(1,1),(2,2),(3,3) delete test1_1
查看,多了80条,共462条
SELECT * FROM [sys].[fn_dblog](NULL,NULL) where [Current LSN]>='00000020:000000d5:000a'
进行全备
backup database test3 to disk = 'C:\backup\test3.bak'
全备之后,只有10行了!,证明什么,证明第一次全备会截断事务日志嘛?截断多少呢?我们看看全备里有多少!
我们看看备份文件中的日志记录
SELECT * --INTO ##temptable FROM fn_dump_dblog (NULL, NULL, N'DISK', 1, N'C:\backup\test3.bak', DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT)
然后查看结果,发现图中关于operation中列,关于create / insert / delete的记录都不见了,且行数也只有198行。
据大佬们说,是全备会省掉很多不必要的记录。
这个时候,用spexsql 结合bak和ldf,还是可以找到。
单纯用日志文件也可以找到。。这证明了,全备并没有截断事务日志!
但却会对fn_dblog()函数有巨大影响,fn_dump_dblog 我这里看不出来,后续等大佬指点 或者自己了解了再来更新
我尝试用ldf日志文件+spexsql 来进行undo,恢复我被删除的数据(但好像未激活的只能操作10条?)
但好像未激活的只能操作10条? 我试试,再插入15条删除
insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11) insert into test1_1 values(11,11)
delete test1_1;
结果是这样的,已经彻底乱了

运行一下上图这几句插入语句
再来生成Undo

这什么玩意。。
看来,spexsql 评估版 只能undo/redo 10条的记录是真的。。
但是记录情况,还是可以完整的查到的。
再来,只通过全备的.bak文件查看一下,利用spexsql 生成一下undo。发现无论查看还是生成undo啥也没有,还是不行,得用ldf日志文件。
--------------------------
关于后续的事务日志备份,下次有时间再更新
总结:全备并没有截断事务日志!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2018-05-29 (1.4)sql server中的output(sql server2005及以上)