oralce redo

环境:(不新建表空间,不新建用户都可以,这个不是关键

CREATE TABLESPACE ORCLDBF DATAFILE 'D:/ORA/ORCL/ORCLDBF.DBF' SIZE 16M AUTOEXTEND ON;
CREATE USER ORCLDBF IDENTIFIED BY 1 DEFAULT TABLESPACE ORCLDBF;
GRANT DBA TO ORCLDBF;
CONN ORCLDBF/1
CREATE TABLE T_ORCLDBF
(
  ITEMID      NUMBER(9) NOT NULL,
  ELEMENTCODE VARCHAR2(30) NOT NULL,
  CODE        VARCHAR2(20) NOT NULL,
  NAME        VARCHAR2(200) NOT NULL,
  STATUS      NUMBER(9) NOT NULL,
  STARTDATE   DATE,
  ENDDATE     DATE,
  REMARK      VARCHAR2(200)
);

insert into T_ORCLDBF (ITEMID, ELEMENTCODE, CODE, NAME, STATUS, STARTDATE, ENDDATE, REMARK)
values (210439, 'SUMROWTYPE', '1', '模板编码', 2, to_date('14-12-2010 20:40:32', 'dd-mm-yyyy hh24:mi:ss'), to_date('29-04-1999', 'dd-mm-yyyy'), '原始');

更新

UPDATE ORCLDBF.T_ORCLDBF SET REMARK='新值' WHERE ITEMID=210439;

COMMIT;

--Specify CHECKPOINT to explicitly
--force Oracle Database to perform
--a checkpoint, ensuring that all
--changes made by committed transactions
--are written to datafiles on disk.
ALTER SYSTEM CHECKPOINT;
--The FLUSH BUFFER_CACHE clause lets
--you clear all data from the buffer
--cache in the system global area (SGA).
ALTER SYSTEM FLUSH BUFFER_CACHE;

dump出redo

确定当前log,因为默认有3个redo.log

SELECT MEMBER
  FROM V$LOGFILE
 WHERE GROUP# = (select GROUP# from v$log where STATUS = 'CURRENT')

dump trace

SQL> ORADEBUG SETMYPID
已处理的语句
SQL> ORADEBUG TRACEFILE_NAME
D:\APP\QAZ\diag\rdbms\opt\opt\trace\opt_ora_6952.trc
SQL> ALTER SYSTEM DUMP LOGFILE 'D:\APP\QAZ\ORADATA\OPT\REDO01.LOG'

查看trace 720行

SQL> SELECT DUMP('新值',16),DUMP('原始',16) FROM DUAL;

DUMP('新值',16)           DUMP('原始',16)
------------------------- -------------------------
Typ=96 Len=4: d0,c2,d6,b5 Typ=96 Len=4: d4,ad,ca,bc

搜索d0 c2 d6 b5或者d4 ad ca bc

REDO RECORD - Thread:1 RBA: 0x000040.00000014.0010 LEN: 0x025c VLD: 0x0d
SCN: 0x0000.001859e3 SUBSCN:  1 04/05/2017 11:13:58
(LWN RBA: 0x000040.00000014.0010 LEN: 0002 NST: 0001 SCN: 0x0000.001859e2)
CHANGE #1 TYP:2 CLS:1 AFN:6 DBA:0x01800085 OBJ:89830 SCN:0x0000.0018598a SEQ:2 OP:11.19 ENC:0 RBL:0
KTB Redo
op: 0x11  ver: 0x01 
compat bit: 4 (post-11) padding: 0
op: F  xid:  0x000a.00e.00000661    uba: 0x00c00502.00e6.33
Block cleanout record, scn:  0x0000.001859e1 ver: 0x01 opt: 0x02, entries follow...
  itli: 1  flg: 2  scn: 0x0000.0018598a
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 2 ckix: 13
ncol: 8 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01800085  hdba: 0x01800082
itli: 2  ispac: 0  maxfr: 4858
vect = 60
col  7: [ 4]  d0 c2 d6 b5
CHANGE #2 TYP:0 CLS:35 AFN:3 DBA:0x00c00110 OBJ:4294967295 SCN:0x0000.001859cc SEQ:2 OP:5.2 ENC:0 RBL:0
ktudh redo: slt: 0x000e sqn: 0x00000661 flg: 0x0012 siz: 188 fbi: 0
            uba: 0x00c00502.00e6.33    pxid:  0x0000.000.00000000
CHANGE #3 TYP:0 CLS:35 AFN:3 DBA:0x00c00110 OBJ:4294967295 SCN:0x0000.001859e3 SEQ:1 OP:5.4 ENC:0 RBL:0
ktucm redo: slt: 0x000e sqn: 0x00000661 srt: 0 sta: 9 flg: 0x2 ktucf redo: uba: 0x00c00502.00e6.33 ext: 2 spc: 1356 fbi: 0
CHANGE #4 TYP:0 CLS:36 AFN:3 DBA:0x00c00502 OBJ:4294967295 SCN:0x0000.001859cc SEQ:2 OP:5.1 ENC:0 RBL:0
ktudb redo: siz: 188 spc: 1546 flg: 0x0012 seq: 0x00e6 rec: 0x33
            xid:  0x000a.00e.00000661 
ktubl redo: slt: 14 rci: 0 opc: 11.1 [objn: 89830 objd: 89830 tsn: 7]
Undo type:  Regular undo        Begin trans    Last buffer split:  No
Temp Object:  No
Tablespace Undo:  No
             0x00000000  prev ctl uba: 0x00c00502.00e6.31
prev ctl max cmt scn:  0x0000.001855ee  prev tx cmt scn:  0x0000.001855f9
txn start scn:  0x0000.00000000  logon user: 0  prev brb: 12584192  prev bcl: 0 BuExt idx: 0 flg2: 0
KDO undo record:
KTB Redo
op: 0x04  ver: 0x01 
compat bit: 4 (post-11) padding: 0
op: L  itl: xid:  0x0006.002.00000679 uba: 0x00c016c4.0144.14
                      flg: C---    lkc:  0     scn: 0x0000.00185831
Array Update of 1 rows:
tabn: 0 slot: 0(0x0) flag: 0x2c lock: 0 ckix: 13
ncol: 8 nnew: 1 size: 0
KDO Op code:  21 row dependencies Disabled
  xtype: XAxtype KDO_KDOM2 flags: 0x00000080  bdba: 0x01800085  hdba: 0x01800082
itli: 2  ispac: 0  maxfr: 4858
vect = 60
col  7: [ 4]  d4 ad ca bc


obj89830:select * from dba_objects where object_id=89830;

这个是表T_ORCLDBF


SET SERVEROUTPUT ON;
DECLARE
  REMARK_ORI VARCHAR2(200);
  REMARK_NOW VARCHAR2(200);
BEGIN
  DBMS_STATS.CONVERT_RAW_VALUE(REPLACE('d4 ad ca bc',' '),REMARK_ORI);
  DBMS_STATS.CONVERT_RAW_VALUE(REPLACE('d0 c2 d6 b5',' '),REMARK_NOW);
  DBMS_OUTPUT.PUT_LINE('REMARK_NOW='||REMARK_ORI);
  DBMS_OUTPUT.PUT_LINE('REMARK_NOW='||REMARK_NOW);
END;

SQL> /
REMARK_NOW=原始
REMARK_NOW=新值

可以看到redolog里记录了remark更新前和更新后的值

完整trace文件

http://download.csdn.net/detail/bjchangxiao/9803972




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值