关闭
侧边栏

Oracle 10g 闪回查询特性的增强

Posted by dbtan on 一月 4th, 2010

Oracle 10g 闪回查询特性的增强:

Oracle 9i提供了闪回特性增强,为数据恢复带来了极大的方便,但是Oracle 9i的闪回查询只能提供某个时间点的数据视图,并不能告诉用户这样的数据经过了几个事务、怎样的修改(UPDATE、INSERT、DELETE等),而这些信息在回滚段中是存在的,在Oracle 10g中,Oracle进一步加强了闪回查询的特性,提供了以下两种闪回查询:
·闪回版本查询(Flashback Versions Query);
·闪回事务查询(Flashback Transaction Query)。

闪回版本查询允许使用一个新的VERSIONS子句查询两个时间点或者SCN之间的数据版本。这些版本可以按照事务进行区分,闪回版本
... ...
<阅读全文>

使用ERRORSTATCK进行错误跟踪

Posted by dbtan on 十二月 29th, 2009

使用ERRORSTATCK进行错误跟踪:

ERRORSTACK是Oracle提供的接口,用于诊断Oracle的错误信息。诊断事件可以在Session级设置,也可以在系统级设置,通常如果要诊断全局错误,最好在系统级设置。设置了ERRORSTACK事件之后,Oracle会将出错时的信息记入跟踪文件中,然后再出现错误时就可以通过跟踪文件进行错误诊断和排查了。

继续上篇日志的测试,尝试通过ERRORSTACK事件来跟踪ORA-01555错误:

sys@TQGZS> alter system set events '1555 trace name ERRORSTACK level 4';
System altered.
scott@
... ...
<阅读全文>

Oracle 9i闪回查询的新特性

Posted by dbtan on 十二月 29th, 2009

Oracle 9i闪回查询的新特性:

从Oracle 9i开始,Oracle开始提供闪回查询特性(flashback query),允许将回滚段中的数据进行闪回。通过这个例子来看一下这个从Oracle 9i开始提供的新特性。

先查询一下当前数据库的SCN:

sys@TQGZS> select dbms_flashback.get_system_change_number scn from dual;
       SCN
----------
   6369465

在SCOTT用户下更新雇员号为7698,7782,7788的工资为4000:

scott@TQGZS> update emp set sal=4000 where empno in (7698,
... ...
<阅读全文>

回滚机制的深入研究

Posted by dbtan on 十二月 28th, 2009

回滚机制的深入研究:

如果大家有兴趣深入了解一下回滚段的机制,那么请跟随我将前面的例子进一步深化。

1. 从DML更新事务开始:
重新来看这个更新语句:

sys@TQGZS11G> conn scott/tiger
Connected.
scott@TQGZS11G> select * from emp;
     EMPNO ENAME           JOB                    MGR HIREDATE               SAL       COMM     DEPTNO
---------- --------------- --------------- ---------- --------------- ---------- ---------- ----------
      7369 SMITH           CLERK                 7902 17-DEC-80              800                    20
      7499 ALLEN           SALESMAN              7698 20-FEB-81             1600        300         30
      7521 WARD            SALESMAN              7698 22-FEB-81             1250        500         30
      7566 JONES           MANAGER               7839 02-APR-81             2975                    20
      7654 MARTIN          SALESMAN              7698 28-SEP-81             1250       1400         30
      7698 BLAKE           MANAGER               7839 01-MAY-81             2850                    30
     7782 CLARK           MANAGER               7839 09-JUN-81             2450                    10
      7788 SCOTT           ANALYST               7566 19-APR-87             3000                    20
      7839 KING            PRESIDENT                  17-NOV-81             5000                    10
      7844 TURNER          SALESMAN              7698 08-SEP-81             1500          0         30
      7876 ADAMS           CLERK                 7788 23-MAY-87             1100                    20
      7900 JAMES           CLERK                 7698 03-DEC-81              950                    30
      7902 FORD            ANALYST               7566 03-DEC-81             3000                    20
      7934 MILLER          CLERK                 7782 23-JAN-82             1300                    10
14 rows selected.
scott@TQGZS11G> update emp set sal=4000 where empno=7788;
1 row updated.

先不提交这个事务,在另外窗口新口Session,使用SYS用户查询相关信息,进行进一步分析研究。

2.获得事务信息:
从事务表中可以获得关于这个事务的信息,该事务位于6号回滚段(XIDUSN),在6号回滚段上,该事务位于第0号事务槽(XIDSLOT)

sys@TQGZS11G> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction;
    XIDUSN    XIDSLOT     XIDSQN     UBABLK     UBAFIL     UBAREC
---------- ---------- ---------- ---------- ---------- ----------
         6          0        898      20650          3         23

V$ROLLSTAT视图中也可以获得事务信息,XACTS字段代表的是活动事务的数量,同样看到该事务位于6号回滚段:

sys@TQGZS11G> select usn,writes,rssize,xacts,hwmsize,shrinks,wraps from v$rollstat;
       USN     WRITES     RSSIZE      XACTS    HWMSIZE    SHRINKS      WRAPS
---------- ---------- ---------- ---------- ---------- ---------- ----------
         0       5408     385024          0     385024          0          0
         1      35358   52617216          0   52617216          0          0
         2      59510    2285568          0    2285568          0          1
         3      26232   61530112          0   61530112          0          0
         4      46336    2220032          0    2220032          0          0
         5      27252   38723584          0   38723584          0          0
         6      23784   31580160          1   31580160          0          0
         7      26116    3268608          0    3268608          0          0
         8      29098   40689664          0   40689664          0          0
         9      27214    1236992          0    1236992          0          0
        10      31534    2285568          0    2285568          0          0
11 rows selected.

阅读全文 »

Oracle 11g UNDO表空间备份增强

Posted by dbtan on 十二月 28th, 2009

Oracle 11g UNDO表空间备份增强:

前面提到,由于UNDO表空间在恢复时不可缺少,所以在进行备份时必须备份该表空间,但是一旦事务提交,修改被确认,则该事务的前镜像被标记为INACTIVE,其中的信息在恢复时也就不会被用到,如果在备份时能够跳过这些数据,则备份UNDO表空间的效率就可以大大提高。

在Oracle Database 11g中,Oracle引入了一个新的特性RMAN UNDO备份优化。在RMAN备份UNDO表空间时,提交事务的UNDO信息将不备份,这个特性随RMAN强制启用。在测试中,一个395MB的UNDO表空间备份文件的大小仅为10.06M:

sys@TQGZS11G> select file#,name,ceil(bytes/1024/1024) MB,status from v$datafile
... ...
<阅读全文>


Copyright © 2009 - 2018 https://www.dbtan.com. All rights reserved.    京ICP备13006977号-1