質問

データベースリンクを介してデータベースリンクを介してデータを転送しています(INSERT INTO SELECT ...を使用)。

リンクを介して転送されたデータが圧縮されているかどうかを知りたいのですが、ネットワーク使用が多すぎるのを防ぐために圧縮できます。私は帯域幅がほとんどありません、そしてそれがまだ行われていないならば私はそれが助けるだろうと思います。

役に立ちましたか?

解決

いくつかの重複排除しかし、重大な圧縮はありません。

UTL_Compress関数がありますが、宛先を解凍すること(トリガー、またはビューの代わりに)解凍することがわかります。

expDPはデータベースリンクを使用できます( network_link )そして、11g、圧縮 ライセンスされた高度な圧縮オプションをライセンス。< / P>

最後に従来の抽出、Zip、転送、unzip、load

があります

11gr2 プリプロセッサを解凍するために、その最終オプションを半自動化することができます。

他のヒント

@Garyは、ネイティブではないが、とにかくコマンドラインアクセスがあると仮定して、SSHトンネルを使用して圧縮を得ることが可能です。 SSHマニュアルページは、圧縮が高速ネットワーク上で物事を遅くする可能性があると注意していますが、厳密に帯域幅制約がある場合は、トレードオフが価値がある可能性があります。そして、あなたはあなたの状況に最適な結果を得るためにCompressionLevelssh_configを試す必要があるかもしれません。

例えば、既存のリンクがremote_server Port Port 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を指すように変更することができます。

もちろん、DBリンクを使用するたびにSSHリンクが起動していることを確認する必要があります。ローカルポート1522では何も聞いていないため、ORA-12541: TNS:no listenerエラーが発生します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top