请问用怎样查看数据库事务日志的内容?

xwqjamky 2006-12-20 11:52:06
请问用怎样查看数据库事务日志的内容?

数据库某个表中有数据突然改变了。。我想查看执行了什么命令?请帮忙
...全文
1023 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leo_lesley 2006-12-20
  • 打赏
  • 举报
回复
log explorer 可以看日志的内容
xeqtrl982 2006-12-20
  • 打赏
  • 举报
回复
打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....


系统中有一个数据库DB1,系统正在使用的过程中,不小心删除了某表T1的数据
现我可以按照用完整备份文件加日志备份时间点TIME1恢复的方法来恢复该数据库

但问题出在该数据库一直还必须在使用中,所以除了你删除了数据的TA表外,其它的
表的数据你不能只是恢复到错误时间点TIME1处,因为,TIME1以后也有数据变化

解决这个问题有两个方法
1:用LOG EXEPLORE 可以轻松搞定

2:先建立一个数据库DB2,将完整备份文件恢复到DB2中,再用DB2中的T1数据来更新
DB1中的T1数据即可.


--查看备份信息
RESTORE FILELISTONLY FROM DISK ='C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup'

--还原旧的备份
RESTORE DATABASE db2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\db1_backup' with replace,norecovery,
move 'db1_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_data.mdf',
move 'db1_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\data\db2_log.ldf'

--还原数据日志到时间点
restore log db2 from disk='db_log_backup' with stopat='2003/4/22 9:57'


-----------------
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中修改的日志记录,所以无法做恢复
xwqjamky 2006-12-20
  • 打赏
  • 举报
回复
下载了LOG EXPLORER 这个软件..请问有这方面的教程吗?
marco08 2006-12-20
  • 打赏
  • 举报
回复
上網下載log explorer工具
xwqjamky 2006-12-20
  • 打赏
  • 举报
回复
怎么查呢?
第十章 数据库恢复技术 1、试述事务的概念及事务的四个特性。恢复技术能保证事务的哪些特性? 答:事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,事务是一 个不可分割的工作单元。 事务具有4个特性:原子性、一致性、隔离性和持续性。 原子性:事务数据库的逻辑工作单位,事务中包括的操作要么都做,要么都不做。 一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。 隔离性:一个事务的执行不能被除数其他事务干扰。即一个事务内部的操作及使用的 数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 持续性:持续性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就应 该是永久生效的。接下来的其他操作或故障不应该对其执行结果有任何影响。 恢复技术能保证事务的原子性、持久性。 3、数据库中为什么要有恢复子系统?它的功能是什么? 答:因为计算机系统中硬件的故障、软件的错误、操作员的失损以及恶意的破坏是不可 避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则 破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。 恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态。 4、数据库运行可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏 数据库数据? 答:数据库系统中可能发生各种各样的故障,大致可分为:事务内部故障;系统故障; 介质故障;计算机病毒。 事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数 据库数据。 5、数据库恢复的基本技术有哪些? 答:数据转储和登录日志文件是数据库恢复的基本技术。 当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库 恢复到故障前的某个一致性状态。 6、数据库转储的意义是什么?试比较各种数据转储方法。 答:数据转储是数据库恢复中采用的基本技术。所谓转储即 DBA定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏 后可以将后备副本重新装入,将数据库恢复到转储时的状态。 静态转储:在系统中无运行事务时进行的转储操作。静态转储简单,但必须等待正运 行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会 降低数据库的可用性。 动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺 点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束 时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数 据,使得后援副本上的数据不是数据库的一致版本。 为此,必须把转储期间各事务数据库的修改活动登记下来,建立日志文件(log file)。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。 转储还可以分为海量转储和增量转储两种方式。 海量转储是指每次转储全部数据库。增量转储则指每次只转储上一次转储后更新过的 数据。从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如 果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。 7、什么是日志文件?为什么要设立日志文件? 答:(1)日志文件是用来记录事务数据库的更新操作的文件。 (2)设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本 进行介质故障恢复。 8、登记日志文件时为什么必须先写日志文件,后写数据库? 答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个 不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。 如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个 修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次 UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录 写到日志文件中,然后写数据库的修改。 10、什么是检查点记录?检查点记录包括哪些内容? 答:检查点记录是一类新的日志记录。它的内容包括: (1)建立检查点时刻所有正在执行事务清单; (2)这些事务的最近一个日志记录的地址。 11、具有检查点的恢复技术有什么优点?试举一个具体的例子加以说明。 答:利用日志技术进行数据库恢复时,恢复子系统必须搜索日志,确定哪些事务需要RE DO,哪些事务需要UNDO。一般来说,需要检查所有日志记录。这样做有两个问题: 一是搜索整个日志将耗费大量的时间; 二是很多需要REDO处理的事务实际上已经将它们的更新操作结果写到数据库中了,恢 复子系统又重新执行了这些操作,浪费了大量时间。 检查点技术就是为了解决这些问题。 例如: 检查点 检查点 Tc检查点 Tf系统故障 日志文件:

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧