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

Подскажите, есть ли какое-то приемлемое решение. Неохота самому писать все это...
...
Рейтинг: 0 / 0
13.09.2006, 19:31
    #33985390
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация данных Informix => MySQL
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
14.09.2006, 10:08
    #33986125
yack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация данных Informix => MySQL
decimal, конечно...
Значит светит мне писать самодельную офф-лайн репликацию? :(
...
Рейтинг: 0 / 0
14.09.2006, 10:12
    #33986137
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация данных Informix => MySQL
yackdecimal, конечно...
Значит светит мне писать самодельную офф-лайн репликацию? :(Любопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса.
...
Рейтинг: 0 / 0
14.09.2006, 14:25
    #33987314
Репликация данных Informix => MySQL
Журавлев ДенисЛюбопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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

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

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


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

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

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

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


без проблем

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

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

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

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

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


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