2011-05-21 49 views

回答

3

有一些de-duplication但没有严重的压缩。

这里有一个UTL_COMPRESS函数,但要解压到目的地(可能是一个触发器,而不是视图 - 但它很笨拙)会很棘手。

EXPDP可以使用数据库链接(NETWORK_LINK),而在11g中,compression但确实需要Advanced Compression option to be licensed

最后还有传统的提取物,压缩,传输,解压缩,负载

在11gR2中您可以使用外部表,并preprocessor to unzip,所以你可以半自动化是最后的选择。

2

正如@Gary所说,不是本地的,但是假设您有命令行访问权限,则可以使用SSH隧道进行压缩。 SSH手册页指出,压缩可以在一个快速网络上减慢速度,但如果你受到严格的带宽限制,这种折衷可能是值得的;并且您可能需要在ssh_config中尝试使用CompressionLevel以获得您的情况的最佳结果。

例如,如果您现有的链接被定义为连接到remote_server端口1521

create database link direct connect to usr identified by pwd 
using 'DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=remote_server)(PORT=1521)) 
(CONNECT_DATA=(SERVICE_NAME=remote_service)))' 

您可以使用免费的本地端口的SSH隧道,喜欢的东西:

ssh -C -N -L1522:localhost:1521 remote_server 

然后你可以有一个DB链接指向隧道的本地端:

create database link direct connect to usr identified by pwd 
using 'DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1522)) 
(CONNECT_DATA=(SERVICE_NAME=remote_service)))' 

所以你只需要改变主机和端口。如果您现有的链接正在使用tnsnames条目,那么您可以修改它,指向localhost:1522而不是remote_server:1521

当然,您必须确保每当您使用数据库链接时,SSH链接都已启动。如果发生故障,您将得到一个ORA-12541: TNS:no listener错误,因为没有任何内容会在本地端口1522上侦听。

相关问题