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,可以自动调整所有的内存,这就是新引入的自动内存管理特性。
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中都还不支持使用虚拟列。
Table created.
其中,virtual关键字可以省略。这样,i3列就是一个基于i1列和i2列计算得到的一个虚拟列。
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,但是压缩速度则要快不少。本文通过一个实验来对这两种压缩算法进行比较。
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)