网站建设资金预算,wordpress 加密算法,怀化 优化生育政策,怎样介绍自己做的网站logmgr如何导出sql语句
我们可以使用logminer分析其它instance#xff08;版本可不一致#xff09;的重做日志文件#xff0c;但是必须遵循以下要求#xff1a;
1. LogMiner日志分析工具仅能够分析Oracle 8以后的产品
2. LogMiner必须使用被分析数据库实例产生…logmgr如何导出sql语句
我们可以使用logminer分析其它instance版本可不一致的重做日志文件但是必须遵循以下要求
1. LogMiner日志分析工具仅能够分析Oracle 8以后的产品
2. LogMiner必须使用被分析数据库实例产生的字典文件且安装LogMiner数据库的字符集必须和被分析数据库的字符集相同
3. 被分析数据库平台必须和当前LogMiner所在数据库平台一样且block size相同。 使用logminer
1. 安装logminer
要安装LogMiner工具必须首先要运行下面这样两个脚本 $ORACLE_HOME/rdbms/admin/dbmslm.sql $ORACLE_HOME/rdbms/admin/dbmslmd.sql. 这两个脚本必须均以SYS用户身份运行。 2. 创建数据字典文件 alter system set utl_file_dird:\oracle\logs scopespfile; 重新启动数据库使新加的参数生效然后创建数据字典文件 SQLexecute dbms_logmnr_d.build(dictionary_filenamelogmn_ora102.dat,dictionary_locationd:\oracle\logs);
创建数据字典是让LogMiner引用涉及到内部数据字典中的部分时使用对象的名称而不是系统内部的16进制的ID。如果我们要分析的数据库中的表有变化影响到库的数据字典也发生变化就需要重新创建该字典。
3. 添加要分析的日志文件
Logminer可以用来分析在线的重做日志文件和归档日志文件但是我们一般建议使用归档的日志文件。
a.添加新的日志文件 EXECUTE dbms_logmnr.add_logfile(LogFileNameD:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2010_11_22\O1_MF_1_200_6GMJKTRF_.ARC, Optionsdbms_logmnr.new);
b.添加另外的日志文件到列表 EXECUTE dbms_logmnr.add_logfile(LogFileNameD:\oracle\product\10.2.0\flash_recovery_area\ORCL\ARCHIVELOG\2010_11_22\O1_MF_1_201_6GNH1NGN_.ARC, Optionsdbms_logmnr.addfile);
c. 移去一个日志文件
SQL EXECUTE dbms_logmnr.add_logfile( LogFileName D:\database\oracle\oradata\ora817\archive \ ARC01491.002, Optionsdbms_logmnr. REMOVEFILE);
4. 进行日志分析 EXECUTE dbms_logmnr.start_logmnr(DictFileNameD:\Oracle\logs\logmn_ora102.dat); 可以使用相应的限制条件
时间范围对dbms_logmnr.start_logmnr使用StartTime和EndTime参数
SCN范围对dbms_logmnr.start_logmnr使用StartScn和EndScn参数
5.观察结果
主要是查询v$logmnr_contents
SQL desc v$logmnr_contents;
名称 空? 类型
----------------------------------------- -------- ----------------------
SCN NUMBER
TIMESTAMP DATE
THREAD# NUMBER
LOG_ID NUMBER
XIDUSN NUMBER
XIDSLT NUMBER
XIDSQN NUMBER
RBASQN NUMBER
RBABLK NUMBER
RBABYTE NUMBER
UBAFIL NUMBER
UBABLK NUMBER
UBAREC NUMBER
UBASQN NUMBER
ABS_FILE# NUMBER
REL_FILE# NUMBER
DATA_BLK# NUMBER
DATA_OBJ# NUMBER
DATA_OBJD# NUMBER
SEG_OWNER VARCHAR2(32)
SEG_NAME VARCHAR2(32)
SEG_TYPE NUMBER
SEG_TYPE_NAME VARCHAR2(32)
TABLE_SPACE VARCHAR2(32)
ROW_ID VARCHAR2(19)
SESSION# NUMBER
SERIAL# NUMBER
USERNAME VARCHAR2(32)
SESSION_INFO VARCHAR2(4000)
ROLLBACK NUMBER
OPERATION VARCHAR2(32)
SQL_REDO VARCHAR2(4000)
SQL_UNDO VARCHAR2(4000)
RS_ID VARCHAR2(32)
SSN NUMBER
CSF NUMBER
INFO VARCHAR2(32)
STATUS NUMBER
PH1_NAME VARCHAR2(32)
PH1_REDO VARCHAR2(2000)
PH1_UNDO VARCHAR2(2000)
PH2_NAME VARCHAR2(32)
PH2_REDO VARCHAR2(2000)
PH2_UNDO VARCHAR2(2000)
PH3_NAME VARCHAR2(32)
PH3_REDO VARCHAR2(2000)
PH3_UNDO VARCHAR2(2000)
PH4_NAME VARCHAR2(32)
PH4_REDO VARCHAR2(2000)
PH4_UNDO VARCHAR2(2000)
PH5_NAME VARCHAR2(32)
PH5_REDO VARCHAR2(2000)
PH5_UNDO VARCHAR2(2000) 通过字段sql_redo可以得到该日志文件中进行过的sql操作通过sql_undo可以得到撤销的sql语句。
还可以用这样的sql对日志文件中的所有的操作分类统计
select operation,count(*)from v$logmnr_contents group by operation; 视图v$logmnr_contents中的分析结果仅在我们运行过程dbms_logmrn.start_logmnr这个会话的生命期中存在。这是因为所有的LogMiner存储都在PGA内存中所有其他的会话是看不到它的同时随着会话的结束而清除分析结果。 最后使用过程DBMS_LOGMNR.END_LOGMNR终止日志分析事务PGA内存区域将被清除。