powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
26 сообщений из 26, показаны все 2 страниц
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460714
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. Минусы — пробовал, не получилось, клиент не завелся.

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460770
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как часто это должно происходить и какая задержка в данных допустима?
Как насчет варианта на стороне Oracle выгружать данные текстовый файл, пересылать его (например, по FTP) на сервер MySQL и там загружать?

Поясните фразу "из внешней базы данных". Внешней относительно чего?

"три-четыре тысячи строк" - копеечный объем данных, передавать можно даже HTTP-запросом.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460809
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftКак часто это должно происходить и какая задержка в данных допустима?
Несколько раз в день. Если возможно, то ежечасно. Задержка в пределах 5-10 минут вполне допустима.

miksoftКак насчет варианта на стороне Oracle выгружать данные текстовый файл, пересылать его (например, по FTP) на сервер MySQL и там загружать?
Не очень. Тогда уж лучше на стороне сервера с Oracle подключаться к БД MySQL и заливать данные сразу в конечную базу данных.
Однако сервер с Oracle обслуживат довольно важную систему, если возможно, я бы не хотел на нем запускать никаких посторонних задач.

miksoftПоясните фразу "из внешней базы данных". Внешней относительно чего?
В том смысле, что это (БД Oracle и MySQL) две информационные системы, никак не связанные друг с другом.
Ну за исключением того, что некоторые данные нужно регулярно загружать из первой БД во вторую.

miksoft"три-четыре тысячи строк" - копеечный объем данных, передавать можно даже HTTP-запросом.
Для этого нужен удаленный сервис, сериализация, десериализация.
Для SSH это достаточно большой объем данных, делать же специальное решение не хочется.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460833
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос надо задать в форуме ORACLE, типа, как легче сделать взаимодействие ORACLE и mySQL, наверняка в составе ORACLE есть или внешние или встроенные инструменты, причем кросс-платформенные... А так, вы пытаетесь изобрести свой собственный лисапед, который если и поедет, то квадратных колесах )))))))
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460855
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

Еще вариант велосипеда - отдельное приложение, которое запускается по расписанию (по крону), подключается к обоим СУБД синхронизирует данные.
Этим приложением может быть что угодно - PL/SQL-скрипт в Оракле (но тогда придется настраивать доступ из Оракла к MySQL), PHP-скрипт на сервере сайта, приложение на Delphi где-то еще и т.п.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460865
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey OrlovВопрос надо задать в форуме ORACLE, типа, как легче сделать взаимодействие ORACLE и mySQL, наверняка в составе ORACLE есть или внешние или встроенные инструменты, причем кросс-платформенные...
Не выйдет, проблеме FreeBSD+Oracle уже много лет и нормального решения нет до сих пор.

miksoftЕще вариант велосипеда - отдельное приложение, которое запускается по расписанию (по крону), подключается к обоим СУБД синхронизирует данные.
Вопрос не в этом (против отдельного приложения я не возражаю).
Вопрос в том, где это отдельное приложение будет запускаться.
Если на сервере с Oracle — этого я бы хотел избежать.
Если на сервере с MySQL (под FreeBSD) — все упирается в отсутсвие клиента Oracle на FreeBSD.
Если на каком-то третьем сервере (под Linux или Windows) — то это работать будет, но это лишняя точка отказа.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460882
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Если на сервере с Oracle — этого я бы хотел избежать.Вот тут поподробнее. Какие именно действия на сервере с Ораклом недопустимы?
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460896
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftКакие именно действия на сервере с Ораклом недопустимы?
Я перестраховываюсь. Если вдруг с БД что-то случится, то я недостаточно хорошо знаю Oracle, чтобы оперативно его восстановить.
Поэтому если для такого приложения нужно будет обновлять какие-то системные библиотеки (а там установлен Perl 5.8.5), то я этого делать не стану, поскольку есть вероятность, что после обновления перестанет работать какой-нибудь системный скрипт.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460912
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

SQL*Plus на сервере есть по любому.
Не вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь. Это достаточно простой функционал и я сильно сомневаюсь, что вы упретесь в версию какого-нибудь пакета. Правда, можете упереться в недостачу какого-нибудь пакета, если сервер настраивал маньяк-минималист. Но это уже вам на месте виднее.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38460989
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Не выйдет, проблеме FreeBSD+Oracle уже много лет и нормального решения нет
до сих пор.
А ты уже пробовал GoldenGate?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461059
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА ты уже пробовал GoldenGate?

Нет. А чем это поможет?
Из описания я понял, что это репликатор.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461069
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftНе вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь.
Да, в таком направлении я не думал.
Можно через ssh выполнять запрос и через scp забирать результат.
Накладные расходы по времени будут большие (на установку безопасных сеансов), но это не критично.
В крайнем случае можно так делать, это лучше, чем мой пункт 1. Но я не теряю надежды, что есть более прямой путь.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461087
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Нет. А чем это поможет?
Из описания я понял, что это репликатор.
А репликатор это такая софтина, которая поддерживает две БД в синхронном состоянии. То
бишь синхронизирует их. То бишь делает именно то, что написано в сабже. Уверен, что
софтина, делающая в точности то, что тебе нужно, тебе не поможет?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461091
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Мне не нужна реплика. Мне нужна часть данных из одной БД.
2. СУБД разные, ОС разные. Кроме того, одну из ОС Oracle не поддерживает.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461101
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.miksoftНе вижу особой сложности выгрузить им нужную табличку в текстовый файл, а потом пульнуть этот файл на сервер сайта хоть по FTP, хоть почтой, хоть еще чем нибудь.Да, в таком направлении я не думал.Хм, я же в первом ответе это предлагал, только другими словами.
Alibek B.Можно через ssh выполнять запрос и через scp забирать результат.
Накладные расходы по времени будут большие (на установку безопасных сеансов), но это не критично.По сравнению с допустимыми 5-10 минутами - накладные расходы по времени будут ничтожны.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461109
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.1. Мне не нужна реплика. Мне нужна часть данных из одной БД.
И ты всерьёз полагаешь, что все репликаторы так тупы, что умеют делать исключительно
полные реплики и никто из них не осилит частичную?..

Alibek B.2. СУБД разные, ОС разные. Кроме того, одну из ОС Oracle не
поддерживает.
У FreeBSD есть режим совместимости с Linux, а тот - поддерживается. Кроме того, не путай
опять же репликатор и СУБД. Это две сильно разные софтины. GG достаточно любым способом
получить доступ к логам источника. Ты сумеешь скопировать файла на FreeBSD или это тоже
"не поддерживается"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461396
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftХм, я же в первом ответе это предлагал, только другими словами.
Да, я это как-то неправильно понял.

Dimitry SibiryakovИ ты всерьёз полагаешь, что все репликаторы так тупы, что умеют делать исключительно
полные реплики и никто из них не осилит частичную?..
Мне не нужна частичная реплика, данные, которые я извлекаю — это выборка из 13 таблиц, четыре из которых хранят атрибуты EAV и довольно большие.
Репликатор сможет сделать выборку?

Alibek B.У FreeBSD есть режим совместимости с Linux, а тот - поддерживается.
Но при этом у меня не получилось завести Oracle Instant Client в режиме совместимости.

Alibek B.GG достаточно любым способом получить доступ к логам источника. Ты сумеешь скопировать файла на FreeBSD или это тоже "не поддерживается"?..
Это не менее криво, чем использовать JDBC.
JDBC даже предпочтительнее, поскольку не нужно будет ставить дополнительный софт на сервер с Oracle.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461400
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, если мне не изменяет память, то GoldenGate весьма нехило денег стоит. Да и в настройке не так прост. Так что его применение ради несчастных трех тысяч записей - это, имхо, как ядерной бомбой по хомячку в клетке.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461406
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, это будет и проще и надежнее...
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461414
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
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461434
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Orlov в портах есть 2-а модуля перла для работы с базой ORACLE , внимательней посмотрите каталог database в портах
oracle7-client и oracle8-client? Они для 32-разрядной архитектуры. На x64 не работают.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461445
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Капитан очевидность на проводеВ Oracle есть такая штука, называется Hereogeneos Services. Работает через UnixODBC с MySQL.
Я подумывал о том, чтобы на сервере с Oracle удаленно подключаться к MySQL и выгружать в него данные.
Прилинкованная MySQL-таблица этот процесс конечно упростит.
И такой способ мою конкретную задачу решает.
Но все же хотелось бы найти общее решение, потому что иногда мне нужно просто подключиться к Oracle и получить из него какие-то данные.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461714
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Капитан очевидность на проводеВ Oracle есть такая штука, называется Hereogeneos Services. Работает через UnixODBC с MySQL.
Я подумывал о том, чтобы на сервере с Oracle удаленно подключаться к MySQL и выгружать в него данные.
Прилинкованная MySQL-таблица этот процесс конечно упростит.
И такой способ мою конкретную задачу решает.
Но все же хотелось бы найти общее решение, потому что иногда мне нужно просто подключиться к Oracle и получить из него какие-то данные.
Делайте то, что посоветовал Капитан очевидность на проводе, это и есть самое общее и безглючное решение для вас решение.
Для получения данных как раз PERL DBI очень хорошо подходит, хотя честно говоря не очень себе представляю работу в командной строке с данными от sql-сервера, для рутинных задач представляю, а вот в остальном..., какая на мой взгляд разница общаешься с sql-сервером по сети или же на его консоли... Хотя конечно можно поставить на сервер и эмулятор линуса, x-ы ну и т.д....
Кстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье...
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38461735
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey OrlovКстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье...
Если бы я мог использовать драйвер для Oracle, я бы использовал Perl.
Клиентов Oracle для 64-разрядной FreeBSD нет.
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38462055
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Sergey OrlovКстати у вас там на фришке PHP стоит вот и воткните туда драйвекр для oracle и юзайте его себе на здоровье...
Если бы я мог использовать драйвер для Oracle, я бы использовал Perl.
Клиентов Oracle для 64-разрядной FreeBSD нет.
А там давно не только под x64 но и новых клиентов нет ...
...
Рейтинг: 0 / 0
Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
    #38465877
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2. Установить на удаленном сервере dbiproxy, на сервере использовать Perl для импорта данных. Минусы — на удаленном сервере довольно старый Perl и компоненты, dbiproxy не работает, а обновлять их я не рискну.
dbiproxy тоже весьма древняя программа. может лучше разобраться с ошибками? из cpan можно качать компоненты соответствующих древних версий. Экосистема развивается одновременно и старые версии вероятно работали тогда же.
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Скрипт синхронизации между MySQL и Oracle на FreeBSD x64
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]