Heim > Datenbank > MySQL-Tutorial > Hauptteil

Oracle undo 镜像数据探究

WBOY
Freigeben: 2016-06-07 17:31:36
Original
853 Leute haben es durchsucht

undo是为了保证一致性读的,也就是说你在对更改的数据但是没有提交,那么其他session是无法查看到你更改的内容的,如果对方 进行

我们都知道,undo是为了保证一致性读的,也就是说你在对更改的数据但是没有提交,那么其他session是无法查看到你更改的内容的,如果对方 进行读取数据,依然是之前的数据,undo就是保存了数据的前镜像。看完我写的这篇文章之后,你就知道undo是怎么保存前镜像的以及它的内部机 制是什么。现在开始挖掘undo是怎么保存前镜像的。

推荐阅读:

[Oracle] 在没有备份的情况下undo损坏怎么办?

UNDO表空间失败的处理方法

undo表空间故障和ORA-01548处理

RAC下丢失undo表空间的恢复

UNDO表空间备份恢复

 1)首先更新一条数据,但是不进行commit如下:
SQL> col name for a50     
SQL> select obj#,name from t where rownum

      OBJ# NAME
---------- --------------------------------------------------
        46 I_USER1
        28 Rhys1
        15 RHYS20
        29 RHYS3

SQL> update t set where obj#=46;

1 row updated.

SQL> update t set where obj#=28;

1 row updated.

SQL> update t set where obj#=15;

1 row updated.

SQL> update t set where obj#=29;

1 row updated.

SQL> select xidusn,xidslot,ubafil,ubablk from v$transaction;

    XIDUSN    XIDSLOT    UBAFIL    UBABLK
---------- ---------- ---------- ----------
        12          7          8      1493

SQL> select * from v$rollname where usn=12;

      USN NAME
---------- ------------------------------
        12 _SYSSMU12_584745277$

SQL> select usn,status,curext from v$rollstat;

      USN STATUS              CUREXT
---------- --------------- ----------
        0 ONLINE                  5
        11 ONLINE                  4
        12 ONLINE                  3
        13 ONLINE                  2
        14 ONLINE                  3
        15 ONLINE                  2
        16 ONLINE                  2
        17 ONLINE                  14
        18 ONLINE                  4
        19 ONLINE                  3
        20 ONLINE                  2

11 rows selected.

SQL> select usn,status,curext,xacts from v$rollstat where xacts>0;

      USN STATUS              CUREXT      XACTS
---------- --------------- ---------- ----------
        12 ONLINE                  3          1

SQL> alter system dump undo header '_SYSSMU12_584745277$';

System altered.

SQL> alter system dump datafile 8 block 1493;

System altered.

SQL> col name for a80
SQL> col inst_id for 9999 
SQL> col value for a80
SQL> select * from v$diag_info;

INST_ID NAME                                                                            VALUE
------- -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
      1 Diag Enabled                                                                    TRUE
      1 ADR Base                                                                        /opt/app/oracle
      1 ADR Home                                                                        /opt/app/oracle/diag/rdbms/rhys/RHYS
      1 Diag Trace                                                                      /opt/app/oracle/diag/rdbms/rhys/RHYS/trace
      1 Diag Alert                                                                      /opt/app/oracle/diag/rdbms/rhys/RHYS/alert
      1 Diag Incident                                                                    /opt/app/oracle/diag/rdbms/rhys/RHYS/incident
      1 Diag Cdump                                                                      /opt/app/oracle/diag/rdbms/rhys/RHYS/cdump
      1 Health Monitor                                                                  /opt/app/oracle/diag/rdbms/rhys/RHYS/hm
      1 Default Trace File                                                              /opt/app/oracle/diag/rdbms/rhys/RHYS/trace/RHYS_ora_5284.trc
      1 Active Problem Count                                                            1
      1 Active Incident Count                                                            1

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage