9.4 如何对重做日志进行分析
无论是重做日志文件,还是归档日志文件,都是以二进制的形式保存重做日志信息的。这种日志组织形式便于数据库服务器对其进行解读,但是不便于人工查看。
Oracle提供了一个实用工具LogMiner,数据库管理员可以利用这个实用工具对重做日志和归档日志进行分析。通过分析日志,把二进制的重做日志以文本的形式显示出来。通过这种方式,可以跟踪某个用户的DML或DDL操作,或者跟踪用户在某个特定的数据库对象上的操作,或者撤销用户在特定数据库对象上的操作。
在分析日志时,首先需要创建一个字典文件,用来保存数据库对象的信息,如对象名称和结构等,这些信息是从数据字典中得到的。在一个数据库中可能有许多的重做日志文件和归档日志文件,在分析日志时需要指定对哪些文件进行分析。在进行日志分析时,可以根据开始时间和终止时间来指定日志分析的范围,也可以根据开始SCN和终止SCN指定日志分析的范围。日志分析的结果保存在相关的动态性能视图中,数据库管理员可以通过查询这些动态性能视图来了解日志的信息。日志分析完后应该结束这次分析过程。
利用LogMiner实用工具分析日志的过程如下:
1)创建字典文件。
2)指定需要分析的重做日志文件和归档日志文件。
3)开始日志分析。
4)查看分析结果。
5)结束日志分析。
日志分析是利用一系列的程序包来完成的。LogMiner实用工具提供了以下两个包:
·DBMS_LOGMNR_D:用于解读数据字典信息,创建字典文件。
·DBMS_LOGMNR:用于对日志文件进行分析。
9.4.1 如何创建字典文件
字典文件用于保存数据库对象的结构、权限等信息,这些信息来自数据字典。字典文件可以是普通的文本文件,也可以是其他的重做日志文件,在默认情况采用文本文件。
字典文件的存储位置通过初始化参数utl_file_dir指定。在创建字典文件之前,需要对初始化参数utl_fille_dir进行设置。例如:
SQL>ALTER SYSTEM SET utl_file_dir='/home/oracle/dict'SCOPE=spfile;
然后重新启动数据库服务器,使这个初始化参数起作用。
程序包DBMS_LOGMNR_D中的存储过程BUILD用于创建字典文件。在调用这个存储过程时通过参数指定字典文件的名称、存储位置和文件类型。例如:
SQL>BEGIN
DBMS_LOGMNR_D.BUILD(dictionary_filename=>'dict.ora',
dictionary_location=>'/home/oracle/dict',
options=>DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
END;
其中第一个参数用于指定字典文件的名称,第二个参数用于指定字典文件的存储位置,它的值必须与初始化参数utl_file_dir的设置一致。第三个参数用于指定字典文件是文本文件还是重做日志文件,默认情况下是文本文件(STORE_IN_FLAT_FILE),如果要采用重做日志文件,则为这个参数的值为STORE_IN_REDO_LOGS,这两个参数值都是在DBMS_LOGMNR_D包中定义的常量。