|
|
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Есть у меня онлайн-сервис, работающий в PHP на сервере с FreeBSD 8.2 x64. На этом же сервере создана СУБД MySQL с данными для этого сервиса. Часть данных должна загружаться из внешней базы данных Oracle 10, которая работает на сервере с RHEL (также 64-разрядный), объем данных довольно большой (три-четыре тысячи строк). Посоветуйте, как лучше сделать? Насколько я смог понять, есть только четыре возможных способа и ни один из них мне не нравится (неудобные или ненадежные): 1. Подключаться к удаленному серверу по SSH, выполнять на нем SQL-запрос, полученные данные парсить и использовать. Минусы — медленно, ненадежно. 2. Установить на удаленном сервере dbiproxy, на сервере использовать Perl для импорта данных. Минусы — на удаленном сервере довольно старый Perl и компоненты, dbiproxy не работает, а обновлять их я не рискну. 3. Установить на сервере JDBC, использовать Perl и DBD:JDBC для доступа к данным. Минусы — как-то уж больно коряво, плюс нужно будет DBD:JDBC-сервер настраивать и запускать. 4. Установить на сервере виртуальный линукс и в него установить intant client. Минусы — пробовал, не получилось, клиент не завелся. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 16:58 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Как часто это должно происходить и какая задержка в данных допустима? Как насчет варианта на стороне Oracle выгружать данные текстовый файл, пересылать его (например, по FTP) на сервер MySQL и там загружать? Поясните фразу "из внешней базы данных". Внешней относительно чего? "три-четыре тысячи строк" - копеечный объем данных, передавать можно даже HTTP-запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:27 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
miksoftКак часто это должно происходить и какая задержка в данных допустима? Несколько раз в день. Если возможно, то ежечасно. Задержка в пределах 5-10 минут вполне допустима. miksoftКак насчет варианта на стороне Oracle выгружать данные текстовый файл, пересылать его (например, по FTP) на сервер MySQL и там загружать? Не очень. Тогда уж лучше на стороне сервера с Oracle подключаться к БД MySQL и заливать данные сразу в конечную базу данных. Однако сервер с Oracle обслуживат довольно важную систему, если возможно, я бы не хотел на нем запускать никаких посторонних задач. miksoftПоясните фразу "из внешней базы данных". Внешней относительно чего? В том смысле, что это (БД Oracle и MySQL) две информационные системы, никак не связанные друг с другом. Ну за исключением того, что некоторые данные нужно регулярно загружать из первой БД во вторую. miksoft"три-четыре тысячи строк" - копеечный объем данных, передавать можно даже HTTP-запросом. Для этого нужен удаленный сервис, сериализация, десериализация. Для SSH это достаточно большой объем данных, делать же специальное решение не хочется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:42 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Вопрос надо задать в форуме ORACLE, типа, как легче сделать взаимодействие ORACLE и mySQL, наверняка в составе ORACLE есть или внешние или встроенные инструменты, причем кросс-платформенные... А так, вы пытаетесь изобрести свой собственный лисапед, который если и поедет, то квадратных колесах ))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:50 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B., Еще вариант велосипеда - отдельное приложение, которое запускается по расписанию (по крону), подключается к обоим СУБД синхронизирует данные. Этим приложением может быть что угодно - PL/SQL-скрипт в Оракле (но тогда придется настраивать доступ из Оракла к MySQL), PHP-скрипт на сервере сайта, приложение на Delphi где-то еще и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 17:59 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovВопрос надо задать в форуме ORACLE, типа, как легче сделать взаимодействие ORACLE и mySQL, наверняка в составе ORACLE есть или внешние или встроенные инструменты, причем кросс-платформенные... Не выйдет, проблеме FreeBSD+Oracle уже много лет и нормального решения нет до сих пор. miksoftЕще вариант велосипеда - отдельное приложение, которое запускается по расписанию (по крону), подключается к обоим СУБД синхронизирует данные. Вопрос не в этом (против отдельного приложения я не возражаю). Вопрос в том, где это отдельное приложение будет запускаться. Если на сервере с Oracle — этого я бы хотел избежать. Если на сервере с MySQL (под FreeBSD) — все упирается в отсутсвие клиента Oracle на FreeBSD. Если на каком-то третьем сервере (под Linux или Windows) — то это работать будет, но это лишняя точка отказа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 18:03 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Если на сервере с Oracle — этого я бы хотел избежать.Вот тут поподробнее. Какие именно действия на сервере с Ораклом недопустимы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 18:12 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
miksoftКакие именно действия на сервере с Ораклом недопустимы? Я перестраховываюсь. Если вдруг с БД что-то случится, то я недостаточно хорошо знаю Oracle, чтобы оперативно его восстановить. Поэтому если для такого приложения нужно будет обновлять какие-то системные библиотеки (а там установлен Perl 5.8.5), то я этого делать не стану, поскольку есть вероятность, что после обновления перестанет работать какой-нибудь системный скрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 18:23 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B., SQL*Plus на сервере есть по любому. Не вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь. Это достаточно простой функционал и я сильно сомневаюсь, что вы упретесь в версию какого-нибудь пакета. Правда, можете упереться в недостачу какого-нибудь пакета, если сервер настраивал маньяк-минималист. Но это уже вам на месте виднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 18:35 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Не выйдет, проблеме FreeBSD+Oracle уже много лет и нормального решения нет до сих пор. А ты уже пробовал GoldenGate? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 19:30 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА ты уже пробовал GoldenGate? Нет. А чем это поможет? Из описания я понял, что это репликатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 20:47 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
miksoftНе вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь. Да, в таком направлении я не думал. Можно через ssh выполнять запрос и через scp забирать результат. Накладные расходы по времени будут большие (на установку безопасных сеансов), но это не критично. В крайнем случае можно так делать, это лучше, чем мой пункт 1. Но я не теряю надежды, что есть более прямой путь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 20:50 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Нет. А чем это поможет? Из описания я понял, что это репликатор. А репликатор это такая софтина, которая поддерживает две БД в синхронном состоянии. То бишь синхронизирует их. То бишь делает именно то, что написано в сабже. Уверен, что софтина, делающая в точности то, что тебе нужно, тебе не поможет?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:03 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
1. Мне не нужна реплика. Мне нужна часть данных из одной БД. 2. СУБД разные, ОС разные. Кроме того, одну из ОС Oracle не поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:07 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.miksoftНе вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь.Да, в таком направлении я не думал.Хм, я же в первом ответе это предлагал, только другими словами. Alibek B.Можно через ssh выполнять запрос и через scp забирать результат. Накладные расходы по времени будут большие (на установку безопасных сеансов), но это не критично.По сравнению с допустимыми 5-10 минутами - накладные расходы по времени будут ничтожны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:19 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.1. Мне не нужна реплика. Мне нужна часть данных из одной БД. И ты всерьёз полагаешь, что все репликаторы так тупы, что умеют делать исключительно полные реплики и никто из них не осилит частичную?.. Alibek B.2. СУБД разные, ОС разные. Кроме того, одну из ОС Oracle не поддерживает. У FreeBSD есть режим совместимости с Linux, а тот - поддерживается. Кроме того, не путай опять же репликатор и СУБД. Это две сильно разные софтины. GG достаточно любым способом получить доступ к логам источника. Ты сумеешь скопировать файла на FreeBSD или это тоже "не поддерживается"?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 21:28 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
miksoftХм, я же в первом ответе это предлагал, только другими словами. Да, я это как-то неправильно понял. Dimitry SibiryakovИ ты всерьёз полагаешь, что все репликаторы так тупы, что умеют делать исключительно полные реплики и никто из них не осилит частичную?.. Мне не нужна частичная реплика, данные, которые я извлекаю — это выборка из 13 таблиц, четыре из которых хранят атрибуты EAV и довольно большие. Репликатор сможет сделать выборку? Alibek B.У FreeBSD есть режим совместимости с Linux, а тот - поддерживается. Но при этом у меня не получилось завести Oracle Instant Client в режиме совместимости. Alibek B.GG достаточно любым способом получить доступ к логам источника. Ты сумеешь скопировать файла на FreeBSD или это тоже "не поддерживается"?.. Это не менее криво, чем использовать JDBC. JDBC даже предпочтительнее, поскольку не нужно будет ставить дополнительный софт на сервер с Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 09:47 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Кстати, если мне не изменяет память, то GoldenGate весьма нехило денег стоит. Да и в настройке не так прост. Так что его применение ради несчастных трех тысяч записей - это, имхо, как ядерной бомбой по хомячку в клетке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 09:51 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Sergey OrlovВопрос надо задать в форуме ORACLE, типа, как легче сделать взаимодействие ORACLE и mySQL, наверняка в составе ORACLE есть или внешние или встроенные инструменты, причем кросс-платформенные... Не выйдет, проблеме FreeBSD+Oracle уже много лет и нормального решения нет до сих пор. Да нет там проблемы в портах есть 2-а модуля перла для работы с базой ORACLE , внимательней посмотрите каталог database в портах Alibek B.Вопрос в том, где это отдельное приложение будет запускаться. Если на сервере с Oracle — этого я бы хотел избежать. Если на сервере с MySQL (под FreeBSD) — все упирается в отсутсвие клиента Oracle на FreeBSD. Если на каком-то третьем сервере (под Linux или Windows) — то это работать будет, но это лишняя точка отказа. Итак 1. Предложенный вами велосипед как раз и есть отдельное приложение от которого вы хотите уйти, более того там вы задействуете не одно а несколько приложений... 2. Найдите специалиста по ORACLE, исходя из своего опыта работы с базами, я думаю, что вам потребуется написать в базе Oracle только одну процедуру по загрузке данных в MySQL, это будет и проще и надежнее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 09:55 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Есть у меня онлайн-сервис, работающий в PHP на сервере с FreeBSD 8.2 x64. На этом же сервере создана СУБД MySQL с данными для этого сервиса. Часть данных должна загружаться из внешней базы данных Oracle 10, которая работает на сервере с RHEL (также 64-разрядный), объем данных довольно большой (три-четыре тысячи строк). Посоветуйте, как лучше сделать? Насколько я смог понять, есть только четыре возможных способа и ни один из них мне не нравится (неудобные или ненадежные): 1. Подключаться к удаленному серверу по SSH, выполнять на нем SQL-запрос, полученные данные парсить и использовать. Минусы — медленно, ненадежно. 2. Установить на удаленном сервере dbiproxy, на сервере использовать Perl для импорта данных. Минусы — на удаленном сервере довольно старый Perl и компоненты, dbiproxy не работает, а обновлять их я не рискну. 3. Установить на сервере JDBC, использовать Perl и DBD:JDBC для доступа к данным. Минусы — как-то уж больно коряво, плюс нужно будет DBD:JDBC-сервер настраивать и запускать. 4. Установить на сервере виртуальный линукс и в него установить intant client. Минусы — пробовал, не получилось, клиент не завелся. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. В Oracle есть такая штука, называется Hereogeneos Services. Работает через UnixODBC с MySQL. В результате на сервере Oracle появится таблица вида TABLE_NAME@MYSQL Которая будет выглядеть почти как обычная. И в нее можно будет и писать, и читать. Потом в Oracle пишется JOB на PL/SQL, который будет в эту таблицу по расписанию или еще как писать. Вот и все. А местным "спицыалистам" пламенный привет - более зачетных глупостей, чем понапостанные тут - давно не читал. настроить HS/MySQL в Oracle - это плевое дело (всего 4 шага), гугель в помощь https://www.google.com/search?client=aff-maxthon-newtab&channel=t2&q=oracle hs mysql#affdom=maxthon.com&channel=t2&q=oracle heterogeneous services mysql unixodbc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 10:02 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov в портах есть 2-а модуля перла для работы с базой ORACLE , внимательней посмотрите каталог database в портах oracle7-client и oracle8-client? Они для 32-разрядной архитектуры. На x64 не работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 10:20 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Капитан очевидность на проводеВ Oracle есть такая штука, называется Hereogeneos Services. Работает через UnixODBC с MySQL. Я подумывал о том, чтобы на сервере с Oracle удаленно подключаться к MySQL и выгружать в него данные. Прилинкованная MySQL-таблица этот процесс конечно упростит. И такой способ мою конкретную задачу решает. Но все же хотелось бы найти общее решение, потому что иногда мне нужно просто подключиться к Oracle и получить из него какие-то данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 10:25 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Капитан очевидность на проводеВ Oracle есть такая штука, называется Hereogeneos Services. Работает через UnixODBC с MySQL. Я подумывал о том, чтобы на сервере с Oracle удаленно подключаться к MySQL и выгружать в него данные. Прилинкованная MySQL-таблица этот процесс конечно упростит. И такой способ мою конкретную задачу решает. Но все же хотелось бы найти общее решение, потому что иногда мне нужно просто подключиться к Oracle и получить из него какие-то данные. Делайте то, что посоветовал Капитан очевидность на проводе, это и есть самое общее и безглючное решение для вас решение. Для получения данных как раз PERL DBI очень хорошо подходит, хотя честно говоря не очень себе представляю работу в командной строке с данными от sql-сервера, для рутинных задач представляю, а вот в остальном..., какая на мой взгляд разница общаешься с sql-сервером по сети или же на его консоли... Хотя конечно можно поставить на сервер и эмулятор линуса, x-ы ну и т.д.... Кстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 13:11 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Sergey OrlovКстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье... Если бы я мог использовать драйвер для Oracle, я бы использовал Perl. Клиентов Oracle для 64-разрядной FreeBSD нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 13:23 |
|
||
|
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
|
|||
|---|---|---|---|
|
#18+
Alibek B.Sergey OrlovКстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье... Если бы я мог использовать драйвер для Oracle, я бы использовал Perl. Клиентов Oracle для 64-разрядной FreeBSD нет. А там давно не только под x64 но и новых клиентов нет ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 15:26 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=38460809&tid=1482734]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 408ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...