社区
疑难问题
帖子详情
log explorer 恢复truncate的数据,只能恢复部分数据?
atubo1234
2010-07-09 06:14:31
如题所说,用的 log explorer4.0.1 中文版,数据库是 mssql2000,
点 salvage 恢复数据,点 抢救 按钮后,生成的 sql 语句只有部分数据,提示是“已恢复 1498 / 4189 行,查看恢复脚本?",回到表中查看数据,表中标识列id从 2369 开始,2369 之前的数据哪里找回?郁闷…………
...全文
121
13
打赏
收藏
log explorer 恢复truncate的数据,只能恢复部分数据?
如题所说,用的 log explorer4.0.1 中文版,数据库是 mssql2000, 点 salvage 恢复数据,点 抢救 按钮后,生成的 sql 语句只有部分数据,提示是“已恢复 1498 / 4189 行,查看恢复脚本?",回到表中查看数据,表中标识列id从 2369 开始,2369 之前的数据哪里找回?郁闷…………
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
atubo1234
2010-07-10
打赏
举报
回复
有人知道怎么做吗 ? 难道真的没希望恢复了…………
jstoic
2010-07-09
打赏
举报
回复
truncate不记录日志,所以不能恢复
你恢复出来的一部分数据,可能是之前累计的。说实话,没有什么好办法。
找个硬盘恢复工具吧,恢复某一天的。如果你运气好,说不定会出现点什么奇迹
atubo1234
2010-07-09
打赏
举报
回复
能说说具体怎么做吗 ?楼上的
glkgdj
2010-07-09
打赏
举报
回复
可以恢复,需要修改数据库基表跟LOG配合来完成。已经做过一些,不过前提是删除后没有操作太多
永生天地
2010-07-09
打赏
举报
回复
[Quote=引用 5 楼 xman_78tom 的回复:]
用 truncate table 语句清空表只会在日志中记录释放页的操作,而不会记录删除每一行的操作,因此无法用 log explorer 还原。
[/Quote]
对于没有日志的操作,没有办法
bancxc
2010-07-09
打赏
举报
回复
truncate 好像不记录日志啊
atubo1234
2010-07-09
打赏
举报
回复
再说一点,这个软件恢复数据是通过生成 逆过程 的sql恢复数据的,软件生成 1498 的insert语句,需要在查询分析器里执行
atubo1234
2010-07-09
打赏
举报
回复
可以恢复 truncate 掉的数据,但是只能恢复一部分,不知道为什么,是不是这个软件本身有什么bug
因为提示“已恢复 1498 / 4189 数据”,而且确实恢复了一部分数据,但是为什么不是全部?
xman_78tom
2010-07-09
打赏
举报
回复
用 truncate table 语句清空表只会在日志中记录释放页的操作,而不会记录删除每一行的操作,因此无法用 log explorer 还原。
atubo1234
2010-07-09
打赏
举报
回复
没有备份才找这个软件的
feixianxxx
2010-07-09
打赏
举报
回复
恢复数据 主要靠备份 这个 log explorer 不太好依赖
Mr_Nice
2010-07-09
打赏
举报
回复
没有碰到过,帮顶...
atubo1234
2010-07-09
打赏
举报
回复
补充说明:数据库文件是从服务器上直接下载的 mdf 和 ldf 文件,附加到本地sql上
Log
Explorer
4.2 MSSQL
数据
库日志查看及
数据
恢复
工具
Log
Explorer
主要用于对MSSQLServer的事物分析和
数据
恢复
。你可以浏览日志、导出
数据
、
恢复
被修改或者删除的
数据
(包括执行过update,delete,drop和
truncate
语句的表格)。一旦由于系统故障或者人为因素导致
数据
丢失,它能够提供在线快速的
数据
恢复
,最大程度上保证
恢复
期间的其他事物不间断执行。 支持SQLServer7.0和SQLServer2000,提取标准
数据
库的日志文件或者备份文件中的信息。 问:
数据
库表中的全部记录删除,事先没有备份
数据
库,如何使用日志文件对该
数据
库进行
恢复
? 答:建议用
LOG
EXPLORER
来
恢复
,图形操作,这个工具特别适合于
恢复
删除的
数据
据,它提供的逆操作,把DELETE的
数据
库变成INSERT再导回来。 具体功能如下: l 日志文件浏览 l
数据
库变更审查 l 计划和授权变更审查 l 将日志记录导出到文件或者
数据
库表 l 实时监控
数据
库事物 l 计算并统计负荷 l 通过有选择性的取消或者重做事物来
恢复
数据
l
恢复
被截断或者删除表中的
数据
l 运行SQL脚本
Log
Explorer
4.2_SqlServer
数据
库
恢复
工具
Log
Explorer
4.2_SqlServer
数据
库
恢复
工具 非常有用的工具,需要的拿去~ 使用
Log
Explorer
查看和
恢复
数据
使用方法: 打开
Log
Explorer
-> Attach
Log
File -> 选择SQL Server服务器和登陆方式 -> Connect -> 在Database Name中选择
数据
库 -> Attach-> 左面对话框中Browse-> View
Log
-> 就可以看到
log
记录了 想
恢复
的话: 右键
Log
记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 T-sql代码就可以了 例如 如果
Log
是delete table where ...的话,生成的文件代码就是insert table .... 然后将此insert table的代码放到查询分析器里执行.就可以
恢复
数据
. ---------------------------------------------------------------------- --如何
恢复
被delete/update的
数据
---------------------------------------------------------------------- 1 连接到被删除
数据
库的Db 打开
log
explorer
选择 "file"->"attach
log
file"->选择服务器和登陆方式->"connect"->选择"
数据
库"->"attach" 2 查看日志 在左面操作项目的对话框中选择"browse"项目->"view
log
"->就可以看到当前的
Log
记录了 3
恢复
数据
右键某一条
log
记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行 T-sql代码就可以了 例如: 如果
log
是delete table where ...的话,生成的文件代码就是insert table .... ---------------------------------------------------------------------- --
Log
Explorer
恢复
被drop table和
truncate
table后的
数据
---------------------------------------------------------------------- 1 连接到被删除
数据
库的Db 操作同上 2
恢复
方法 1) 选择"salvaage dropped/
truncate
"菜单,在右边的对话框中选择表名,和droped/trucated的日期, File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是
truncate
d, 最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了 2) 选择"ViewDDL Commands"菜单->选"
truncate
table" 操作项->点击"Salvage"->生成语句->查询分析器里执行 ---------------------------------------------------------------------- --
log
explorer
使用的几个问题 ---------------------------------------------------------------------- 1) 对
数据
库做完全/差异/日志备份 备份时如果选用了删除事务日志中不活动的条目 再用
Log
explorer
打试图看日志时,提示No
log
recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了 如果不选用了删除事务日志中不活动的条目 再用
Log
explorer
打试图看日志时,就能看到原来的日志并做
恢复
2) 修改了其中一个表中的
部分
数据
,此时用
Log
explorer
看日志,可以作日志
恢复
3) 然后
恢复
备份,(注意:
恢复
是断开
log
explorer
与
数据
库的连接,或连接到其他
数据
上, 否则会出现
数据
库正在使用无法
恢复
)
恢复
完后,再打开
log
explorer
提示No
log
recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做
恢复
. 4) 不要用SQL的备份功能备份,搞不好你的日志就破坏了. 正确的备份方法是: 停止SQL服务,复制
数据
文件及日志文件进行文件备份. 然后启动SQL服务,用
log
explorer
恢复
数据
Log
Explorer
4.2(含注册码)
Log
Explorer
主要用于对MSSQLServer的事物分析和
数据
恢复
。你可以浏览日志、导出
数据
、
恢复
被修改或者删除的
数据
(包括执行过 update,delete,drop和
truncate
语句的表格)。一旦由于系统故障或者人为因素导致
数据
丢失,它能够提供在线快速的
数据
恢复
,最大程度上保证
恢复
期间的其他事物不间断执行。 他可以支持SQLServer7.0和SQLServer2000,提取标准
数据
库的日志文件或者备份文件中的信息。
Lumigent
Log
Explorer
for SQL Server v4.0.2.rar
Log
Explorer
主要用于对MSSQLServer的事物分析和
数据
恢复
。你可以浏览**志、导出
数据
、
恢复
被修改或者删除的
数据
(包括执行过update,delete,drop和
truncate
语句的表格)。一旦由于系统故障或者人为因素导致
数据
丢失,它能够提供在线快速的
数据
恢复
,最大程度上保证
恢复
期间的其他事物不间断执行。 他可以支持SQLServer7.0和SQLServer2000,提取标准
数据
库的**志文件或者备份文件中的信息。 其中提供两个强大的工具:**志分析浏览,对象
恢复
。具体功能如下: l **志文件浏览 l
数据
库变更审查 l 计划和授权变更审查 l 将**志记录导出到文件或者
数据
库表 l 实时监控
数据
库事物 l 计算并统计负荷 l 通过有选择性的取消或者重做事物来
恢复
数据
l
恢复
被截断或者删除表中的
数据
l 运行SQL脚本
sql2000
Log
Explorer
4.2(含注册码)+汉化
介绍
Log
Explorer
主要用于对MSSQLServer的事物分析和
数据
恢复
。你可以浏览日志、导出
数据
、
恢复
被修改或者删除的
数据
(包括执行过update,delete,drop和
truncate
语句的表格)。一旦由于系统故障或者人为因素导致
数据
丢失,它能够提供在线快速的
数据
恢复
,最大程度上保证
恢复
期间的其他事物不间断执行。 他可以支持SQLServer7.0和SQLServer2000,提取标准
数据
库的日志文件或者备份文件中的信息。 其中提供两个强大的工具:日志分析浏览,对象
恢复
。具体功能如下: l 日志文件浏览 l
数据
库变更审查 l 计划和授权变更审查 l 将日志记录导出到文件或者
数据
库表 l 实时监控
数据
库事物 l 计算并统计负荷 l 通过有选择性的取消或者重做事物来
恢复
数据
l
恢复
被截断或者删除表中的
数据
l 运行SQL脚本 产品
Log
Explore包含两
部分
l 客户端软件 l 服务器代理 服务器端代理是保存在SQLServer主机中的一个只读存储过程,他的作用是接受客户端请求,读取在线事物日志块并通过网络传给客户端软件,由客户端软件来读取这些原始的
数据
块来完成
Log
Explore所提供的所有功能。 他依赖来的网络协议包括: l Named Pipe:局域网中适用 l Tcp/Ip:广域网中适用
数据
库相关介绍 事物日志(Transaction
Log
) SQLServer的每个
数据
库都包含事物日志,它以文件的形式存储,可以记录
数据
库的任何变化。发生故障时SQLServer就是通过它来保证
数据
的完整性。 操作(Operation) 操作是
数据
库中定义的"原子行为",每个操作都在日志文件中保存为一条记录。它可以是用户直接输入的SQL语句,比如标准的insert命令,日志文件中便会记录一条操作代码来标志这个insert操作。 事物(Transaction) 事物是一系列操作组成的序列。他可以理解为直观的不可分割的一笔业务,可以执行成功或者失败。典型的事物比如由应用程序发出的具有开启-提交功能的一组SQL语句。不同的事物靠事物Id号(transaction ID)来区分,具有相同ID的事物记录的日志也相同。 在线事物日志(Online Transaction
Log
) 在线事物日志是指当前活动
数据
库所用的日志。可以通过如下命令来确定其对应文件 Select * from SYSFILES 他的文件后缀名一般是.LDF 离线事物日志(Offline Transaction
Log
) 离线事物日志是指非活动
数据
库所用的日志。当其
数据
库处于关闭(ShutDown)才状态下可以进行复制备份操作。他的结果同在线事物日志完全相同。 备份文件 备份文件是保存食物日志备份的文件,通常管理员通过运行SQL语句或者企业管理器来生成该文件。备份文件的内部结构和事物日志不同,他采用称为MTF的格式来保存
数据
。一个备份文件可以包含一个日志的多组备份,甚至包括多个
数据
库的混合备份. 设置为自动收缩 企业管理器--服务器--右键
数据
库--属性--选项--选择"自动收缩" 强烈要求该项不要选中.否则SQLServer将已循环的方式来覆盖先前的日志记录,将会导致
Log
Explore无法
恢复
错误.
数据
恢复
介绍
Log
Explore允许你
恢复
应为误操作或者程序错误而导致的
数据
丢失或者更改.比如执行update/Delete语句时丢失了where子句,或者错误使用了Dts功能.
Log
Explore不支持直接修改
数据
库.他可以生成事物的逆操作脚本. 如果
log
是delete table where ...的话,生成的文件代码就是insert table .... 你可以通过SQL查询分析器,或者
Log
Explore的Run SQL Script功能来执行生成脚本. 关于Undo Undo功能可以逆操作一组指定的用户事物。包括insert,delete和update,其局限性如下: l 事物类别:
Log
Explore
只能
undo用户事物。用户事物是指在用户表上定义的事物,不支持系统表的更新
恢复
。同时,他也不支持计划变更的回滚。 l Blob类型:包括text,ntext,image类型。
Log
Explore只支持这些类型的insert和delete
恢复
,不支持update语句
恢复
。 关于redo Redo功能可以再次运行一组指定事物。它可以在以下情况中用到: 丢失
数据
库而且没有任何备份文件。 l 如果原始日志文件没有丢失可以通过Redo来实现
恢复
。 l 通过完整备份文件来把
数据
库
恢复
到某指定时间点,再通过redo功能完整
恢复
。它可以重放Create Table和Create Index命令,来重新生成被删掉的表,同时也受blob字段的限制。 拯救Dropped/
Truncate
命令导致的
数据
丢失 执行Drop Table和
Truncate
Table命令虽然会被SQLServer记录到日志文件中,但是并不记录被删除的
数据
。你可以使用
Log
Explore提供的功能来
恢复
这些
数据
。
Log
Explore提供两种机制来
恢复
被Drop或者
Truncate
的
数据
。 1、如果你有备份文件可以直接通过备份文件
恢复
。 2、通过
Log
Explore提供的方法来
恢复
。 当执行如上命令时,SQLServer会将保存
数据
的页面放入空闲页面列表中。如果此页没有被再次使用则将一直保存原始
数据
。
恢复
时,
Log
Explore将从空闲页面列表中搜寻没有被再次使用的页面,然后生成一个SQL脚本来从这些页面重组原始
数据
。
Log
Explore可以确定被删掉的原始
数据
行,并在完成时显示原始行数和实际
恢复
的行数,由此可以断定是否全部
恢复
。 SQL逆操作 1、Insert--Delete 2、Delete--Insert 3、Update 注意:如果你选中了'Do not restore column values that have been changed by subsequent modifications'项,只对事物1逆转将不会产生任何结果。 自增序列(IDENTITY Property) 如果被删除
数据
与有IDENTITY Property属性,
恢复
时
Log
Exlpore可以通过SET IDENTITY_INSERT ON 命令来对插入的
数据
设置Identity属性,并保留原
数据
不变,也可以对该列付与新值。
数据
导出: 浏览日志时可将
数据
导出为xml,html,或者其他有分隔符的文件.也可以指定到一个SQL的表中. 操作指南 Attaching to a
Log
:在所有操作之前必须添加日志文件, l 可以用普通的SQL登录方式添加在线日志(Online
Log
), l 直接选择LDF文件来添加离线日志(OffLine
Log
) l 添加备份文件 登录之后界 功能介绍: 1、
Log
Summary 日志文件的概要信息。 2、 Load Analysis 列出指定时间范围内的一些事物,用户和表载入的概要信息。 3、 Filter
Log
Record 日志过滤设置。支持过滤条件包括:时间、操作类型、表、用户、SPID、搜索深度、Dropped表项以及登录设置和应用程序设置 4、Browse 日志浏览,核心模块。 1、 View
Log
功能: 列表如图,可以用TransID来区分事物并用不同颜色标识。工具栏的按钮是一些基本查询操作。鼠标右键弹出菜单中有Undo Transaction和UndoOperation可以
恢复
黑色箭头选中的事物或者操作项。 Real-Time Monitor: 实时监控事物日志,通过轮询来实现。可以暂停或者停止监控,可以更改轮询周期。 相关DML语言和DDL语言可以在Row Revision History、Row Transaction History以及View DDL Commands来查询。 2、 Export
Log
Report 包括Export To SQL和Export To File,根据向导即可完成。 3、 其余菜单:Undo,Redo,Salvage Dropped/
Truncate
d data,Restore 以及Run SQL Script前面已经叙述过,可以根据其向导完成。
log
explorer
使用的几个问题 1)对
数据
库做了完全 差异 和日志备份 备份时选用了删除事务日志中不活动的条目 再用
Log
explorer
打试图看日志时 提示No
log
recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了 如果不选用了删除事务日志中不活动的条目 再用
Log
explorer
打试图看日志时,就能看到原来的日志 2)修改了其中一个表中的
部分
数据
,此时用
Log
explorer
看日志,可以作日志
恢复
3)然后
恢复
备份,(注意:
恢复
是断开
log
explorer
与
数据
库的连接,或连接到其他
数据
上, 否则会出现
数据
库正在使用无法
恢复
)
恢复
完后,再打开
log
explorer
提示No
log
recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才在2中修改的日志记录,所以无法做
恢复
. 3) 不要用SQL的备份功能备份,搞不好你的日志就破坏了. 正确的备份方法是: 停止SQL服务,复制
数据
文件及日志文件进行文件备份. 然后启动SQL服务,用
log
explorer
恢复
数据
请注意如果
数据
库采用简单日志,
Log
Explorer
就没用了。
Log
Explorer
For SQL SERVER帮助翻译(
Log
Operation Codes) 日志操作代码 每个日志记录包含一个操作代码,操作代码表示日志的操作 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 程序发布'SAVE TRANSACTION'命令 MARK_DLL 表结构被修改 BEGIN_CKPT 启动一个检查点 XACT_CKPT 在执行检查点时打开事务 END_CKPT 执行完检查点 SORT_BEGIN 创建索引时执行排序 SORT_END 创建索引时排序完成 CREATE_INDEX 创建一个索引 DROP_INDEX 删除一个索引
疑难问题
22,210
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章