Передача через ссылку база данных в Oracle 10G сжата?Является ли это возможным?

StackOverflow https://stackoverflow.com/questions/6081696

Вопрос

Я передаю данные из одной базы в другую через ссылки базы данных (используя INSERT INTO SELECT ...).

Я хочу знать, передаются ли данные через ссылку, сжаты или могут быть сжаты, чтобы избежать слишком большого количества использования сети.У меня очень мало пропускной способности, и я думаю, что это поможет, если она еще не сделана.

Это было полезно?

Решение

Есть некоторые de-deplication но нет серьезного сжатия.

Есть функция UTL_COMPRESS, но было бы сложно получить это, чтобы расслабиться на пункт назначения (возможно, спусковой крючок или вместо того, чтобы просмотреть - но он неуклюжем).

expdp может использовать ссылку базы данных ( news_link ) и, в 11G, компрессия Требуется ли требует%%20DATA_ONLY%20Option%20Requires%20That%20There%20Orachence%20Advanced%20Compression%20Option%20be%20Enabled."> Расширенная опция сжатия будет лицензирована . < / P >.

Наконец, есть обычный экстракт, ZIP, передача, расстегление, нагрузка

в 11ггр2 Вы можете использовать внешние таблицы с помощью Препроцессор для распаковки , чтобы вы могли получить полуавтоматическую опцию.

Другие советы

Как говорит @gary, не втаконно, но можно получить сжатие, используя SSH-туннель, предполагая, что у вас все равно имеет доступ к командной строке. Страница SSH MAN отмечает, что сжатие может замедлить вещи на быструю сеть, но это компромисс может стоить того, если вы серьезно ограничены пропускной способностью; И вам, возможно, понадобится экспериментировать с CompressionLevel в ssh_config, чтобы получить наилучшие результаты для вашей ситуации.

Например, если ваша существующая ссылка определяется для подключения к remote_server Port GeneracodicCode:

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)))'
.

Так что вы просто поменяете хост и порт. Если ваша существующая ссылка использует запись GenSodicEtagCode, вы можете просто изменять что вместо этого, чтобы указать на 1521 вместо tnsnames.

Конечно, вы должны убедиться, что ссылка SSH придерживается всякий раз, когда вы используете ссылку БД. Если он снизится, вы получите сообщение об ошибке localhost:1522, поскольку на вашем локальном порте ничего не будет слушать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top