powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Репликация данных Informix => MySQL
24 сообщений из 24, страница 1 из 1
Репликация данных Informix => MySQL
    #33985327
yack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо организовать репликацию данных с Informix на MySQL.
Опуская нюансы, связанные со сходствами и различиями типов данных в одной и другой СУБД.
Informix: 10tc4, Win 2003
MySQL: 5.1 на FreeBSD
типы данных: varchar, integer, double(16,2), BLOB

Подскажите, есть ли какое-то приемлемое решение. Неохота самому писать все это...
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33985390
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yackНеобходимо организовать репликацию данных с Informix на MySQL.
Опуская нюансы, связанные со сходствами и различиями типов данных в одной и другой СУБД.
Informix: 10tc4, Win 2003
MySQL: 5.1 на FreeBSD
типы данных: varchar, integer, double(16,2), BLOB

Подскажите, есть ли какое-то приемлемое решение. Неохота самому писать все это...

А придется. Ну или покупать у кого-то.
P.S. Так double или decimal (16, 2) ? Это вообще-то разные типы данных...
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33986125
yack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
decimal, конечно...
Значит светит мне писать самодельную офф-лайн репликацию? :(
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33986137
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yackdecimal, конечно...
Значит светит мне писать самодельную офф-лайн репликацию? :(Любопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33987314
Журавлев ДенисЛюбопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса.

Вопрос спорный. Открывать доступ извне к базе? Мы тоже решили этого не делать. Сервер приложения по расписанию обновляет даные в MySQL. Ну и при необходимости вэб приложение дергает сервер приложения.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33987367
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр ФедоренкоВопрос спорный. Открывать доступ извне к базе?Не вижу ничего страшного в том что вебсервер будет данные брать из корп. бд сквозь фаервол.
Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд.

Александр Федоренко
Мы тоже решили этого не делать. Сервер приложения по расписанию обновляет даные в MySQL. Ну и при необходимости вэб приложение дергает сервер приложения.Т.е. теоретически вебприложение может инициировать в сервере приложений совсем не то что вы задумали? Будет тоже самое, что и выше?

А поставить рядом с вебсервером еще один информикс и настроить ER репликацию с корпоративным?
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33989973
Журавлев ДенисНе вижу ничего страшного в том что вебсервер будет данные брать из корп. бд сквозь фаервол.
Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд.

Т.е. теоретически вебприложение может инициировать в сервере приложений совсем не то что вы задумали? Будет тоже самое, что и выше?

А поставить рядом с вебсервером еще один информикс и настроить ER репликацию с корпоративным?

Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится. А через сервер приложения сделать несанкционированное ну очень не просто, я так думаю, во-всяком случае. Тем более, что он у нас все-равно есть.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33991236
yack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то - тема была моя :)
Но ситуация точно такая, как описано в предыдущем посте.

Только вот по планировщику - не совсем хорошее решение. Нужна именно on-line репликация. 2 минуты - это уже значительная задержка. такова специфика...
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33991248
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем не устраивает вариант: "Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд."?
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33991293
yack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае, если не использользовать 3-х уровневую архитектуру с AS (или промышленным или своим) - любая схема в итоге сводится к такой.

Иницииатором только может быть или внешний или внутренний, но схема аналогична.

реплицировать нужно около 20 таблиц, для которых всю логику необходимо будет прописать руками :(
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #33991317
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно посмотреть в сторону WebSphere MQ. Для informix есть MQ datablade. В хранимой процедуре или тригере кидаем в очередь сообщений данные. На другой стороне MQ получает данные и запускает по приходу сообщения процесс который вставляет данные в MySQL. Я бы для этого DB2 использовал так как там есть уже написанный агент который запускает по приходу сообщения хранимую процедуру в качества параметра которой передается сообщение или значения из сообщения.

+ Быстро и гарантированно данные будут попадать на сервер который стоит рядом с Web
-WebSphere MQ стоит денег
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34002109
Ilya Kulagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится.

Тут, как понимаете, вариантов немного. Или, всё-таки, вебсервер имеет коннект (ну, пусть не к базе, а, например, к самонаписанному на, например, перле, "серверу приложений"), который по переданным ему в tcp-соединении с вебсервера параметрам делает тот или иной execute procedure (только упаси боже, не select - а то дыры замаетесь латать) в информиксе и возвращает данные обратно вебсерверу.

Или на 20 таблиц Вы вешаете 20*3 триггеров, которые по каждому изменению/вставке/удалению, например, запускают какой-либо system(), написанный, например, на том же перле, который эти данные вынимает из базы, складывает во временный буфер и запускает фиговину, которая данные из этого буфера будет пихать в мыскль (ни в коем случае не сам пихает - а то по малейшему таймауту соединения будет полная фигня с исходными транзакциями).

Обе схемы у меня работали. В случае триггеров, сами понимаете, объём всех тех race conditions, которые надо предусмотреть, больше в разы. Поэтому когда таблиц стало 2 вместо 1, я счёл за благо пойти по дороге номер 1.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34010429
yack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ходили мы уже этими двумя дорогами.
С триггерами хорошо, но ужасно неудобно что-то менять. И стремно...

Хочется, понимаете, чего-нибудь промышленного....
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34016160
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Nikolay KulikovМожно посмотреть в сторону WebSphere MQ. Для informix есть MQ datablade. В хранимой процедуре или тригере кидаем в очередь сообщений данные. На другой стороне MQ получает данные и запускает по приходу сообщения процесс который вставляет данные в MySQL. Я бы для этого DB2 использовал так как там есть уже написанный агент который запускает по приходу сообщения хранимую процедуру в качества параметра которой передается сообщение или значения из сообщения.

+ Быстро и гарантированно данные будут попадать на сервер который стоит рядом с Web
-WebSphere MQ стоит денег

А если внешний процесс сделает роллбэк?
А сообщение уже ушло?
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34016170
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Ilya Kulagin Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится.

Тут, как понимаете, вариантов немного. Или, всё-таки, вебсервер имеет коннект (ну, пусть не к базе, а, например, к самонаписанному на, например, перле, "серверу приложений"), который по переданным ему в tcp-соединении с вебсервера параметрам делает тот или иной execute procedure (только упаси боже, не select - а то дыры замаетесь латать) в информиксе и возвращает данные обратно вебсерверу.

Или на 20 таблиц Вы вешаете 20*3 триггеров, которые по каждому изменению/вставке/удалению, например, запускают какой-либо system(), написанный, например, на том же перле, который эти данные вынимает из базы, складывает во временный буфер и запускает фиговину, которая данные из этого буфера будет пихать в мыскль (ни в коем случае не сам пихает - а то по малейшему таймауту соединения будет полная фигня с исходными транзакциями).

Обе схемы у меня работали. В случае триггеров, сами понимаете, объём всех тех race conditions, которые надо предусмотреть, больше в разы. Поэтому когда таблиц стало 2 вместо 1, я счёл за благо пойти по дороге номер 1.

аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции.
Так делать нельзя
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34016769
Ilya Kulagin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cpr
аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции.


В смысле - нельзя сделать триггер, который запустится до commit. Ну, нельзя. И что здесь неправильного?
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34016830
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Ilya Kulagin cpr
аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции.


В смысле - нельзя сделать триггер, который запустится до commit. Ну, нельзя. И что здесь неправильного?


почему нельзя? можно

триггер foreach row
сработает как раз до коммита.

Дело в том, что после передачи сообщения об изменениях, отловленных триггером необходимо еще передавать коммит во внешнюю систему для того чтобы не произошло рассинхронизации.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34016945
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э не друг CPR. Что в DB2 что в Informix MQ Datablade если ты работаешь с MQ у тебя будет 2 фазный commit. В случае с репликаций Транзакции которые в логе не завершились commit тоже не передадутся как сообщения.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34017261
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Nikolay KulikovЭ не друг CPR.

Не понял, вы меня ни с кем не путаете?


Nikolay KulikovЧто в DB2 что в Informix MQ Datablade если ты работаешь с MQ у тебя будет 2 фазный commit. В случае с репликаций Транзакции которые в логе не завершились commit тоже не передадутся как сообщения.

Нифига не понял, а причем тут репликация?
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34018403
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извини за фамильярность.

Репликация имелась в виду DB2-aя через MQ. Она когда обрабатывает лог она проверят транзакция завершилась Commit или нет. Соответсвенно если не завершилась то сообщения не отправляются.

p.s. по мне так проще было ER наладить и отказаться от MySQL, у Informix неплохой драйвер для php.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34019079
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Nikolay KulikovИзвини за фамильярность.


без проблем

Nikolay Kulikov
Репликация имелась в виду DB2-aя через MQ. Она когда обрабатывает лог она проверят транзакция завершилась Commit или нет. Соответсвенно если не завершилась то сообщения не отправляются.
драйвер для php.

Тогда это несколько не в тему, поскольку обсуждается ситуация, когда нет возможности гетерогенной транзакции. Если есть соответствующий Informix Gateaway manager, то вообще больше ничего не нужно - обращайся к внешней таблице, как к внешней БД Informix и все получится.

Nikolay Kulikov
p.s. по мне так проще было ER наладить и отказаться от MySQL, у Informix неплохой драйвер для php.

На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34019156
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpr
Тогда это несколько не в тему, поскольку обсуждается ситуация, когда нет возможности гетерогенной транзакции.Я так понимаю что MQ как раз и решает проблему двухфазной фиксации в гетерогенной среде. И он действительно поможет в данном случае, но я не верю что оно заработает с первого раза :), плюс денег стоит.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34019169
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpr
На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать.Видимо ТЗ у них (или религия) -- ни одного листен порта снаружи.
...
Рейтинг: 0 / 0
Репликация данных Informix => MySQL
    #34020358
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
Журавлев Денис cpr
На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать.Видимо ТЗ у них (или религия) -- ни одного листен порта снаружи.

Подозреваю, что для гетерогенной транзакции нужна двухсторонняя связь между серверами так же как и для двухфазной транзкции Informix.
Так что если они хотят снаружи все порты закрыть, то не знаю каким образом они работать собираются.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Репликация данных Informix => MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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