发布时间 : 星期二 文章Oracle数据库实验笔记更新完毕开始阅读
SQL> alter system switch logfile;
系统已更改。 SQL>
日志挖掘 DDL直接挖 但挖掘dml语句需要将数据库置为 追加日志数据模式.
1.修改追加日志数据模式
SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- NO
SYS@beijing> alter database add SUPPLEMENTAL log data;
Database altered.
SYS@beijing> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- YES
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME -------- NO
SQL> alter database add SUPPLEMENTAL log data;
数据库已更改。
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SUPPLEME --------
YES
SQL> conn /as sysdba 已连接。
SQL> exec dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); BEGIN dbms_logmnr.add_logfile('/home/oracle/oradata/ora10g/redo01abc.log'); END; *
第 1 行出现错误:
ORA-01284: 文件 /home/oracle/oradata/ora10g/redo01abc.log 无法打开 ORA-00308: 无法打开归档日志 '/home/oracle/oradata/ora10g/redo01abc.log' ORA-27041: 无法打开文件 OSD-04002: 无法打开文件
O/S-Error: (OS 3) 系统找不到指定的路径。 ORA-06512: 在 \ORA-06512: 在 line 1
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG');
PL/SQL 过程已成功完成。
SQL> NO
SP2-0042: 未知命令 \其余行忽略。 SQL> alter database add SUPPLEMENTAL log data;
数据库已更改。
SQL> alter user scott account unlock identified by seker;
用户已更改。
SQL> update scott.emp set sal=100 ;
已更新14行。
SQL> commit;
提交完成。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME ------------- --------------
1 1 11 52428800 1 NO CURRENT 606095 02-11月-12
2 1 9 52428800 1 YES INACTIVE 604778 02-11月-12
3 1 10 52428800 1 YES INACTIVE 604811 02-11月-12
SQL> select * from v$logfile;
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
3 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG NO
2 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG NO
GROUP# STATUS TYPE ---------- ------- ------- MEMBER
-------------------------------------------------------------------------------- IS_ ---
1 ONLINE
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG NO
SQL> exec dbms_logmnr.add_logfile(' D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG ERROR:
ORA-01756: 引号内的字符串没有正确结束
SQL> NO');
SP2-0042: 未知命令 \其余行忽略。
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG'); BEGIN dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG'); END; *
第 1 行出现错误:
ORA-01289: 无法添加重复的日志文件
D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG ORA-06512: 在 \ORA-06512: 在 line 1
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='emp'; 未选定行
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG');
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
PL/SQL 过程已成功完成。
SQL> select sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and seg_name='EMP'; 未选定行
SQL> exec dbms_logmnr.add_logfile('D:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG');
PL/SQL 过程已成功完成。
SQL> exec dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);