如何获取oracle中的最新更新记录?
before
table - test:
a b timestamp
1 5 2018/12/13 10:13:18
3 7 2018/12/13 10:13:18
4 8 2018/12/13 10:13:18
update query done
after:
a b timestamp
1 5 2018/12/13 10:13:18
3 7 2018/12/13 10:13:18
4 5 2018/12/13 10:13:18
已使用更新查询更改了记录,而且所有数据的时间戳具有相同的日期。如何选择最新的更新记录 ? 使用Rowid和时间戳不起作用。 预先感谢。
答案 0 :(得分:0)
在搜索期间是否有存档日志。您必须使用实用程序LogMiner。 示例1。
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39306_769799469.dbf', OPTIONS => DBMS_LOGMNR.NEW);
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39307_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile);
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39308_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile);
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39309_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile);
EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
SELECT
to_char(timestamp,'DD-MM-YYYY HH24:MI:SS'),
operation,username,
os_username,
machine_name,
session_info,
sql_redo
FROM v$logmnr_contents
where
seg_owner='MANAGER' and seg_name='TEST2'
14-12-2017 09:40:20 DDL MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN create table test2 (p1 number);
14-12-2017 09:40:47 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c117'));
14-12-2017 09:40:53 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c119'));
14-12-2017 09:40:57 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c137'));
14-12-2017 09:41:01 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c20219'));
14-12-2017 09:41:45 DDL MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN alter table test2 add (p2 varchar2(200));
14-12-2017 09:42:12 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c20219'),HEXTORAW('746573743220746573743120'));
14-12-2017 09:42:24 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:46:24 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:46:25 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:46:26 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:46:27 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:46:28 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
14-12-2017 09:54:37 DDL MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN comment on table test2 is 'test';
14-12-2017 10:16:36 DDL MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN alter table test2 add (p3 varchar2(100));
14-12-2017 10:17:07 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("P1","P2","P3") values ('125','test6','test4 ');
14-12-2017 10:17:08 INSERT MANAGER DeminDV KRW\IVC-PTK-DEMIN login_username=MANAGER client_info= OS_username=DeminDV Machine_name=KRW\IVC-PTK-DEMIN insert into "MANAGER"."TEST2"("P1","P2","P3") values ('125','test6','test4 ');
'
示例2。使用闪回功能
update manager.test2 set p2='test10' where p1=125;
commit;
SELECT versions_xid XID, versions_startscn START_SCN,
versions_endscn END_SCN, versions_operation OPERATION,
p1, p2, p3 FROM manager.test2
VERSIONS BETWEEN SCN MINVALUE AND MAXVALUE;
XID START_SCN END_SCN OPERATION P1 P2 P3
---------------------- ------------------------ ---------------------- --------------- ---------- -------- ------
08000E000DD70900 1374388524564 U 125 test10 test4
08000E000DD70900 1374388524564 U 125 test10 test4
08000E000DD70900 1374388524564 U 125 test10
08000E000DD70900 1374388524564 U 125 test10
1374388524564 125 test4 test4
1374388524564 125 test4 test4
1374388524564 125 test6 test4
1374388524564 125 test6 test4
SELECT xid, start_scn , commit_scn COMMIT,operation OP, logon_user ,undo_sql FROM flashback_transaction_query
WHERE xid = HEXTORAW('08000E000DD70900');
XID START_SCN COMMIT OP LOGON_USER UNDO_SQL
-------------------------------- -------------------------------- -------------------------------------- --------------------------------- ------------------------------------
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test6' where ROWID = 'AAA2wgAAbAAAAEsAAM';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test6' where ROWID = 'AAA2wgAAbAAAAEsAAL';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAK';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAJ';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAI';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAH';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAG';
08000E000DD70900 1374388524537 1374388524564 UPDATE MANAGER update "MANAGER"."TEST2" set "P2" = 'test4 test4 ' where ROWID = 'AAA2wgAAbAAAAEsAAF';
08000E000DD70900 1374388524537 1374388524564 BEGIN MANAGER