首次全备及事务备份对数据库的影响,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日志文件。


--------------------------
关于后续的事务日志备份,下次有时间再更新
总结:全备并没有截断事务日志!
首次全备及事务备份对数据库的影响,2014 SpexSql log评估版探索的更多相关文章
- 使用xtrabackup备份mysql数据库
数据在一个企业里非常重要,因此经常需要备份数据库,确保出线故障时,可以立刻恢复数据到最新状态,目前常见的备份工具有mysqldump和xtrabackup,数据量较少时可以使用mysqldump,但随 ...
- mysql全备和增量备份以及恢复过程(percona工具)
实验环境 系统环境,内核版本和xtrabackup工具版本 [root@linux-node1 mysql]# cat /etc/redhat-release CentOS Linux release ...
- mysql之 Innobackupex(全备+增量)备份恢复
MySQL的热备(物理备份)可以采取全备加增量备份的方式来减轻数据库I/O压力及系统资源的占用.增量备份主要是以全备或增量备份为基础,备份那些变更过的页面.其备份的原理是基于一个不断增长的LSN序列, ...
- 配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)
备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- 一个备份MySQL数据库的简单Shell脚本(转)
Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反 ...
- [转]一个备份MySQL数据库的简单Shell脚本
本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这 ...
- 学会4种备份MySQL数据库(基本备份方面没问题了)
前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么 ...
- 学会用各种姿势备份MySQL数据库
学会用各种姿势备份MySQL数据库 前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复 ...
随机推荐
- python类库26[sqlite]
一 sqlite 与 python 的类型对应 二 实例 import sqlite3 def sqlite_basic(): # Connect to db conn = sqlit ...
- NodeJs 提供了 exports 和 require 两个对象
Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象. 创建 ...
- py从入门到实践 第四章
4.1 遍立列表 ~= shell 数组————————————————————————————————————————————thrink = ['link','path','pwd']for i ...
- Cassandra 数据一致性
基本概念 一致性: 在分布式系统中的所有数据备份,在同一时刻是否同样的值 QUORUM: 是一个可以计算的数字,对数据一致性起重要作用 Node: 主要用来存储数据 Data Center: 数据中心 ...
- HTTS TTLS 433
HTTP和HTTPS协议,看一篇就够了 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/x ...
- LSTM细节
为什么使用tanh? 为了克服梯度消失问题,我们需要一个二阶导数在趋近零点之前能维持很长距离的函数.tanh是具有这种属性的合适的函数. 为什么要使用Sigmoid? 由于Sigmoid函数可以输出0 ...
- python面向对象之设计模式
概念: 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结.使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计 ...
- lr参数与C语言函数参数的区别
C变量不能再lr函数中使用: c变量必须定义在lr函数之前: LR参数可以在LR函数中直接当做字符串使用. LR参数是lr自己封装的一个钟对象, LR参数的表达方式:{ParamName}
- c++11多线程---std::ref和std::cref
std::ref和std::cref 解释 std::ref 用于包装按引用传递的值. std::cref 用于包装按const引用传递的值. 为什么需要std::ref和std::cref ...
- VS2008重置默认环境
Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008命令提示 进入Common7\IDE,然后 ...