3

以前に質問を投稿したので、現在の (古風ではありますが) Informix のバージョンをここで確認できます。

Solaris で Informix のバージョンを確認するにはどうすればよいですか?

(解決してくれたJonathanとRETに感謝します)

間違いなくアップグレードを計画していますが、現時点で Oracle または Sybase に移行する方が合理的かどうかを最初に検討しています。これについてどう思いますか。3 つの RDBM にはすべて独自の独自性がありますが、基本的にはすべて同じ分野をカバーしているに違いないと私は考えています。では、どのデータベースを使用するかを決定するにはどうすればよいでしょうか。

大きなキッカーは、Informix (現在 7.13 を使用) をアップグレードするかどうかを知る必要があることです。組み込みの sql C プログラムを変更する必要がありますか? そうでない場合は、Informix を使い続けるのが理にかなっています。Sybase/Oracle などを使用すると、バックエンド プログラムを更新するために多くの作業が必要になるためです。

しかし、別のデータベースに切り替えると比較して大きな利益が得られる場合は、引き続き検討します. ご意見をお待ちしております。

4

3 に答える 3

4

私は偏見のある観察者です (IBM の Informix で働いています) - 私のコメントは十分に注意して扱ってください。

アプリケーションが Informix ESQL/C で作成されている場合、それらを他のシステムに移行するには大がかりな手術が必要になります。使用する代替インターフェースを決定する必要があります。クロスプラットフォームの選択 (基本言語として C) は ODBC ですが、Oracle は OCI を提供し、Sybase は代替として TDS を提供します。

対照的に、Informix ESQL/C では、現在のバージョン (現在使用している ESQL/C 6.00 よりも新しい ESQL/C 3.50 を含む Informix ClientSDK 3.50) へのアップグレードは、外出しない限り簡単に行うことができます悪いコードを書く方法の。

単純にデータを移行するだけでも、少しトラウマになるかもしれませんが、耐えられないほどではありません。複雑さの一部は、使用するデータ型によって異なります。(たとえば、文字列は簡単に移行できますが、日付と時刻の値はそれほど簡単ではありません。) しかし、あなたが言うように、アプリケーションの移行には多くの作業が必要になります。

Informix SE 7.26 へのアップグレードは非常に簡単です。ソフトウェアを入手し、インストールして、既存のデータベースを参照してください。より最新の CSDK を使用するようにプログラムを再コンパイルすることをお勧めしますが、注意して段階的に行うこともできます (2 つの INFORMIXDIR 値、1 つは古いコード用、もう 1 つは新しいコード用)。

Informix Dynamic Server (IDS) 11.50 にアップグレードするには、SE からデータをエクスポート (DB-Export) し、それを IDS にインポート (DB-Import) する必要があります。IDS を起動して実行すれば、これも非常に簡単です。IDS を起動して実行するのは、SE よりも手間がかかりますが、それほど難しくはありません。

明らかに、私は Informix を使い続けることをお勧めします。もちろん、決定はあなた次第です。


IDS を使用する場合、コードを変更する必要がありますか?それとも単に再コンパイルする必要がありますか?

IDS は SE と非常に密接に関連していますが、それらは異なります。IDS は、SE 機能のほぼ厳密なスーパーセットを提供します。違いがあると私が考えることができる場所は、主にエッジケースのものです。

  • SE には、データベースの C-ISAM ファイルを検索するための CREATE TABLE への追加の構文があります。IDS には、まったく異なる一連の拡張機能があります。基本的な CREATE TABLE は同じですが (IDS には VARCHAR などの SE にはない型があります)、装飾が異なります。
  • SE には CREATE AUDIT と DROP AUDIT がありますが、IDS にはありません (他の監査機能があります)。
  • SE には START DATABASE と ROLLFORWARD DATABASE があります。IDS にはありません (IDS での回復とログ記録は異なります)。

問題を引き起こす可能性のある主な領域は、トランザクション管理です。IDS には、SE と同様に、ログが記録されていない、ログに記録された「LOG MODE ANSI」データベースがあります。IDS では、ログに記録されたデータベースを使用することをお勧めします。これは強力な推奨事項です。IDS は、ログに記録されたデータベースにアトミック ステートメントを提供します。ステートメントは全体として機能するか、全体として失敗します。ただし、多くの SE アプリケーションは、トランザクションを念頭に置いて作成されていません。トランザクションのスコープ外で更新のためにカーソルを開くなど、データベースにトランザクションがある場合に実行できないことがいくつかあります。これは、SE から IDS に移行するコードに噛み付く傾向があるものです。また、トランザクション以外ではテーブルをロックできず、COMMIT または ROLLBACK 以外ではテーブルをロック解除できません。

これがどの程度の問題になるかは、SE で何を使用していたか、およびプログラムがどのように設計されたかによって異なります (それらが一緒にスローされるのではなく、設計された場合)。IDS のログなしデータベースと SE のログなしデータベースは非常に近く、一方から他方へ移行できます。ただし、IDS は、データベースがログに記録されている場合にのみ (レプリケーションなどの) 処理を実行できるため、ログに記録されたデータベースを使用することを目指す必要があります。

ただし、CSDK 3.50 への移行は、本当に耐え難いほどひどいことを何とかしてこなかった場合を除き、単なる再コンパイルである必要があります。

于 2009-03-30T23:12:50.500 に答える
1

GeneXus を使用して Informix DB を長年サポートしてきました。Informix は優れた DB ですが、アジャイルな方法で構築するのに役立つツールはあまりありません。GeneXus IDE のみを使用して Web アプリやスマートフォン アプリを構築している多くの Informix ショップを知っています。GeneXus について聞いたことがない場合は、チェックしてみてください。

于 2010-12-01T21:59:48.563 に答える