Oracle11g新特性:RMAN压缩备份

Oracle11g新特性:RMAN压缩备份

Oracle10g的rman已经可以执行压缩备份,采用的压缩算法是bzip2。Oracle11g引入了一种新的压缩算法zlib。zlib的压缩率不如bzip2,但是压缩速度则要快不少。本文通过一个实验来对这两种压缩算法进行比较。

[oracle@localhost oracle]$ rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Thu Sep 6 15:47:43 2007

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: NING (DBID=1218842970)

[继续阅读全文]

Oracle11g新特性:server result cache续二

Server Result Cache应该是Oracle11g新特性中比较令人期待的,很多人都在研究这个特性,比如eygleyangtingkun都为这个特性写了一系列的文章。

Server Result Cache实际上是两个特性,一个是SQL Result Cache,一个是PL/SQL Function Result Cache。在上一篇文章中简单展示了SQL Result Cache的特性,这里打算说说PL/SQL Function Result Cache。

要在PL/SQL Function中启用result cache特性,只需要在创建function时添加RESULT_CACHE子句即可。另外还有一个RELIES_ON子句,可以指定该function依赖的对象,如果该对象改变则会导致该function缓存结果失效。

创建一个测试函数

NING@11g>create or replace function f_result_cache
 
2   return int
 
3   result_cache
 
4  as
 
5   l_count int;
 
6  begin
 
7    select count(*) into l_count
 
8    from all_objects;
 
9    -- pause for 5 second
 
10    dbms_lock.sleep(5);
 
11    return l_count;
 
12  end f_result_cache;
 
13  /
 
Function created.

[继续阅读全文]

Oracle11g新特性:Flashback Data Archive续

上一篇文章简单的介绍了这个新特性,但是没有做太多的试验来对一些说法进行验证,piner也写了一篇来进一步说明这个新引入的flashback方式。本文准备补充一些相关的其他内容。

一.后台进程

Oracle11g为Flashback data archive特性专门引入了一个新的后台进程FBDA,用于将追踪表(traced table,也就是将指定使用flashback data archive的table)的历史变化数据转存到闪回归档区。

NING@11g>select name,description from v$bgprocess where name='FBDA';
 
NAME                           DESCRIPTION
----------------------------
-- ----------------------------------------
FBDA                           Flashback Data Archiver Process

[继续阅读全文]

Oracle11g新特性:Flashback Data Archive

Oracle9i引入flashback query,使得数据库第一次可以查询到之前的数据,而不再需要利用log和备份进行时间点恢复。Oracle10g更是引入flashback version query,flashback transaction query,flashback database,flashback table,flashback drop等特性,并且大大简化了flashback query的使用。Oracle11g则为flashback家族又带来一个新的成员:flashback data archive

初看起来,flashback data archive和flashback query没有太大的不同,都是通过as of能够查询之前的数据,但是他们的实现机制是不一样的。Flashback query是通过直接从undo中读取信息来构造旧数据,这样就有一个限制,就是undo中的信息不能被覆盖。而undo段是循环使用的,只要事务提交,之前的undo信息就可能被覆盖,虽然可以通过undo_retention等参数来延长undo的存活期,但这个参数会影响所有的事务,设置过大,可能导致undo tablespace快速膨胀。

Falshback data archive特性则通过将变化数据另外存储到创建的flashback archive中,以和undo区别开来,这样就可以通过为flashback archive单独设置存活策略,使得可以闪回到指定时间之前的旧数据而不影响undo策略。并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,这样可以极大的减少空间需求。

flashback_data_archive

[继续阅读全文]