LogExplorer教程.docx
《LogExplorer教程.docx》由会员分享,可在线阅读,更多相关《LogExplorer教程.docx(14页珍藏版)》请在冰豆网上搜索。
LogExplorer教程
数据库恢复神器--LogExplorer4.2使用教程
介绍
LogExplorer主要用于对MSSQLServer的事务分析和数据恢复。
可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。
一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的其他事务不间断执行。
他可以支持SQLServer7.0和SQLServer2000以及SQLServer2005.提取标准数据库的日志文件或者备份文件中的信息。
软件下载地址:
主要功能:
其中提供两个强大的工具:
日志分析浏览,对象恢复。
具体功能如下:
●日志文件浏览
●数据库变更审查
●计划和授权变更审查
●将日志记录导出到文件或者数据库表
●实时监控数据库事务
●计算并统计负荷
●通过有选择性的取消或者重做事务来恢复数据
●恢复被截断或者删除表中的数据
●运行SQL脚本
LogExplore包含两部分
1、客户端软件
2、服务器代理
服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事务日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的数据块来完成LogExplore所提供的所有功能。
他依赖来的网络协议包括:
1、NamedPipe:
局域网中适用
2、Tcp/Ip:
广域网中适用
数据库相关介绍
事务日志(TransactionLog)
SQLServer的每个数据库都包含事务日志,它以文件的形式存储,可以记录数据库的任何变化。
发生故障时SQLServer就是通过它来保证数据的完整性。
操作(Operation)
操作是数据库中定义的"原子行为",每个操作都在日志文件中保存为一条记录。
它可以是用户直接输入的SQL语句,比如标准的insert命令,日志文件中便会记录一条操作代码来标志这个insert操作。
事务(Transaction)
事务是一系列操作组成的序列。
他可以理解为直观的不可分割的一笔业务,可以执行成功或者失败。
典型的事务比如由应用程序发出的具有开启-提交功能的一组SQL语句。
不同的事务靠事务Id号(transactionID)来区分,具有相同ID的事务记录的日志也相同。
在线事务日志(OnlineTransactionLog)
在线事务日志是指当前活动数据库所用的日志。
可以通过如下命令来确定其对应文件
Select*fromSYSFILES
他的文件后缀名一般是.LDF
离线事务日志(OfflineTransactionLog)
离线事务日志是指非活动数据库所用的日志。
当其数据库处于关闭(ShutDown)才状态下可以进行复制备份操作。
他的结果同在线事务日志完全相同。
备份文件
备份文件是保存食物日志备份的文件,通常管理员通过运行SQL语句或者企业管理器来生成该文件。
备份文件的内部结构和事务日志不同,他采用称为MTF的格式来保存数据。
一个备份文件可以包含一个日志的多组备份,甚至包括多个数据库的混合备份.
一、LogExplorer的安装
运行安装包内Intel文件夹内的Setup.exe文件,如图1-1
图1-1
可以选择安装客户端和服务器端,服务器端必选安装在服务器上。
点击【下一步】如图1-2
图1-2
输入注册码,点击【下一步】如图1-3
图1-3
选择安装位置,点击【下一步】如图1-4
图1-4
选择要安装服务器端的计算机,点击【下一步】进行安装。
完成后依次点击【开始】→【程序】→【Lumigent】→【LogExplorerforSQLServer】→【LogExplorer】打开LogExplorer如图1-5
图1-5
点击左边菜单栏中的【附加日志文件】或者点击【文件】→【附加日志文件】打开连接数据库窗口,如图1-6
图1-6
选择要连接的数据库及登录方式(数据库需安装LogExplorer服务器端),然后点击【连接】连接成功后湖出现选择数据库界面,如图1-6
图1-6
选择要连接的数据库,然后选择要打开的日志,可以使用在线日志也可以使用备份日志文件,点【附加】附加成功后会出现如图1-7界面
图1-7
一、删除的恢复操作:
先通过SQL语句在test数据库中新建一个表,此时表为8495行,如图2-1。
执行delete语句进行删除,删除109行如图2-2
图2-1
打开logexplorer,并连接到test数据库,打开查看日志拉到最下面可以看到刚才删除操作的信息如图2-3
右键单击该行选择撤销事务,会生成撤销事务的脚本,如图2-4.复制该脚本到查询分析器中,并执行结果如图2-5、2-6,数据完整的恢复了
图2-4
图2-5
图2-6
用上述方法同样可以恢复UPDATE,和INSERT引起的数据库改变
二、数据库表删除的恢复操作
执行如下删除语句如图3-1
图3-1
打开【查看DDL命令】点击【刷新】图标如图3-2
图3-2
找到删除表的记录并单击选定,然后点击下面的【挽救】成功后会显示如图3-3界面
图3-3
然后将通过【运行SQL命令】功能执行该脚本,成功执行后(失败为0)在查询分析器中就可以查到刚删除的表已经完全恢复如图3-4,3-5。
图3-4
图3-5
也可以通过【从备份恢复表】的功能来找回删除的表,在输入表名和选择备份的文件后点击【创建】就可生成恢复被删除表的脚本如图3-6
图3-6
logexplorer使用的几个问题
1、对数据库做了完全差异和日志备份
备份时选用了删除事务日志中不活动的条目
再用Logexplorer打试图看日志时
提示Nologrecordersfoundthatmatchthefilter,wouldyouliketoviewunfiltereddata
选择yes就看不到刚才的记录了
如果不选用了删除事务日志中不活动的条目
再用Logexplorer打试图看日志时,就能看到原来的日志
2、修改了其中一个表中的部分数据,此时用Logexplorer看日志,可以作日志恢复
3、然后恢复备份,(注意:
恢复是断开logexplorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开logexplorer提示Nologrecordersfoundthatmatchthefilter,wouldyouliketoviewunfiltereddata
选择yes就看不到刚才在2中修改的日志记录,所以无法做恢复.
4、撤销UPDATE操作时生成的脚本是先删除更新的行然后再插入,所以要把跟该表相关的所有约束用nocheck暂时关闭后再执行脚本
5、数据的恢复越早越好这个软件的可靠性还是很高的,我试过update九万行数据,它都完全的把修改过的给撤销回来了
6、误删除表时用【查看DDL命令】中的【挽救】功能比其他方法更方便些
7、数据库较大时查询和恢复会很慢
8、数据无价,操作需谨慎!
每个日志记录包含一个操作代码,操作代码表示日志的操作
FORMAT_PAGE--写新分配数据页的表头
INSET_ROWS--在用户表或系统表插入行
DELETE_ROWS-从表里删除行
MODIFY_ROW--使用Update命令更新行
MODIFY_HEADER--SQLSERVER分配新数据页,初始化页表头
MODIFY_COLUMNS--使用Update命令更新行
DELTA_SYSIND--SYSINDEXES系统表被修改
DELETE_SPLIT--行移动到新物理页,并从原物理页删除这些行
FILE_HDR_MODIF--SQLSERVER增长数据文件大小
BEGIN_XACT--启动一个事务
COMMIT_XACT--提交一个事务
ABORT_XACT--回滚一个事务
MARK_SAVEPOINT--程序发布'SAVETRANSACTION'命令
MARK_DLL--表结构被修改
BEGIN_CKPT--启动一个检查点
XACT_CKPT--在执行检查点时打开事务
END_CKPT--执行完检查点
SORT_BEGIN--创建索引时执行排序
SORT_END--创建索引时排序完成
CREATE_INDEX--创建一个索引
DROP_INDEX--删除一个索引