Обновление Informix – перейти на Oracle, Sybase или остаться с Informix?

StackOverflow https://stackoverflow.com/questions/697083

  •  22-08-2019
  •  | 
  •  

Вопрос

Ранее я разместил здесь вопрос, чтобы подтвердить нашу текущую (хотя и устаревшую) версию Informix:

Как определить версию Informix в Solaris?

(Спасибо Джонатану и RET за разъяснения)

Мы определенно планируем обновление, но сначала обсуждаем, имеет ли смысл сейчас перейти на Oracle или Sybase.Каково ваше мнение по этому поводу?Я убежден, что, хотя все три БРДМ обладают своей уникальностью, все они по существу должны охватывать одну и ту же тему.Так как же решить, какую базу данных использовать?

Самое интересное: мне нужно знать, если мы обновим Informix (в настоящее время используем 7.13), нужно ли нам будет модифицировать наши встроенные программы sql C?Если нет, то имеет смысл придерживаться Informix.Потому что, если бы мы выбрали Sybase/Oracle и т. д., у нас было бы много работы по обновлению серверных программ.

Но если переход на другую базу данных может принести большую отдачу по сравнению с этим, мы все равно рассмотрим этот вариант.Я с нетерпением жду ваших мнений.

Это было полезно?

Решение

Я предвзятый наблюдатель (работаю в IBM на Informix) - отнеситесь к моим комментариям с должной осторожностью.

Если ваши приложения написаны на Informix ESQL/C, вам придется проделать серьезную операцию, чтобы перенести их в другие системы.Вам нужно будет решить, какой альтернативный интерфейс использовать: ваш кросс-платформенный выбор (с C в качестве основного языка) - ODBC, но Oracle предоставляет OCI, а Sybase предоставляет TDS в качестве альтернативы.

В отличие от Informix ESQL/C, обновления до текущей версии (Informix ClientSDK 3.50, содержащей ESQL/C 3.50, которая является более поздняя версия, чем ESQL/C 6.00, которую вы сейчас используете) должна быть безболезненной, если только вы не стараетесь писать плохой код.

Даже простой перенос данных может оказаться немного травматичным, но это не так уж и непреодолимо.Частично сложность зависит от того, какие типы данных вы используете.(Строки символов легко переносятся;например, значения даты и времени сложнее.) Но миграция приложений потребует, как вы говорите, большой работы, если только вы не обладаете необычайной дальновидностью и не написали действительно хороший уровень абстракции данных.

Обновление до Informix SE 7.26 не составит труда — получите программное обеспечение, установите его, направьте его на существующую базу данных.Вероятно, вы захотите перекомпилировать свои программы для использования более современного CSDK, но вы можете делать это постепенно, осторожно (два значения INFORMIXDIR, одно для старого кода, одно для нового).

Для обновления до Informix Dynamic Server (IDS) 11.50 вам потребуется экспортировать данные (DB-Export) из SE и импортировать их (DB-Import) в IDS.Это тоже будет очень просто, если у вас запущена IDS.Установка и запуск IDS требует больше усилий, чем SE, но это не так уж и сложно.

Очевидно, я рекомендую оставаться с Informix.Решение, конечно, за вами.


При использовании IDS нам придется вносить изменения в код или просто перекомпилировать?

IDS очень тесно связан с SE, но они разные.IDS предоставляет почти строгий расширенный набор функций SE.Места, о которых я могу думать, где есть различия, - это в первую очередь крайние случаи:

  • SE имеет дополнительный синтаксис для CREATE TABLE для поиска файлов C-ISAM для базы данных;У IDS совершенно другой набор расширений.Базовый CREATE TABLE тот же (хотя в IDS есть типы, которых нет в SE, например VARCHAR), но украшения разные.
  • У SE есть CREATE AUDIT и DROP AUDIT, а у IDS нет (у него есть другие возможности аудита).
  • SE имеет START DATABASE и ROLLFORWARD DATABASE;IDS нет (восстановление и вход в IDS разные).

Основная область, которая может вызвать проблемы, — это управление транзакциями.IDS имеет нерегистрируемую, регистрируемую базу данных и базу данных «LOG MODE ANSI», как и SE.В IDS рекомендуется использовать регистрируемую базу данных — это будет настоятельной рекомендацией.IDS предоставляет атомарные операторы в регистрируемой базе данных — оператор либо работает целиком, либо не работает в целом.Однако многие SE-приложения написаны без учета транзакций.Есть некоторые вещи, которые нельзя делать при наличии транзакций в базе данных, например открывать курсор для обновления вне области транзакции.Это то, что имеет тенденцию сдерживать миграцию кода с SE на IDS.Кроме того, вы не можете заблокировать таблицу, кроме как в транзакции, и вы не можете разблокировать таблицу, кроме как с помощью COMMIT или ROLLBACK.

Насколько это будет проблемой, зависит от того, что вы использовали в SE и как были разработаны программы (если они были разработаны, а не собраны вместе).Нерегистрируемая база данных IDS и нерегистрируемая база данных SE очень близки, и вы можете перейти от одной к другой.Но IDS может что-то делать (например, репликацию) только тогда, когда базы данных регистрируются, и вам следует стремиться использовать регистрируемые базы данных.

Однако переход на CSDK 3.50 должен представлять собой просто перекомпиляцию, если только вам не удалось совершить действительно мучительно ужасные вещи.

Другие советы

Слухи о кончине Informix сильно преувеличены.

При имеющихся у вас инвестициях во встроенный код любая очевидная экономия затрат, которую можно получить от перехода на бренд O или бренд S, очень быстро исчезнет в затратах на перепроектирование.Это просто факт жизни:Я видел, как проекты сжигали более 100 тысяч долларов на реконструкцию, чтобы сэкономить 20 тысяч долларов в год.в лицензировании.Это не зря потраченные деньги.

Вы должны быть очень, очень уверены, что переход на СУРБД предложит что-то, чего вы действительно не сможете достичь, придерживаясь того, что у вас есть.Потому что риск (по горькому опыту - я с ним долго и упорно боролся) состоит в том, что можно потратить целое состояние в долларах и времени, просто бегая на месте, а то и двигаясь назад.

Если вы собираетесь сделать шаг назад и взглянуть на свою проблему целостно, я думаю, вам будет гораздо лучше оценить возможности новых, слабосвязанных, не зависящих от базы данных архитектур, чем заменять одну встроенную модель на другую.Это обеспечит вам гораздо большую гибкость в дальнейшем.

Надеюсь, это поможет.

Мы уже много лет поддерживаем Informix DB, используя GeneXus.Informix — отличная база данных, но вокруг нее не так уж много инструментов, которые могли бы помочь в гибком построении.Я знаю множество магазинов Informix, которые используют GeneXus IDE только для создания веб-приложений и приложений для смартфонов.Если вы не слышали о GeneXus, проверьте это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top