我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sql中如何使用dbms_logmnr

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql中如何使用dbms_logmnr

这篇文章主要介绍sql中如何使用dbms_logmnr,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

讲到不完全恢复(找回drop table)时,经常需要确定drop table的确切时间,所以经常需要用到dbms_logmner

SQL> desc dbms_logmnr_d
PROCEDURE BUILD
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
DICTIONARY_FILENAME            VARCHAR2                IN     DEFAULT
DICTIONARY_LOCATION            VARCHAR2                IN     DEFAULT
OPTIONS                        NUMBER                  IN     DEFAULT
PROCEDURE SET_TABLESPACE
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
NEW_TABLESPACE                 VARCHAR2                IN
--过程set_tablespace可以把logmnr相关的对象从sysaux表空间转移到set_tablespace设置的表空间
SQL> exec dbms_logmnr_d.set_tablespace('TEST');

PL/SQL 过程已成功完成。

SQL> select count(*) from dba_segments where tablespace_name='TEST';

COUNT(*)
----------
       99

SQL> exec dbms_logmnr_d.set_tablespace('SYSAUX');

PL/SQL 过程已成功完成。

SQL> select count(*) from dba_segments where tablespace_name='TEST';

COUNT(*)
----------
        4

SQL> desc dbms_logmnr
PROCEDURE ADD_LOGFILE
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
LOGFILENAME                    VARCHAR2                IN
OPTIONS                        BINARY_INTEGER          IN     DEFAULT
FUNCTION COLUMN_PRESENT RETURNS BINARY_INTEGER
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
SQL_REDO_UNDO                  NUMBER                  IN     DEFAULT
COLUMN_NAME                    VARCHAR2                IN     DEFAULT
PROCEDURE END_LOGMNR
FUNCTION MINE_VALUE RETURNS VARCHAR2
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
SQL_REDO_UNDO                  NUMBER                  IN     DEFAULT
COLUMN_NAME                    VARCHAR2                IN     DEFAULT
PROCEDURE REMOVE_LOGFILE
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
LOGFILENAME                    VARCHAR2                IN
PROCEDURE START_LOGMNR
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
STARTSCN                       NUMBER                  IN     DEFAULT
ENDSCN                         NUMBER                  IN     DEFAULT
STARTTIME                      DATE                    IN     DEFAULT
ENDTIME                        DATE                    IN     DEFAULT
DICTFILENAME                   VARCHAR2                IN     DEFAULT
OPTIONS                        BINARY_INTEGER          IN     DEFAULT
--设置参数utl_file_dir
SQL> show parameter utl_file_dir

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir                         string
SQL> exec dbms_logmnr_d.build('dict.ora','E:oracleproduct10.2.0admintestlo
gmnr');
BEGIN dbms_logmnr_d.build('dict.ora','E:oracleproduct10.2.0admintestlogmnr
'); END;

*
第 1 行出现错误:
ORA-01308: 未设置初始化参数 utl_file_dir
ORA-06512: 在 "SYS.DBMS_LOGMNR_INTERNAL", line 3474
ORA-06512: 在 "SYS.DBMS_LOGMNR_INTERNAL", line 3552
ORA-06512: 在 "SYS.DBMS_LOGMNR_D", line 12
ORA-06512: 在 line 1


SQL> alter system set utl_file_dir='E:oracleproduct10.2.0admintestlogmnr';

alter system set utl_file_dir='E:oracleproduct10.2.0admintestlogmnr'
                *
第 1 行出现错误:
ORA-02095: 无法修改指定的初始化参数


SQL> alter system set utl_file_dir='E:oracleproduct10.2.0admintestlogmnr' scope=spfile;

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  163577856 bytes
Fixed Size                  1247876 bytes
Variable Size              92276092 bytes
Database Buffers           67108864 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> exec dbms_logmnr_d.build('dict.ora','E:oracleproduct10.2.0admintestlo
gmnr');

PL/SQL 过程已成功完成。

SQL>
SQL> host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:>e:

E:>cd E:oracleproduct10.2.0admintestlogmnr

E:oracleproduct10.2.0admintestlogmnr>dir
驱动器 E 中的卷没有标签。
卷的序列号是 F6E5-4B31

E:oracleproduct10.2.0admintestlogmnr 的目录

2008-09-26  13:11    <DIR>          .
2008-09-26  13:11    <DIR>          ..
2008-09-26  13:11        10,871,850 dict.ora
              1 个文件     10,871,850 字节
              2 个目录  3,143,331,840 可用字节

E:oracleproduct10.2.0admintestlogmnr>exit

SQL> show user
USER 为 "SYS"
SQL> connect test/test
已连接。
SQL> set time on
13:13:04 SQL> desc tt
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------

ID                                                 NUMBER(38)
NAME                                               VARCHAR2(10)

13:08 SQL> select group#,status,sequence#,first_change#,first_time from v$log
;

GROUP# STATUS            SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ---------------- ---------- ------------- --------------
        1 CURRENT                  26       1576118 26-9月 -08
        2 INACTIVE                 25       1570052 26-9月 -08
        3 INACTIVE                 24       1563812 26-9月 -08

13:42 SQL> alter session set nls_date_format='yyyy/mm/dd hh34:mi:ss';

会话已更改。

13:58 SQL> select group#,status,sequence#,first_change#,first_time from v$log
;

GROUP# STATUS            SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ---------------- ---------- ------------- -------------------
        1 CURRENT                  26       1576118 2008/09/26 12:56:37
        2 INACTIVE                 25       1570052 2008/09/26 12:53:48
        3 INACTIVE                 24       1563812 2008/09/26 10:16:24

00 SQL> select *from tt;

未选定行

38 SQL> insert into tt values(1,'a');

已创建 1 行。

43 SQL> insert into tt values(2,'b');

已创建 1 行。

52 SQL> commit;

提交完成。

56 SQL> alter system switch logfile;

系统已更改。

03 SQL> alter system checkpoint;

系统已更改。

10 SQL> select group#,status,sequence#,first_change#,first_time from v$log
;

GROUP# STATUS            SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ---------------- ---------- ------------- -------------------
        1 INACTIVE                 26       1576118 2008/09/26 12:56:37
        2 INACTIVE                 25       1570052 2008/09/26 12:53:48
        3 CURRENT                  27       1580527 2008/09/26 13:15:02

13 SQL> update tt set id=100 ,name='logmnr';

已更新2行。

58 SQL> commit;

提交完成。

00 SQL> alter system switch logfile;

系统已更改。

04 SQL> alter system checkpoint;

系统已更改。

05 SQL> select group#,status,sequence#,first_change#,first_time from v$log
;

GROUP# STATUS            SEQUENCE# FIRST_CHANGE# FIRST_TIME
---------- ---------------- ---------- ------------- -------------------
        1 INACTIVE                 26       1576118 2008/09/26 12:56:37
        2 CURRENT                  28       1580563 2008/09/26 13:16:04
        3 INACTIVE                 27       1580527 2008/09/26 13:15:02

06 SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO02.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO03.LOG
13:32:51 SQL> select sequence#, first_change#,first_time,next_change#,next_time
from v$archived_log where sequence# in (26,27,28)
13:34:08   2  and resetlogs_id=666280390;

SEQUENCE# FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# NEXT_TIME
---------- ------------- ------------------- ------------ -------------------
       26       1576118 2008/09/26 12:56:37      1580527 2008/09/26 13:15:02
       27       1580527 2008/09/26 13:15:02      1580563 2008/09/26 13:16:04

10 SQL> col name format a80
13:35:08 SQL> select name  from v$archived_log where sequence# in (26,27,28)
13:35:16   2  and resetlogs_id=666280390;

NAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC26_666280390_1
E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC27_666280390_1

18 SQL>
13:38:46 SQL> show user
USER 为 "TEST"
13:38:48 SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC26_666280390_1',1);
BEGIN dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVER
Y_FILE_DESTARC26_666280390_1',1); END;

*
第 1 行出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'DBMS_LOGMNR.ADD_LOGFILE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored

31 SQL> connect / as sysdba
已连接。
13:40:57 SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC26_666280390_1',dbms_logmnr.new);

PL/SQL 过程已成功完成。
--dbms_logmnr.new的作用是清除掉之前(add_logfile)加进来的logfile
13:41:06SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC27_666280390_1',dbms_logmnr.new);

PL/SQL 过程已成功完成。

33 SQL> exec dbms_logmnr.remove_logfile('E:ORACLEPRODUCT10.2.0DB_2DAT
ABASEDB_RECOVERY_FILE_DESTARC27_666280390_1');

PL/SQL 过程已成功完成。

37 SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC27_666280390_1',dbms_logmnr.new);

PL/SQL 过程已成功完成。

45 SQL>
13:46:52 SQL> select filename from v$logmnr_logs;

FILENAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC27_666280390_1

58 SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC26_666280390_1',dbms_logmnr.new);

PL/SQL 过程已成功完成。

12 SQL> select filename from v$logmnr_logs;

FILENAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC26_666280390_1

27 SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0DB_2DATABA
SEDB_RECOVERY_FILE_DESTARC27_666280390_1');

PL/SQL 过程已成功完成。
13:47:41 SQL> desc v$logmnr_logs;
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------

LOG_ID                                             NUMBER
FILENAME                                           VARCHAR2(512)
LOW_TIME                                           DATE
HIGH_TIME                                          DATE
DB_ID                                              NUMBER
DB_NAME                                            VARCHAR2(8)
RESET_SCN                                          NUMBER
RESET_SCN_TIME                                     DATE
THREAD_ID                                          NUMBER
THREAD_SQN                                         NUMBER
LOW_SCN                                            NUMBER
NEXT_SCN                                           NUMBER
DICTIONARY_BEGIN                                   VARCHAR2(3)
DICTIONARY_END                                     VARCHAR2(3)
TYPE                                               VARCHAR2(7)
BLOCKSIZE                                          NUMBER
FILESIZE                                           NUMBER
INFO                                               VARCHAR2(32)
STATUS                                             NUMBER

39 SQL> select filename from v$logmnr_logs;

FILENAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC26_666280390_1
E:ORACLEPRODUCT10.2.0DB_2DATABASEDB_RECOVERY_FILE_DESTARC27_666280390_1

41 SQL>
13:51:01 SQL> select log_id,low_scn,low_time,next_scn,high_time from v$logmnr_lo
gs;

LOG_ID    LOW_SCN LOW_TIME              NEXT_SCN HIGH_TIME
---------- ---------- ------------------- ---------- -------------------
       26    1576118 2008/09/26 12:56:37    1580527 2008/09/26 13:15:02
       27    1580527 2008/09/26 13:15:02    1580563 2008/09/26 13:16:04

09 SQL>
13:51:09 SQL> exec dbms_logmnr.start_logmnr(dictfilename=>'E:oracleproduct10.
2.0admintestlogmnrdict.ora',startscn=>1576118,endscn=>1580563);

PL/SQL 过程已成功完成。

42 SQL> select count(*) from v$logmnr_contents;

COUNT(*)
----------
     8648

15 SQL> desc v$logmnr_contents
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------

SCN                                                NUMBER
CSCN                                               NUMBER
TIMESTAMP                                          DATE
COMMIT_TIMESTAMP                                   DATE
THREAD#                                            NUMBER
LOG_ID                                             NUMBER
XIDUSN                                             NUMBER
XIDSLT                                             NUMBER
XIDSQN                                             NUMBER
PXIDUSN                                            NUMBER
PXIDSLT                                            NUMBER
PXIDSQN                                            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(256)
TABLE_NAME                                         VARCHAR2(32)
SEG_TYPE                                           NUMBER
SEG_TYPE_NAME                                      VARCHAR2(32)
TABLE_SPACE                                        VARCHAR2(32)
ROW_ID                                             VARCHAR2(18)
SESSION#                                           NUMBER
SERIAL#                                            NUMBER
USERNAME                                           VARCHAR2(30)
SESSION_INFO                                       VARCHAR2(4000)
TX_NAME                                            VARCHAR2(256)
ROLLBACK                                           NUMBER
OPERATION                                          VARCHAR2(32)
OPERATION_CODE                                     NUMBER
SQL_REDO                                           VARCHAR2(4000)
SQL_UNDO                                           VARCHAR2(4000)
RS_ID                                              VARCHAR2(32)
SEQUENCE#                                          NUMBER
SSN                                                NUMBER
CSF                                                NUMBER
INFO                                               VARCHAR2(32)
STATUS                                             NUMBER
REDO_VALUE                                         NUMBER
UNDO_VALUE                                         NUMBER
SQL_COLUMN_TYPE                                    VARCHAR2(30)
SQL_COLUMN_NAME                                    VARCHAR2(30)
REDO_LENGTH                                        NUMBER
REDO_OFFSET                                        NUMBER
UNDO_LENGTH                                        NUMBER
UNDO_OFFSET                                        NUMBER
DATA_OBJV#                                         NUMBER
SAFE_RESUME_SCN                                    NUMBER
XID                                                RAW(8)
PXID                                               RAW(8)
AUDIT_SESSIONID                                    NUMBER

08:10 SQL> select rbasqn,rbablk,rbabyte from v$logmnr_contents where seg_owne
r='TEST' and seg_name='TT';

RBASQN     RBABLK    RBABYTE
---------- ---------- ----------
       26       7544        400
       26       7546         16
       27         30         16
       27         30        468

08:33 SQL>
14:14:58 SQL> select scn,timestamp , sql_redo from v$logmnr_contents where seg_o
wner='TEST' and seg_name='TT';

SCN TIMESTAMP
---------- -------------------
SQL_REDO
--------------------------------------------------------------------------------
--------------------
  1580518 2008/09/26 13:14:47
insert into "TEST"."TT"("ID","NAME") values ('1','a');

1580520 2008/09/26 13:14:53
insert into "TEST"."TT"("ID","NAME") values ('2','b');

1580558 2008/09/26 13:15:59
update "TEST"."TT" set "ID" = '100', "NAME" = 'logmnr' where "ID" = '1' and "NAM
E" = 'a' and ROWID =
'AAAC+uAACAAAAMPAAA';

SCN TIMESTAMP
---------- -------------------
SQL_REDO
--------------------------------------------------------------------------------
--------------------

1580558 2008/09/26 13:15:59
update "TEST"."TT" set "ID" = '100', "NAME" = 'logmnr' where "ID" = '2' and "NAM
E" = 'b' and ROWID =
'AAAC+uAACAAAAMPAAB';
SQL> select group#,status,sequence# from v$log;

GROUP# STATUS            SEQUENCE#
---------- ---------------- ----------
        1 CURRENT                  29
        2 INACTIVE                 28
        3 INACTIVE                 27

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO02.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO03.LOG

SQL> select * from test.tt;

ID NAME
---------- ----------
        1 a

SQL> CONNECT TEST/TEST
已连接。
SQL> delete from tt;

已删除 1 行。

SQL> commit;

提交完成。

SQL> alter system checkpoint;

系统已更改。

SQL> select group#,status,sequence# from v$log;

GROUP# STATUS            SEQUENCE#
---------- ---------------- ----------
        1 CURRENT                  29
        2 INACTIVE                 28
        3 INACTIVE                 27

SQL> connect /  as sysdba
已连接。
SQL> exec dbms_logmnr.add_logfile('E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.
LOG');

PL/SQL 过程已成功完成。

SQL> select filename from v$logmnr_logs;

FILENAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.LOG

SQL> exec dbms_logmnr.start_logmnr;

PL/SQL 过程已成功完成。

SQL> select count(*) from v$logmnr_contents;

COUNT(*)
----------
      326

SQL> select count(*) from v$logmnr_contents where seg_name like '%tt%';

COUNT(*)
----------
        0

SQL> select count(*) from v$logmnr_contents where seg_name like '%TT%';

COUNT(*)
----------
        0

SQL> select count(*) from v$logmnr_contents where sql_redo like '%delete%'
 2  ;

COUNT(*)
----------
        2
--从redo_sql中看出并没有出现对象tt的名字,而是使用了“"UNKNOWN"."OBJ# 12206"”
SQL> select sql_redo,seg_owner,seg_name from v$logmnr_contents where sql_redo li
ke '%delete%'
 2  ;

SQL_REDO
--------------------------------------------------------------------------------

SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------

delete from "UNKNOWN"."OBJ# 12206" where "COL 1" = HEXTORAW('c102') and "COL 2"
= HEXTORAW('61') and ROWID = 'AAAC+uAACAAAAMQAAA';
UNKNOWN
OBJ# 12206

delete from "UNKNOWN"."OBJ# 8781" where "COL 1" = HEXTORAW('c20216') and "COL 2"

= HEXTORAW('c105') and "COL 3" = HEXTORAW('80') and "COL 4" = HEXTORAW('c102')

SQL_REDO
--------------------------------------------------------------------------------

SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------

and "COL 5" IS NULL and "COL 6" = HEXTORAW('436f6e63757272656e6379') and "COL 7"

IS NULL and "COL 8" = HEXTORAW('c22205') and "COL 9" = HEXTORAW('44617461626173

652054696d65205370656e742057616974696e6720282529') and "COL 10" = HEXTORAW('3537

2e3835363036') and "COL 11" = HEXTORAW('436f6e63757272656e6379') and "COL 12" IS

NULL and "COL 13" IS NULL and "COL 14" = HEXTORAW('786c091a0730380d4ab5c01c3c')

and "COL 15" = HEXTORAW('786c091a0730380d4ab5c01c3c') and "COL 16" IS NULL and
"COL 17" IS NULL and "COL 18" IS NULL and "COL 19" IS NULL and "COL 20" IS NULL

SQL_REDO
--------------------------------------------------------------------------------

SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------

and "COL 21" = HEXTORAW('c106') and "COL 22" IS NULL and "COL 23" = HEXTORAW('22

74657374222e227473696422') and "COL 24" = HEXTORAW('787973') and "COL 25" = HEXT

ORAW('3139322e3136382e302e323532') and "COL 26" = HEXTORAW('74736964') and "COL
27" = HEXTORAW('c102') and "COL 28" IS NULL and "COL 29" IS NULL and "COL 30" =
HEXTORAW('4438313436363034414543302d344141372d413732452d394230393735413130453746

2d30') and "COL 31" IS NULL and "COL 32" = HEXTORAW('c13a563d3a02274c150b') and
ROWID = 'AAACJNAADAAAAplAAC';

SQL_REDO
--------------------------------------------------------------------------------

SEG_OWNER
--------------------------------
SEG_NAME
--------------------------------------------------------------------------------

UNKNOWN
OBJ# 8781

SQL> select object_id, data_object_id from dba_objects where object_name='TT' AN
D OWNER='TEST';

OBJECT_ID DATA_OBJECT_ID
---------- --------------
    12206          12206
--验证下rba:
SQL> select rbasqn,rbablk,rbabyte from v$logmnr_contents where sql_redo like '%d
elete%';

RBASQN     RBABLK    RBABYTE
---------- ---------- ----------
       29        295         16
       29        558        400
SQL> select status,group# from v$log;

STATUS               GROUP#
---------------- ----------
CURRENT                   1
INACTIVE                  2
INACTIVE                  3

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO02.LOG
E:ORACLEPRODUCT10.2.0ORADATATESTREDO03.LOG

SQL> alter system dump logfile 'E:ORACLEPRODUCT10.2.0ORADATATESTREDO01.LOG
';

系统已更改。
--dump logfile trace的rba是:RBA: 0x00001d.00000127.0010
SQL> select to_number('00000127','xxxxxxxx') from dual;

TO_NUMBER('00000127','XXXXXXXX')
--------------------------------
                            295

SQL> select redo_length from v$logmnr_contents where sql_redo like '%delete%';

REDO_LENGTH
-----------
         0
         0

SQL>
dump logfile trace:
--=============================================
REDO RECORD - Thread:1 RBA: 0x00001d.00000127.0010 LEN: 0x0188 VLD: 0x01
SCN: 0x0000.00182edd SUBSCN:  1 09/26/2008 14:45:55
CHANGE #1 TYP:0 CLS:23 AFN:4 DBA:0x01000039 OBJ:4294967295 SCN:0x0000.00182ed2 SEQ:  1 OP:5.2
ktudh redo: slt: 0x0025 sqn: 0x000000c9 flg: 0x0012 siz: 148 fbi: 0
           uba: 0x010000d1.005e.0c    pxid:  0x0000.000.00000000
CHANGE #2 TYP:0 CLS:24 AFN:4 DBA:0x010000d1 OBJ:4294967295 SCN:0x0000.00182ed1 SEQ:  7 OP:5.1
ktudb redo: siz: 148 spc: 6928 flg: 0x0012 seq: 0x005e rec: 0x0c
           xid:  0x0004.025.000000c9  
ktubl redo: slt: 37 rci: 0 opc: 11.1 objn: 12206 objd: 12206 tsn: 5
Undo type:  Regular undo        Begin trans    Last buffer split:  No
Temp Object:  No
Tablespace Undo:  No
            0x00000000  prev ctl uba: 0x010000d1.005e.05
prev ctl max cmt scn:  0x0000.00182b93  prev tx cmt scn:  0x0000.00182b98
txn start scn:  0xffff.ffffffff  logon user: 31  prev brb: 16777278  prev bcl: 0 KDO undo record:
KTB Redo
op: 0x03  ver: 0x01  
op: Z
KDO Op code: IRP row dependencies Disabled
 xtype: XA flags: 0x00000000  bdba: 0x00800310  hdba: 0x0080030b
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0) size/delt: 8
fb: --H-FL-- lb: 0x0  cc: 2
null: --
col  0: [ 2]  c1 02
col  1: [ 1]  61
CHANGE #3 TYP:2 CLS: 1 AFN:2 DBA:0x00800310 OBJ:12206 SCN:0x0000.00182caf SEQ:  1 OP:11.3
KTB Redo
op: 0x11  ver: 0x01  
op: F  xid:  0x0004.025.000000c9    uba: 0x010000d1.005e.0c
Block cleanout record, scn:  0x0000.00182edd ver: 0x01 opt: 0x02, entries follow...
 itli: 1  flg: 2  scn: 0x0000.00182caf
KDO Op code: DRP row dependencies Disabled
 xtype: XA flags: 0x00000000  bdba: 0x00800310  hdba: 0x0080030b
itli: 2  ispac: 0  maxfr: 4858
tabn: 0 slot: 0(0x0)
--===================================================

以上是“sql中如何使用dbms_logmnr”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sql中如何使用dbms_logmnr

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql中如何使用dbms_logmnr

这篇文章主要介绍sql中如何使用dbms_logmnr,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!讲到不完全恢复(找回drop table)时,经常需要确定drop table的确切时间,所以经常需要用到dbms_
2023-06-04

sql中@SelectProvider如何使用

sql中@SelectProvider如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。sql_@SelectProvider及使用注意@Documented@Retent
2023-06-20

sql中joinmchno如何使用

joinmchn0 是一种 sql 语句,用于通过公用列关联不同表中的数据。它的使用步骤为:确定要连接的两个表。识别公用列。编写 joinmchn0 语句,指定要连接的表和公用列。执行查询以检索关联数据。SQL 中 JOINMCHN0 的用
sql中joinmchno如何使用
2024-05-02

sql中如何使用变量

sql 变量用于存储临时数据,通过 declare 语句声明,set 语句赋值,并使用 @ 字符引用。变量的作用域仅限于其声明的块或过程,值在每次使用时重新计算。SQL 中使用变量SQL 变量用于存储查询或过程中的临时数据。它们对于存储中
sql中如何使用变量
2024-05-02

java中如何使用sql语句

JDBC使用SQL语句JDBC是Java与数据库交互的API。它允许使用SQL语句查询和操作数据库。建立连接:加载JDBC驱动程序获取数据库连接(URL、用户名、密码)执行查询:创建Statement对象执行SQL查询并获取结果集遍历结果集并处理数据执行更新:执行SQL更新语句(插入、更新、删除)获取更新计数常用SQL语句:SELECT:获取数据INSERT:插入数据UPDATE:更新数据DELETE:删除数据最佳实践:使用PreparedStatement防范SQL注入关闭连接、Statement和Re
java中如何使用sql语句
2024-04-11

java中如何使用sql语句

在Java中使用SQL语句可以通过以下步骤:1. 导入JDBC相关的包,如`java.sql`和`javax.sql`。2. 加载数据库驱动程序。根据使用的数据库类型,加载相应的驱动程序。例如,对于MySQL数据库,可以使用`Class.f
2023-09-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录