欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2024-01-18 14:24:52
...

在Oracle 10g版本中,推出了一个新特性mdash;mdash;归档压缩,此功能的目的是在归档传输到远程或者归档存储到磁盘之前进行压缩

在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目前也不支持压缩的归档文件,并且也没有表示将会支持压缩的归档文件。因此,,这个功能还只能在期待中!