问题:归档日志只记录DDL,不记得DML。1、安装Logminer数据包。C:\Workspace\GetFiles\bin sqlplus /nologSQL*Plus: Release 10.2.0.3.0 - Production on 星期二 7月 12 17:11:49 2011Copyright (c) 1982, 2006, Oracle. All Rights Reserved.SQL> conn / as sysdba
已连接。
SQL> @C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslm.sql
程序包已创建。
授权成功。SQL> @C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslmd.sql
程序包已创建。2、设置路径SQL> ALTER SYSTEM SET UTL_FILE_DIR='C:\Oracle\product\10.2.0\db_1\sjjhDict' SCOPE=SPFILE;系统已更改。3、启动自动归档模式SQL> alter database archivelog;数据库已更改。4、查看模式SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 10
下一个存档日志序列 12
当前日志序列 125、创建数据库字典
SQL> exec sys.dbms_logmnr_d.build(dictionary_filename=>'C:\Oracle\product\10.2.0\db_1\sjjhDict\sjjhDict.ora',dictionary_location=>'C:\Oracle\product\10.2.0\db_1\sjjhDict');
PL/SQL procedure successfully completed6、创建数据库表CREATE TABLE "NEWS_B"
(
"NID" NUMBER,
"NTITLE" VARCHAR2(200),
"NTIME" DATE,
"NAUTHOR" NUMBER,
"NCONTENT" VARCHAR2(4000),
PRIMARY KEY ("NID")
)7、添加数据,进行DML操作insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (1, '1', to_date('12-07-2011', 'dd-mm-yyyy'), 1, '1', 'AAAMoiAAEAAAABdAAA');insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (2, '2', to_date('12-07-2011', 'dd-mm-yyyy'), 2, '2', 'AAAMoiAAEAAAABdAAB');insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (3, '3', to_date('12-07-2011', 'dd-mm-yyyy'), 3, '3', 'AAAMoiAAEAAAABdAAC');commit;8、启动Logminer分析Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO01.LOG',sys.dbms_logmnr.NEW);
Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO02.LOG',sys.dbms_logmnr.ADDFILE);
Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO03.LOG',sys.dbms_logmnr.ADDFILE);
Exec sys.dbms_logmnr.start_logmnr(OPTIONS=>SYS.DBMS_LOGMNR.COMMITTED_DATA_ONLY,DictFileName=>'C:\Oracle\product\10.2.0\db_1\sjjhDict\sjjhDict.ora');--------------------------------------------------------------------
SQL> SELECT SQL_REDO,SQL_UNDO,OPERATION,TIMESTAMP,ROW_ID,SEG_OWNER,SEG_NAME FROM SYS.V_$LOGMNR_CONTENTS WHERE SEG_OWNER='HUX' AND SEG_NAME='NEWS_B';
SQL_REDO SQL_UNDO OPERATION TIMESTAMP ROW_ID SEG_OWNER SEG_NAME
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------- ----------- ------------------ -------------------------------- --------------------------------------------------------------------------------
DDL 2011/7/12 1 AAAAAAAAAAAAAAAAAB HUX NEWS_B
CREATE TABLE "NEWS_B"
(
"NID" NUMBER,
"NTITLE" VARCHAR2(200),
"NTIME" DATE,
"NAUTHOR" NUMBER,
"NCONTENT" VARCHAR2(4000),
PRIMARY KEY ("NID")
)
;
SQL>10、执行DDL语句SQL> TRUNCATE TABLE NEWS_B;
Table truncated
== 下面接 #1 楼==
已连接。
SQL> @C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslm.sql
程序包已创建。
授权成功。SQL> @C:\Oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslmd.sql
程序包已创建。2、设置路径SQL> ALTER SYSTEM SET UTL_FILE_DIR='C:\Oracle\product\10.2.0\db_1\sjjhDict' SCOPE=SPFILE;系统已更改。3、启动自动归档模式SQL> alter database archivelog;数据库已更改。4、查看模式SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 10
下一个存档日志序列 12
当前日志序列 125、创建数据库字典
SQL> exec sys.dbms_logmnr_d.build(dictionary_filename=>'C:\Oracle\product\10.2.0\db_1\sjjhDict\sjjhDict.ora',dictionary_location=>'C:\Oracle\product\10.2.0\db_1\sjjhDict');
PL/SQL procedure successfully completed6、创建数据库表CREATE TABLE "NEWS_B"
(
"NID" NUMBER,
"NTITLE" VARCHAR2(200),
"NTIME" DATE,
"NAUTHOR" NUMBER,
"NCONTENT" VARCHAR2(4000),
PRIMARY KEY ("NID")
)7、添加数据,进行DML操作insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (1, '1', to_date('12-07-2011', 'dd-mm-yyyy'), 1, '1', 'AAAMoiAAEAAAABdAAA');insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (2, '2', to_date('12-07-2011', 'dd-mm-yyyy'), 2, '2', 'AAAMoiAAEAAAABdAAB');insert into news_b (NID, NTITLE, NTIME, NAUTHOR, NCONTENT, ROWID)
values (3, '3', to_date('12-07-2011', 'dd-mm-yyyy'), 3, '3', 'AAAMoiAAEAAAABdAAC');commit;8、启动Logminer分析Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO01.LOG',sys.dbms_logmnr.NEW);
Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO02.LOG',sys.dbms_logmnr.ADDFILE);
Exec sys.dbms_logmnr.add_logfile('C:\Oracle\product\10.2.0\oradata\hux\REDO03.LOG',sys.dbms_logmnr.ADDFILE);
Exec sys.dbms_logmnr.start_logmnr(OPTIONS=>SYS.DBMS_LOGMNR.COMMITTED_DATA_ONLY,DictFileName=>'C:\Oracle\product\10.2.0\db_1\sjjhDict\sjjhDict.ora');--------------------------------------------------------------------
SQL> SELECT SQL_REDO,SQL_UNDO,OPERATION,TIMESTAMP,ROW_ID,SEG_OWNER,SEG_NAME FROM SYS.V_$LOGMNR_CONTENTS WHERE SEG_OWNER='HUX' AND SEG_NAME='NEWS_B';
SQL_REDO SQL_UNDO OPERATION TIMESTAMP ROW_ID SEG_OWNER SEG_NAME
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------- ----------- ------------------ -------------------------------- --------------------------------------------------------------------------------
DDL 2011/7/12 1 AAAAAAAAAAAAAAAAAB HUX NEWS_B
CREATE TABLE "NEWS_B"
(
"NID" NUMBER,
"NTITLE" VARCHAR2(200),
"NTIME" DATE,
"NAUTHOR" NUMBER,
"NCONTENT" VARCHAR2(4000),
PRIMARY KEY ("NID")
)
;
SQL>10、执行DDL语句SQL> TRUNCATE TABLE NEWS_B;
Table truncated
== 下面接 #1 楼==
11、再次分析SQL> SELECT SQL_REDO,SQL_UNDO,OPERATION,TIMESTAMP,ROW_ID,SEG_OWNER,SEG_NAME FROM SYS.V_$LOGMNR_CONTENTS WHERE SEG_OWNER='HUX' AND SEG_NAME='NEWS_B';
SQL_REDO SQL_UNDO OPERATION TIMESTAMP ROW_ID SEG_OWNER SEG_NAME
-------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------- ----------- ------------------ -------------------------------- --------------------------------------------------------------------------------
DDL 2011/7/12 1 AAAAAAAAAAAAAAAAAB HUX NEWS_B
CREATE TABLE "NEWS_B"
(
"NID" NUMBER,
"NTITLE" VARCHAR2(200),
"NTIME" DATE,
"NAUTHOR" NUMBER,
"NCONTENT" VARCHAR2(4000),
PRIMARY KEY ("NID")
)
;
DDL 2011/7/12 1 AAAAAAAAAAAAAAAAAB HUX NEWS_B
TRUNCATE TABLE NEWS_B
;
SQL>12、查看表LOGGING状态SQL> select logging from dba_tables t where t.table_name=upper('NEWS_B');
LOGGING
-------
YES
SQL>===结束===各位,这个问题困扰我快一周了!真的不知道是怎么回事。。请大家帮帮忙!