Pergunta

Antes eu postei uma pergunta para que eu pudesse confirmar a nossa atual (embora arcaico) versão do Informix aqui:

Como você identifica Informix versão no Solaris?

(Obrigado Jonathan e RET por esclarecer isso)

Nós estamos definitivamente pensando em atualizar mas são primeiro discutir se ele faria mais sentido para ir para Oracle ou Sybase neste momento. Quais são suas opiniões sobre isso? É minha convicção que, enquanto todos os 3 RDBMs têm sua própria singularidade, todos eles devem cobrir o mesmo terreno, essencialmente. Então, como se faz para decidir o banco de dados para uso?

A grande retrocesso é preciso saber se atualizar Informix (atualmente usando 7,13), vamos precisar modificar nossos programas SQL incorporado C? Se não, então não faz muito sentido para ficar com Informix. Porque se nós fomos com Sybase / Oracle etc, teríamos um monte de trabalho em nossas mãos para atualizar os programas de back-end.

Mas se mudar para outro banco de dados pode oferecer grande retorno em comparação então vamos ainda considerá-lo. Estou ansioso para ouvir suas opiniões.

Foi útil?

Solução

Eu sou um observador biassed (trabalho I para IBM Informix) - tratar os meus comentários com a devida cautela

.

Se suas aplicações são escritas em Informix ESQL / C, você teria que fazer uma grande cirurgia para movê-los para outros sistemas. Você precisará decidir qual interface alternativa ao uso - sua escolha de plataforma cruzada (com C como a linguagem básica) é ODBC, mas a Oracle fornece a OCI e Sybase fornece a TDS como alternativas

.

Por outro lado, com o Informix ESQL / C, uma atualização para a versão atual (Informix ClientSDK 3,50, contendo ESQL / C 3.50, que é mais recente do que o ESQL / C 6.00 que você utiliza atualmente ) deve ser indolor, a menos que você tenha ido para fora de sua maneira de escrever código ruim.

Mesmo simplesmente migrar os dados pode ser um pouco traumático - não insuperavelmente assim. Em parte, a complexidade depende de que tipos de dados que você usa. (Cadeias de caracteres migrar facilmente; data e hora valores menos facilmente, por exemplo). Mas a migração das aplicações exigiria um monte de trabalho, como você diz, a menos que você foram extraordinariamente presciente e escreveu um realmente bom camada de abstração de dados

.

Uma atualização para o Informix SE 7,26 seria um acéfalo - obter o software, instalá-lo, aponte-o para o seu banco de dados existente. Você provavelmente gostaria de recompilar seus programas para usar o CSDK mais moderno, mas você poderia fazer isso de forma incremental com cuidado (dois valores INFORMIXDIR, um para o código antigo, uma para o novo).

Uma atualização para o Informix Dynamic Server (IDS) 11.50 exigiria que você exportar os dados (DB-Export) a partir de SE e importá-lo (DB-Import) no IDS. Isso seria muito simples também, uma vez que você tem IDS instalado e funcionando. Obtendo IDS instalado e funcionando preciso mais esforço do que o SE, mas não é tão difícil assim.

Claramente, a minha recomendação é para ficar put com Informix. A decisão é sua, é claro.


Com IDS, teríamos de fazer alterações de código ou apenas recompilação?

IDS é muito estreitamente relacionada com SE, mas eles são diferentes. IDS fornece um super conjunto quase estrita de funcionalidade SE. Os lugares que eu posso pensar de onde há diferenças são principalmente coisas caso extremo:

  • SE tem uma sintaxe extra para CREATE TABLE para localizar arquivos C-ISAM para o banco de dados; IDS tem um conjunto completamente diferente de extensões. O básico CREATE TABLE é o mesmo (embora IDS tem tipos que SE não, como VARCHAR), mas os adornos são diferentes.
  • SE tem CRIAR AUDIT e soltar AUDIT e IDS não (tem outros recursos de auditoria).
  • SE tem INÍCIO DATABASE e ROLLFORWARD DATABASE; IDS não (recuperação e registro no IDS é diferente).

A principal área que pode causar problemas é o gerenciamento de transações. IDS não explorada, registrado e banco de dados 'LOG modo ANSI', como faz SE. Em IDS, que são incentivados a usar um banco de dados logged - o que seria uma forte recomendação. IDS fornece declarações atômicas em um banco de dados logged - ou a instrução funciona como um todo ou ele falhar como um todo. No entanto, muitas aplicações SE não são escritos com transações em mente. Há algumas coisas que você não pode fazer quando houver transações no banco de dados, tais como cursor uma aberto para atualização fora do âmbito de uma transação. Isto é o que tende a morder código migrando de SE a IDS. Além disso, você não pode bloquear uma tabela, exceto em uma transação, e você não pode desbloquear uma mesa, exceto por COMMIT ou ROLLBACK.

Como um grande problema este será depende do que você estava usando no SE e como os programas foram desenhados (se eles foram projetados em vez de jogados juntos). Um IDS banco de dados não explorada e um banco de dados não explorada SE estão muito perto - e você pode migrar de um para o outro. Mas IDS pode fazer coisas (como replicação) somente quando os bancos de dados são registrados, e você deve ter como objectivo estar usando bancos de dados registrados.

No entanto, a migração para CSDK 3,50 deve ser apenas uma recompilação, a menos que você conseguiu fazer alguns realmente excruciantecoisas ly horrível.

Outras dicas

Os rumores da morte de Informix são muito exagerados.

Com o investimento no código incorporado que você tem, qualquer custo preço de etiqueta aparente poupança para ser tido de mudar para marca O ou marca S seria muito rapidamente desaparecer em custos de reconstrução. Isso é apenas um fato da vida: Eu vi projetos queimar $ 100K + em remodelação para economizar US $ 20K P.A. no licenciamento. Isso não é dinheiro bem gasto.

Você gostaria de ser muito, muito certo de que o interruptor de RDBMS ia oferecer algo que você realmente não poderia conseguir ficar com o que você tem. Porque o risco (por amarga experiência - Eu lutei contra ele longo e duro). É que você poderia gastar uma fortuna em dólares e tempo apenas correndo no local, se não indo para trás

Se você está indo passo para trás e olhar para o seu problema de forma holística, acho que seria muito melhor para avaliar as possibilidades de arquiteturas mais recentes, de baixo acoplamento, banco de dados agnóstico do que trocar um modelo incorporado para outro. Isso iria fornecer-lhe maior flexibilidade na pista.

Espero que ajude.

Temos vindo a apoiar Informix DB por anos usando GeneXus. Informix é um grande DB mas não há um monte de ferramentas ao seu redor para ajudar a construir de forma ágil. Eu sei que muitas lojas Informix que só usam o GeneXus IDE para aplicações web construir e aplicativos de smartphones. Se você ainda não ouviu falar de GeneXus, check it out.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top