Oracle中用LogMiner解析重做及归档日志
日期:2010年5月21日 作者:
LogMiner是集成在Oracle8i/Oracle9i数据库 产品中的日志分析工具,议决该工具能够分析重做日志和归档日志中的一切事务改变,并能准确地确定各种DML和DDL操作的详细时间和SCN值。对重做日志和归档日志执行分析的目标是为了恢复由于执行了误操作而丧失的数据。
运用LogMiner可完成:①确定数据逻辑损坏的时间。比如,用户执行了DROP TABLE和TRUNCATE TABLE命令等误操作后,运用LogMiner能够准确定位执行这些误操作的详细时间。留意:Oracle8i只好复原DML操作,不能复原DDL操作;Oracle9i能够复原DDL以及DML操作。②跟踪用户执行的事务改变操作。运用LogMiner不只好够跟踪用户所执行的各种DML操作和 DDL操作,并且还能够取得数据改变。③跟踪表的DML操作,运用LogMiner能够跟踪在表上所发作的一切事务改变。
下面以Oracle8i(8.1.5)for Windows 2000/NT为例标明如何运用LogMiner对重做日志和归档日志执行分析。本文执行的一切操作均在该环境下验证议决,文中运用的数据库 名为phj,Oracle_sid为phj。
一、日志操作方式
Oracle数据库 对日志的维护方式有两种,即:非归档方式和归档方式。在树立或安装Oracle数据库 时,假设没有指定日志操作方式,则默许为非归档方式(NOARCHIVELOG)。数据库 树立之后,用户能够依据须要修正数据库 日志的操作方式。
1.非归档方式(NOARCHIVELOG)
非归档方式是指不保管重做日志的日志操作方式,这种日志操作方式只好用于维护实例失败(如系统断电),而不能用于维护介质失败(数据库 物理文件损坏)。
非归档方式的任务流程如下:假定数据库 只需两个日志组,且现在日志组为日志组一,日志序列号为1。当事务改变填满日志组一时,系统会切换到日志组二,并且LGWR进程将事务改变写入该日志组,日志序列号变为2;而当事务改变填满日志组二时,系统又自动切换回日志组一,此时日志序列号变为3,并且日志序列号3所对应的事务改变会掩盖日志序列号1所对应的事务改变,依此类推。
2.归档方式(ARCHIVELOG)
归档方式是指将重做日志内容保管到归档日志中的日志操作方式。在这种日志操作方式下,当执行日志切换时ARCH进程会将重做日志的内容复制到归档日志中。比如,假定数据库 只包括两个日志组,LGWR进程最先将事务改变写入日志组一,此时日志序列号为1;当事务改变填满日志组一时,系统将自动切换到日志组二,并将事务改变写入日志组二,此时日志序列号变为2,同时后台进程ARCn会将日志组一的内容保管到归档日志文件1中;而当事务改变填满日志组二时,系统自动切换回日志组一,并将事务改变写入日志组一,此时日志序列号变为3,同时后台进程ARCn会将日志组二的内容保管到归档日志文件2中,依此类推。
3.改动日志的操作方式为自动归档方式
①修正数据库 的参数文件,在参数文件后添加如下参数:
log_archive_start = true
log_archive_dest_1 = "location=C:\Oracle\phj\archive"
Oracle原始参数与目前用户
下一篇:Oracle手工建设数据库的步骤
相关文章