Oracle 10g新特性--归档压缩


在Oracle 10g版本中,推出了一个新特性——归档压缩,此功能的目的是在归档传输到远程或者归档存储到磁盘之前进行压缩,以便减少归档传输的时间和占用的磁盘空间。但是关于怎样开启归档压缩的语法,在10g的官方文档中没有提及,参考MOS文章BUG 3464260。可以用下面的语法开启数据库的归档压缩功能:alter database archivelog compress enable。但是,这个功能在10g、11g中都还未进行支持,相关的官方文档中也没有进行申明。下面进行测试,观察在开启归档压缩后是否会对归档日志进行压缩。

--本次测试在11.2.0.3版本中进行

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE    11.2.0.3.0    Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

--查看redo文件大小
SQL> select group#,members,bytes from v$log;

    GROUP# MEMBERS    BYTES
---------- ---------- ----------
    1    1    52428800
    2    1    52428800
    3    1    52428800

--查看数据库是否开启归档压缩
SQL> select name,ARCHIVELOG_COMPRESSION from v$database;

NAME                    ARCHIVEL
--------------------------------------------- --------
GYL                    DISABLED

--运行事务
begin
  for i in 1..500000 loop
  insert into darren values(1,\'aa\');
  commit;
  end loop;
end;

--查看生成的归档文件的大小
SQL> select name,blocks*block_size \"size\" from v$archived_log;

NAME                        size
--------------------------------------------- ----------
/oradata/archive/orcl_1_112_851966182.arc    49916928
/oradata/archive/orcl_1_113_851966182.arc    47870464
/oradata/archive/orcl_1_114_851966182.arc    49916928
/oradata/archive/orcl_1_115_851966182.arc    46791680
/oradata/archive/orcl_1_116_851966182.arc    49449984
/oradata/archive/orcl_1_117_851966182.arc    45774848
/oradata/archive/orcl_1_118_851966182.arc    46656512
/oradata/archive/orcl_1_119_851966182.arc    47223296

--开始数据库归档压缩功能
SQL> alter database archivelog compress enable;

Database altered.

SQL> select name,ARCHIVELOG_COMPRESSION from v$database;

NAME    ARCHIVEL
--------- --------
GYL    ENABLED

--再次运行事务
begin
  for i in 1..500000 loop
  insert into darren values(1,\'aa\');
  commit;
  end loop;
end;

--查看此时生成的归档文件大小
SQL> select name,blocks*block_size \"size\" from v$archived_log;

NAME                        size
--------------------------------------------- ----------
/oradata/archive/orcl_1_112_851966182.arc    49916928
/oradata/archive/orcl_1_113_851966182.arc    47870464
/oradata/archive/orcl_1_114_851966182.arc    49916928
/oradata/archive/orcl_1_115_851966182.arc    46791680
/oradata/archive/orcl_1_116_851966182.arc    49449984
/oradata/archive/orcl_1_117_851966182.arc    45774848
/oradata/archive/orcl_1_118_851966182.arc    46656512
/oradata/archive/orcl_1_119_851966182.arc    47223296
/oradata/archive/orcl_1_120_851966182.arc    48120320
/oradata/archive/orcl_1_121_851966182.arc    48687104
/oradata/archive/orcl_1_122_851966182.arc    49916928
/oradata/archive/orcl_1_123_851966182.arc    45165568
/oradata/archive/orcl_1_124_851966182.arc    48716800
/oradata/archive/orcl_1_125_851966182.arc    48135680
/oradata/archive/orcl_1_126_851966182.arc    46420992
/oradata/archive/orcl_1_127_851966182.arc    47159808
/oradata/archive/orcl_1_128_851966182.arc    43561472

    从实验数据可以看到,从orcl_1_120*开始的归档为开在开启归档功能后生成的归档,与之前的归档文件进行比较,发现并没有对归档文件进行压缩。关于归档日志小于在线日志的原因,请参考  。

  所以,在10g、11g中,oracle暂时不支持归档压缩功能。

  另外,ogg目前也不支持压缩的归档文件,并且也没有表示将会支持压缩的归档文件。因此,这个功能还只能在期待中!

相关内容