Oracle数据库实验笔记 联系客服

发布时间 : 星期二 文章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);