Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Необходимо организовать репликацию данных с Informix на MySQL. Опуская нюансы, связанные со сходствами и различиями типов данных в одной и другой СУБД. Informix: 10tc4, Win 2003 MySQL: 5.1 на FreeBSD типы данных: varchar, integer, double(16,2), BLOB Подскажите, есть ли какое-то приемлемое решение. Неохота самому писать все это... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 18:57 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
yackНеобходимо организовать репликацию данных с Informix на MySQL. Опуская нюансы, связанные со сходствами и различиями типов данных в одной и другой СУБД. Informix: 10tc4, Win 2003 MySQL: 5.1 на FreeBSD типы данных: varchar, integer, double(16,2), BLOB Подскажите, есть ли какое-то приемлемое решение. Неохота самому писать все это... А придется. Ну или покупать у кого-то. P.S. Так double или decimal (16, 2) ? Это вообще-то разные типы данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2006, 19:31 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
decimal, конечно... Значит светит мне писать самодельную офф-лайн репликацию? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 10:08 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
yackdecimal, конечно... Значит светит мне писать самодельную офф-лайн репликацию? :(Любопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 10:12 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисЛюбопытно зачем это все нужно? Для вебсайта часть данных будет поставлятся из корп-й бд? В этом случае я бы не делал реплику, брал прямо из информикса. Вопрос спорный. Открывать доступ извне к базе? Мы тоже решили этого не делать. Сервер приложения по расписанию обновляет даные в MySQL. Ну и при необходимости вэб приложение дергает сервер приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 14:25 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Александр ФедоренкоВопрос спорный. Открывать доступ извне к базе?Не вижу ничего страшного в том что вебсервер будет данные брать из корп. бд сквозь фаервол. Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд. Александр Федоренко Мы тоже решили этого не делать. Сервер приложения по расписанию обновляет даные в MySQL. Ну и при необходимости вэб приложение дергает сервер приложения.Т.е. теоретически вебприложение может инициировать в сервере приложений совсем не то что вы задумали? Будет тоже самое, что и выше? А поставить рядом с вебсервером еще один информикс и настроить ER репликацию с корпоративным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2006, 14:35 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Журавлев ДенисНе вижу ничего страшного в том что вебсервер будет данные брать из корп. бд сквозь фаервол. Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд. Т.е. теоретически вебприложение может инициировать в сервере приложений совсем не то что вы задумали? Будет тоже самое, что и выше? А поставить рядом с вебсервером еще один информикс и настроить ER репликацию с корпоративным? Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится. А через сервер приложения сделать несанкционированное ну очень не просто, я так думаю, во-всяком случае. Тем более, что он у нас все-равно есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 12:53 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Вообще-то - тема была моя :) Но ситуация точно такая, как описано в предыдущем посте. Только вот по планировщику - не совсем хорошее решение. Нужна именно on-line репликация. 2 минуты - это уже значительная задержка. такова специфика... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:02 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Чем не устраивает вариант: "Или вебсервер будет брать данные сквозь фаервол из сервера приложений который будет брать из корп. бд."? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:04 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
В любом случае, если не использользовать 3-х уровневую архитектуру с AS (или промышленным или своим) - любая схема в итоге сводится к такой. Иницииатором только может быть или внешний или внутренний, но схема аналогична. реплицировать нужно около 20 таблиц, для которых всю логику необходимо будет прописать руками :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:30 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Можно посмотреть в сторону WebSphere MQ. Для informix есть MQ datablade. В хранимой процедуре или тригере кидаем в очередь сообщений данные. На другой стороне MQ получает данные и запускает по приходу сообщения процесс который вставляет данные в MySQL. Я бы для этого DB2 использовал так как там есть уже написанный агент который запускает по приходу сообщения хранимую процедуру в качества параметра которой передается сообщение или значения из сообщения. + Быстро и гарантированно данные будут попадать на сервер который стоит рядом с Web -WebSphere MQ стоит денег ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 18:41 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится. Тут, как понимаете, вариантов немного. Или, всё-таки, вебсервер имеет коннект (ну, пусть не к базе, а, например, к самонаписанному на, например, перле, "серверу приложений"), который по переданным ему в tcp-соединении с вебсервера параметрам делает тот или иной execute procedure (только упаси боже, не select - а то дыры замаетесь латать) в информиксе и возвращает данные обратно вебсерверу. Или на 20 таблиц Вы вешаете 20*3 триггеров, которые по каждому изменению/вставке/удалению, например, запускают какой-либо system(), написанный, например, на том же перле, который эти данные вынимает из базы, складывает во временный буфер и запускает фиговину, которая данные из этого буфера будет пихать в мыскль (ни в коем случае не сам пихает - а то по малейшему таймауту соединения будет полная фигня с исходными транзакциями). Обе схемы у меня работали. В случае триггеров, сами понимаете, объём всех тех race conditions, которые надо предусмотреть, больше в разы. Поэтому когда таблиц стало 2 вместо 1, я счёл за благо пойти по дороге номер 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 10:35 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Ходили мы уже этими двумя дорогами. С триггерами хорошо, но ужасно неудобно что-то менять. И стремно... Хочется, понимаете, чего-нибудь промышленного.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 16:42 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Nikolay KulikovМожно посмотреть в сторону WebSphere MQ. Для informix есть MQ datablade. В хранимой процедуре или тригере кидаем в очередь сообщений данные. На другой стороне MQ получает данные и запускает по приходу сообщения процесс который вставляет данные в MySQL. Я бы для этого DB2 использовал так как там есть уже написанный агент который запускает по приходу сообщения хранимую процедуру в качества параметра которой передается сообщение или значения из сообщения. + Быстро и гарантированно данные будут попадать на сервер который стоит рядом с Web -WebSphere MQ стоит денег А если внешний процесс сделает роллбэк? А сообщение уже ушло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 15:37 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Ilya Kulagin Вэб сервер у провайдера, БД у нас. Не хочется логин к базе размещать у провайдера. Да и данные вэб серверу нужны далеко не все. Разместить информикс у провайдера вряд ли получится. Тут, как понимаете, вариантов немного. Или, всё-таки, вебсервер имеет коннект (ну, пусть не к базе, а, например, к самонаписанному на, например, перле, "серверу приложений"), который по переданным ему в tcp-соединении с вебсервера параметрам делает тот или иной execute procedure (только упаси боже, не select - а то дыры замаетесь латать) в информиксе и возвращает данные обратно вебсерверу. Или на 20 таблиц Вы вешаете 20*3 триггеров, которые по каждому изменению/вставке/удалению, например, запускают какой-либо system(), написанный, например, на том же перле, который эти данные вынимает из базы, складывает во временный буфер и запускает фиговину, которая данные из этого буфера будет пихать в мыскль (ни в коем случае не сам пихает - а то по малейшему таймауту соединения будет полная фигня с исходными транзакциями). Обе схемы у меня работали. В случае триггеров, сами понимаете, объём всех тех race conditions, которые надо предусмотреть, больше в разы. Поэтому когда таблиц стало 2 вместо 1, я счёл за благо пойти по дороге номер 1. аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции. Так делать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 15:39 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
cpr аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции. В смысле - нельзя сделать триггер, который запустится до commit. Ну, нельзя. И что здесь неправильного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 17:59 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Ilya Kulagin cpr аналогично, system из триггера пихнул изменения, но клиентская программа сделала откат тразакции. В смысле - нельзя сделать триггер, который запустится до commit. Ну, нельзя. И что здесь неправильного? почему нельзя? можно триггер foreach row сработает как раз до коммита. Дело в том, что после передачи сообщения об изменениях, отловленных триггером необходимо еще передавать коммит во внешнюю систему для того чтобы не произошло рассинхронизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 18:17 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Э не друг CPR. Что в DB2 что в Informix MQ Datablade если ты работаешь с MQ у тебя будет 2 фазный commit. В случае с репликаций Транзакции которые в логе не завершились commit тоже не передадутся как сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 18:47 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Nikolay KulikovЭ не друг CPR. Не понял, вы меня ни с кем не путаете? Nikolay KulikovЧто в DB2 что в Informix MQ Datablade если ты работаешь с MQ у тебя будет 2 фазный commit. В случае с репликаций Транзакции которые в логе не завершились commit тоже не передадутся как сообщения. Нифига не понял, а причем тут репликация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 22:00 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Извини за фамильярность. Репликация имелась в виду DB2-aя через MQ. Она когда обрабатывает лог она проверят транзакция завершилась Commit или нет. Соответсвенно если не завершилась то сообщения не отправляются. p.s. по мне так проще было ER наладить и отказаться от MySQL, у Informix неплохой драйвер для php. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 12:16 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Nikolay KulikovИзвини за фамильярность. без проблем Nikolay Kulikov Репликация имелась в виду DB2-aя через MQ. Она когда обрабатывает лог она проверят транзакция завершилась Commit или нет. Соответсвенно если не завершилась то сообщения не отправляются. драйвер для php. Тогда это несколько не в тему, поскольку обсуждается ситуация, когда нет возможности гетерогенной транзакции. Если есть соответствующий Informix Gateaway manager, то вообще больше ничего не нужно - обращайся к внешней таблице, как к внешней БД Informix и все получится. Nikolay Kulikov p.s. по мне так проще было ER наладить и отказаться от MySQL, у Informix неплохой драйвер для php. На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 14:37 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
cpr Тогда это несколько не в тему, поскольку обсуждается ситуация, когда нет возможности гетерогенной транзакции.Я так понимаю что MQ как раз и решает проблему двухфазной фиксации в гетерогенной среде. И он действительно поможет в данном случае, но я не верю что оно заработает с первого раза :), плюс денег стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 14:53 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
cpr На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать.Видимо ТЗ у них (или религия) -- ни одного листен порта снаружи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 14:55 |
|
||
|
Репликация данных Informix => MySQL
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис cpr На самом деле лучший вариант брать напрямую из Informix, как предлагал камрад Журавлев Денис. Не понимаю чего здесь бояться, т.к. каким способом не свяжи, но машины должны быть как то соединены между собой, не дискетой же они будут файлы таскать.Видимо ТЗ у них (или религия) -- ни одного листен порта снаружи. Подозреваю, что для гетерогенной транзакции нужна двухсторонняя связь между серверами так же как и для двухфазной транзкции Informix. Так что если они хотят снаружи все порты закрыть, то не знаю каким образом они работать собираются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=33987367&tid=1608591]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 301ms |

| 0 / 0 |
