2011-05-21 52 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上偵聽。

相關問題