Oracle11g Data Guard Redo Tranport Services安全性增强

Oracle11g Data Guard Redo Tranport Services安全性增强

Oracle11g的Data Guard相对Oracle10g来说有不少改进,最引人注目的自然是physical standby可以在恢复的同时读取数据,这个被Oracle称为Active Data Guard的选件是需要单独购买license的。另外10g已经有的可以暂时将physical standby打开为读写模式的特性,在11g进行了加强,使得在读写模式的同时可以继续接收primary传过来的日志,并且换了个新的名字,叫做snapshot standby,作为data guard的第三种standby推出。

我们知道,data guard需要在主备库之间通过redo transport services传递日志,那么就需要redo transport services能够有足够的权限访问备库。在10g之前,这是通过remote passwordfile以sys用户权限实现的,这就需要在主备库使用相同的sys密码。在Oracle11g对于redo transport services的安全性有所增强,可以使用SSL或者passwordfile的方式进行安全验证。

SSL是网络间进行安全连接的工业标准,本文不打算涉及具体的SSL配置,详细的配置方法请参考官方文档:《Oracle Database Advanced Security Administrator’s Guide》。

这里要说一下Oracle11g对于redo transport services在remote passwordfile认证上的一点改进。在Oracle11g中引入了一个新的初始化参数redo_transport_user,该参数可以重新指定redo transport services连接备库的用户,而不一定要使用sys用户,当然,该用户需要有sysoper或者sysdba权限,并且该用户在主备库passwordfile中的密码需要一致。

使用remote passwordfile认证,所有的physical standby都需要使用和主库一样的passwordfile,并且,如果在主库对于sysoper/sysdba权限有变动或者拥有sysdba/sysoper的用户密码变更,都需要重新复制passwordfile到standby中,否则可能导致redo transport services工作不正常。

Oracle11g新特性:Automatic Memory Management(AMM)

Oracle9i引入pga_aggregate_target,可以自动对PGA进行调整;Oracle10引入sga_target,可以自动对SGA进行调整。Oracle11g则对这两部分进行综合,引入memory_target,可以自动调整所有的内存,这就是新引入的自动内存管理特性。

SQL> alter system set memory_target=200m scope=spfile;

System altered.

SQL> alter system set memory_target=200m scope=spfile;

System altered.

SQL> alter system set sga_target=0 scope=spfile;

System altered.

SQL> alter system set pga_aggregate_target=0 scope=spfile;

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area  209235968 bytes
Fixed Size                  1298920 bytes
Variable Size             150998552 bytes
Database Buffers           54525952 bytes
Redo Buffers                2412544 bytes
Database mounted.
Database opened.

[继续阅读全文]

Oracle11g新特性:虚拟列virtual column

Oracle11g引入了一个新的特性:虚拟列(Virtual Column)。虚拟列不进行实际的存储,而是通过函数计算得到。目前版本只能在普通的堆表中使用虚拟列,其他如index-organized table, external, object, cluster, 或者temporary table中都还不支持使用虚拟列。

SQL> create table test(i1 int, i2 int,i3 as (i1+i2) virtual);
 
Table created.

其中,virtual关键字可以省略。这样,i3列就是一个基于i1列和i2列计算得到的一个虚拟列。

NING@11g> insert into test values(1,2,3);
insert into test values(1,2,3)
            *
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns
 
NING@11g> insert into test(i1,i2) values(1,2);
 
1 row created.
 
SQL> commit;
 
Commit complete.
 
SQL> select * from test;
 
        
I1         I2         I3
--------
-- ---------- ----------
        
1          2          3

[继续阅读全文]

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)

[继续阅读全文]