Question

Auparavant, je posté une question pour que je puisse confirmer notre version actuelle (quoique archaïque) de Informix ici:

Comment identifier la version Informix sur Solaris?

(Merci Jonathan et RET pour la compensation que jusqu'à)

Nous prévoyons certainement la mise à niveau, mais nous discutons d'abord si elle serait plus logique de passer à Oracle ou Sybase à ce moment. quelles sont vos opinions a ce sujet? Je suis convaincu que si les 3 SGBDR ont leur propre caractère unique, ils doivent couvrir tout le même terrain essentiellement. Alors, comment fait-on décider quelle base de données à utiliser?

Le kicker est que je dois savoir si nous mettons à jour Informix (actuellement en utilisant 7,13), aurons-nous besoin de modifier nos programmes C sql embarqués? Dans le cas contraire, il fait beaucoup de sens pour coller avec Informix. Parce que si nous y sommes allés avec Sybase / Oracle etc, nous aurions beaucoup de travail sur nos mains pour mettre à jour les programmes d'arrière-plan.

Mais si le passage à une autre base de données peut offrir un grand retour en comparaison alors nous allons encore examiner. Je me réjouis d'entendre vos opinions.

Était-ce utile?

La solution

Je suis un observateur tendancieux (je travaille pour IBM Informix) - traiter mes commentaires avec prudence

.

Si vos applications sont écrites dans Informix ESQL / C, vous devez faire une intervention chirurgicale majeure pour les déplacer vers d'autres systèmes. Vous devrez décider quelle interface alternative à utiliser - votre choix multi-plateforme (avec C comme langue de base) est ODBC, mais Oracle fournit l'OCI et Sybase fournit les TDS comme alternatives

.

Par contre, avec Informix ESQL / C, une mise à niveau vers la version actuelle (Informix ClientSDK 3,50, contenant ESQL / C 3,50, qui est plus récente que la ESQL / C 6.00 que vous utilisez actuellement ) devrait être indolore, sauf si vous êtes sorti de votre façon d'écrire du mauvais code.

Même simplement la migration des données peut être un peu traumatisant - pas si invinciblement. En partie, la complexité dépend des types de données que vous utilisez. (Chaînes de caractères migrent facilement, les valeurs de date et d'heure moins facilement, par exemple.) Mais la migration des applications, il faudrait beaucoup de travail, comme vous le dites, à moins que vous étiez extraordinairement prémonitoire et écrit une très bonne couche d'abstraction de données

.

Une mise à niveau vers Informix SE 7.26 serait un doux euphémisme - obtenir le logiciel, l'installer, pointez votre base de données existante. Vous voudrez probablement recompiler vos programmes à utiliser plus CSDK moderne, mais vous pouvez le faire progressivement avec soin (deux valeurs INFORMIXDIR, l'un pour l'ancien code, un pour le nouveau).

Une mise à jour Informix Dynamic Server (IDS) 11,50 vous obligerait à exporter les données (DB-Export) de SE et l'importer (DB-Import) en IDS. Ce serait aussi très simple, une fois que vous avez IDS et en cours d'exécution. Obtenir IDS et en cours d'exécution prend plus d'effort que SE, mais il est pas si difficile.

Il est clair que ma recommandation est de rester sur place avec Informix. La décision vous appartient, bien sûr.


  

Avec IDS, devrions-nous modifier le code ou tout simplement recompiler?

IDS est très étroitement liée à SE, mais ils sont différents. IDS fournit un surensemble presque stricte de la fonctionnalité SE. Les endroits que je peux penser où il y a des différences sont surtout des choses de cas limite:

  • S'a la syntaxe supplémentaire pour CREATE TABLE pour localiser les fichiers C-ISAM pour la base de données; IDS a un ensemble tout à fait différent des extensions. CREATE TABLE de base est le même (si IDS a des types qui se ne pas, comme VARCHAR), mais les différents ornements sont.
  • S'a CREATE AUDIT AUDIT et DROP et IDS ne (il a d'autres installations d'audit).
  • S'a COMMENCE LA BASE DE DONNÉES et BASE DE DONNÉES ROLLFORWARD; IDS ne (récupération et l'exploitation forestière dans IDS est différent).

La zone principale qui peut causer des problèmes est la gestion des transactions. IDS a unlogged, connecté et base de données 'LOG MODE ANSI', tout comme SE. Dans IDS, nous vous encourageons à utiliser une base de données Connectée - qui serait une recommandation forte. IDS fournit des états atomiques dans une base de données - soit connecté les travaux de déclaration dans son ensemble ou il ne parvient dans son ensemble. Cependant, de nombreuses applications SE ne sont pas écrites avec des transactions à l'esprit. Il y a certaines choses que vous ne pouvez pas faire quand il y a des transactions sur la base de données, telles que l'ouverture d'un curseur pour la mise à jour en dehors du cadre d'une transaction. C'est ce qui a tendance à mordre le code migration de SE IDS. Vous pouvez également ne se verrouille pas une table, sauf dans une transaction, et vous ne pouvez pas déverrouiller une table, sauf par archivage ou l'annulation.

Combien d'un problème, ce sera dépend de ce que vous utilisez dans SE et comment les programmes ont été conçus (si elles ont été conçues plutôt que jetés ensemble). Une base de données IDS et unlogged une base de données SE unlogged sont très proches - et vous pourriez passer d'un à l'autre. Mais IDS peut faire des choses (comme la réplication) que lorsque les bases de données sont enregistrées, et vous devriez viser à l'aide de bases de données enregistrées.

Cependant, la migration vers CSDK 3,50 doit être juste une recompilation à moins que vous avez réussi à faire quelques vraiment atrocely choses horribles.

Autres conseils

Les rumeurs de la mort de Informix sont grandement exagérées.

Avec l'investissement dans le code embarqué que vous avez, toute économie de prix de la vignette apparente à avoir de passer à la marque O ou S marque serait très rapidement disparaître des coûts de réaménagement. C'est un fait de la vie: J'ai vu des projets brûlent 100K $ + sur redéveloppement pour sauver 20K $ P.A. en matière de licences. Ce n'est pas l'argent bien dépensé.

Vous voulez être très, très sûr que l'interrupteur de SGBDR allait offrir quelque chose que vous ne pouvais vraiment pas obtenir coller avec ce que vous avez. Parce que le risque (d'une expérience amère - je me suis battu contre long et dur). Est que vous pouvez dépenser une fortune en dollars et temps juste courir sur place, sinon revenir en arrière

Si vous allez à l'étape en arrière et regarder votre problème de manière globale, je pense que vous seriez d'évaluer beaucoup mieux les possibilités de nouvelles, couplées de façon lâche, les architectures de bases de données agnostique que la permutation d'un modèle intégré pour une autre. Cela vous donnera une plus grande flexibilité sur la piste.

L'espoir qui aide.

Nous soutenons DB Informix depuis des années à l'aide GeneXus. Informix est un grand DB, mais il n'y a pas beaucoup d'outils autour de lui pour aider à construire de manière agile. Je sais que de nombreux magasins Informix qui utilisent uniquement le GeneXus IDE pour créer des applications Web et des applications de téléphones intelligents. Si vous ne l'avez pas entendu parler de GeneXus, vérifier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top