dml操作日志记录在哪 oracle_oracle 查看dml日志 - CSDN
精华内容
参与话题
  • 可以通过flashback_transaction_qurey视图查询 eg: SQL> desc flashback_transaction_query Name ...
    可以通过flashback_transaction_qurey视图查询

    eg:

    SQL> desc flashback_transaction_query
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     XID                                                RAW(8)
     START_SCN                                          NUMBER
     START_TIMESTAMP                                    DATE
     COMMIT_SCN                                         NUMBER
     COMMIT_TIMESTAMP                                   DATE
     LOGON_USER                                         VARCHAR2(30)
     UNDO_CHANGE#                                       NUMBER
     OPERATION                                          VARCHAR2(32)
     TABLE_NAME                                         VARCHAR2(256)
     TABLE_OWNER                                        VARCHAR2(32)
     ROW_ID                                             VARCHAR2(19)
     UNDO_SQL                                           VARCHAR2(4000)

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29802484/viewspace-1390745/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/29802484/viewspace-1390745/

    展开全文
  • [img]... 对与DML操作Oracle在内部按如下顺序执行: 1,相应事务分配回滚段(undo segment). 2,分配回滚段后,回滚段头上创建事务表slot(transaction table...
    [img]http://dl2.iteye.com/upload/attachment/0096/3567/3253c7fc-ac96-3686-a078-a1bae74bd954.jpg[/img]
    对与DML操作Oracle在内部按如下顺序执行:
    1,相应事务分配回滚段(undo segment).
    2,分配回滚段后,在回滚段头上创建事务表slot(transaction table slot).
    3.创建事务表后会生出TXID(TransactionID),再将TXID分配给当前事务。这个值指向分给事务的回滚段头上存在的事务表的准确位置。
    4.事务对象的数据块载入到高速缓冲区,在块头的ITL(Intersted transaction list)上登记事务条目。
    如果itl上没有所需空间,就会发生等待enq:TX-allocate ITL entry。
    5.将需要修改的块的修改信息存储到PGA,存储的方式是change vector,之后进程将PGA中的change vector以redo record复制到重做缓冲区。
    6.将之前映像信息记录到撤销块,继而修改数据块,被修改的数据块变为脏状态。而且在高速缓冲区中创建以修改的数据块的CR块。
    7.执行commit后给事务分配SCN,提交信息存储在重做缓冲区。
    8.回滚段头的事务表中存储已成功提交的信息,结束包括TX锁在内的所有资源占有。
    9.重做缓冲区的内容记录在重做日志文件上。
    下面通过转储来探究一下这个过程:

    会话1
    SQL> update emp set sal=sal+100 where rownum=1;

    1 rows updated.
    获得已执行update行位置
    SQL> select rowid,dbms_rowid.rowid_relative_fno(rowid) as fno,
    2 dbms_rowid.rowid_block_number(rowid) as blkno
    3 from emp where rownum=1;

    ROWID FNO BLKNO
    ------------------ ---------- ----------
    AAAQ+LAAEAAAAAfAAA 4 31

    file number是4,block number是31,dump 这个block。

    SQL> alter system dump datafile 4 block 31;

    System altered.
    SQL> l
    1 SELECT a.VALUE
    2 || b.symbol
    3 || c.instance_name
    4 || '_ora_'
    5 || d.spid
    6 || '.trc' trace_file
    7 FROM (SELECT VALUE
    8 FROM v$parameter
    9 WHERE NAME = 'user_dump_dest') a,
    10 (SELECT SUBSTR (VALUE, -6, 1) symbol
    11 FROM v$parameter
    12 WHERE NAME = 'user_dump_dest') b,
    13 (SELECT instance_name
    14 FROM v$instance) c,
    15 (SELECT spid
    16 FROM v$session s, v$process p, v$mystat m
    17* WHERE s.paddr = p.addr AND s.SID = m.SID AND m.statistic# = 0) d
    SQL> /

    TRACE_FILE
    --------------------------------------------------------------------
    /opt/app/oracle/diag/rdbms/liqian/liqian/trace/liqian_ora_4118.trc
    展开全文
  • oracle实现对表dml错误记录日志

    千次阅读 2013-12-05 11:12:24
    DBMS_ERRLOG提供了一个存储过程CREATE_ERROR_LOG,这个存储过程创建一个错误日志表,当DML出错时,操作不会终止和回滚,而是将相关的错误写到错误日志表中。  CREATE_ERROR_LOG不支持一些数据类型:LONG, CLOB,...
       DBMS_ERRLOG提供了一个存储过程CREATE_ERROR_LOG,这个存储过程创建一个错误日志表,当DML出错时,操作不会终止和回滚,而是将相关的错误写到错误日志表中。
       CREATE_ERROR_LOG不支持一些数据类型:LONG, CLOB,BLOB, BFILE, and ADT。
       
        简单示例:

    SQL> create unique index ind_test00_a on test00(a);

    Index created.

    SQL> EXEC DBMS_ERRLOG.CREATE_ERROR_LOG('TEST00','TEST00_ERROR_LOG');

    PL/SQL procedure successfully completed.

    SQL> desc test00
     Name                                                                    Null?   Type
     -------------------------------------------------------------------------------- -------------------------------------------------
     A                                                                                NUMBER(10)
     B                                                                                NUMBER(10)

    SQL> desc test00_error_log
     Name        
    展开全文
  • 一图搞定 看图说话 老师都这么说:

    一图搞定

    看图说话 老师都这么说:


    展开全文
  • Oracle事务的隐式提交

    千次阅读 2013-11-13 14:16:41
    又名自动提交,即无需显示执行commit语句,session中的操作被自动提交到数据库的过程。 隐式提交的方式 1、正常执行完ddl语句。包括create,alter,drop,truncate,rename。 2、正常执行完dcl语句。包括grant,...
  • ORACLE清理归档日志

    万次阅读 2017-02-04 20:18:26
    oracle归档日志满了后,将无法正常登入oracle,需要扩充空间或删除一部分归档日志。 一.首先删除归档日志物理文件,归档日志一般都是位于archive目录下。建议操作前先对数据库进行备份,删除时至少保留最近几天的...
  • 如何加速Oracle大批量数据处理

    万次阅读 2010-01-12 14:57:00
    如何加速Oracle大批量数据处理一、 提高DML操作的办法:简单说来:1、暂停索引,更新后恢复.避免更新的过程中涉及到索引的重建.2、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表...
  • Oracle DML语句(insert,update,delete) 回滚开销估算一、Oracle DML SQL回滚逻辑简介 数据库事务由1个或多个DML(insert,update,delete) SQL组成,我们知道Oracle数据库进行DML操作需要使用UND
  • 触发器里面before和after的区别

    万次阅读 2017-10-09 22:56:58
    关键字before和after用于标识触发时间,顾名思义,before代表触发器里面的命令在DML修改数据之前执行,after代表触发器里面的命令在DML修改数据之后执行。  读者可以结合应用场景选择使用before或者after。  下面...
  • Sql语句中的DDL、DML、DCL的介绍

    万次阅读 2016-12-10 16:09:23
    一、DDL DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1.CREATE - to create objects in the database 创建 ...
  • Oracle中的nologging

    万次阅读 2010-04-12 10:19:00
    Oracle数据库有联机重做日志,这个日志记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就...
  • oracle 查询表中数据行(row)上最后的DML时间  2011-07-27 13:01:53| 分类: ORACLE 数据库杂|字号 订阅 oracle 查询表中数据行(row)上最后的DML时间 这介绍oracle 10G开始提供的一个伪列ORA_ROWSCN...
  • oracle中delete、truncate、drop的区别

    万次阅读 多人点赞 2012-06-22 15:52:33
    1、delete是DML,执行delete操作时,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中以便进行回滚(rollback)和重做操作,但要注意表空间要足够大,需要手动提交(commit)操作才能生效,...
  • 目前所接触的Oracle 的灾备以及同步手段主要有ADG,OGG,DSG,高级复制,流复制以及自主开发的基于logmnr的数据同步软件,各有优劣。各自评价如下: 1. ADG,最常用的同城,异地灾备解决方案,物理级备份,备机可写...
  • 1、数据读写流程;2、数据读写流程深入
  • ORACLE触发器(trigger)的使用

    万次阅读 多人点赞 2018-07-03 15:10:16
    1、触发器说明触发器是一种事件发生时隐式地自动执行的PL/SQL块,不能接受参数,不能被显式调用2、触发器语法create [or replace] trigger trigger_name {before | after | instead of} trigger_event on {table_...
  • DDL、DML和DCL的区别与理解

    千次阅读 2018-05-31 11:39:58
    总体解释:DML(data manipulation language):它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language):DDL比DML要多,主要的命令...
  • oracle的commit详解

    万次阅读 多人点赞 2013-08-02 17:41:39
    commit数据库编程的时候很常用,当你执行DML操作时,数据库并不会立刻修改表中数据,这时你需要commit,数据库中的数据就立刻修改了,如果没有commit之前,就算你把整个表中数据都删了,如果rollback的话,数据...
  • 1. 触发器的分类 DML触发器 DDL触发器 系统触发器 替代触发器 2. DML触发器
  • sql语句分为三类(DML,DDL,DCL)-介绍

    万次阅读 2015-04-16 15:46:48
    本文知识来源自:《Oracle专家高级编程》 分享作者:Vashon 时间:20150415 DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 1....
1 2 3 4 5 ... 20
收藏数 20,086
精华内容 8,034
关键字:

dml操作日志记录在哪 oracle