Migre um Banco de Dados do MySQL para o IBM Informix Innovator-C Edition, Parte 1: Comparando o MySQL com o IBM Informix Innovator-C Edition

Se você é usuário do MySQL ou está pensando em usar o MySQL para requisitos de negócios futuros, há motivos convincentes para usar o IBM® Informix® Innovator-C Edition, e não o MySQL. Neste artigo, obtenha uma visão geral de ambos os produtos, que destaca as principais diferenças entre eles, e conheça as vantagens e desvantagens de cada um para os negócios.

Sanjit Chakraborty, Advanced Support Engineer, IBM

Sanjit Chakraborty é membro da equipe Down System and Diagnostics para o suporte técnico do IBM Informix Technical Support, responsável pela manipulação de situações críticas do cliente e pelo desenvolvimento de ferramentas de suporte para uso da organização de suporte técnico. Sanjit trabalha há mais de 15 anos no segmento de mercado de tecnologia da informação, em várias funções. É administrador do sistema certificado pela IBM para Informix e DB2 e especialista designado no assunto de arquivamento. Sanjit desenvolveu diversos recursos do Informix e ferramentas de Down System Support. Também é autor e revisor técnico de um grande número de artigos técnicos, tutoriais e materiais para cursos de treinamento sobre diversos tópicos do Informix.



01/Mar/2011

Introdução

As razões mais comuns citadas para a escolha do MySQL como servidor de banco de dados incluem "é fácil de usar" e "é grátis". Entretanto, você sabia que o IBM Informix oferece uma edição com as mesmas qualidades e mais? O Informix Innovator-C Edition é um servidor de banco de dados Informix que fornece um ambiente de banco de dados robusto e potente, capaz de suportar as cargas de trabalho de produção mais exigentes. Esta edição fornece as funcionalidades de processamento de dados mais usadas, inclusive replicação de dados distribuídos, e opções para obter disponibilidade contínua de dados, como armazenamento em cluster e a grade flexível Informix, introduzida recentemente.

O Informix Innovator-C Edition oferece uma base sólida para o desenvolvimento de soluções on demand para online transaction processing (OLTP) de alto volume, e tempo de resposta de transações próximo de zero, com alta confiabilidade, baixo custo de administração e gerenciamento remoto de servidores Informix. O Informix Innovator-C Edition tem "qualidade profissional", mesmo assim, é fácil de usar e executa em uma ampla variedade de plataformas, incluindo as versões mais populares das plataformas Linux® e Microsoft® Windows® . A melhor parte é que o download e a implementação do Informix Innovator-C Edition são absolutamente grátis! A redistribuição requer um contrato de licença separado. O Informix Innovator-C Edition está pronto para download e uso para desenvolvimento, teste e cargas de trabalho de produção para os usuários finais, sem qualquer tarifa de licença.

Em termos de recursos, o MySQL 5.1 e o Informix Innovator-C Edition são semelhantes em vários aspectos, como tipos de dados suportados, procedimentos armazenados, funções, soluções de alta disponibilidade, hot backups, cold backups, procura de texto completa, índices, visualizações, e mais. O MySQL e o Informix Innovator-C Edition são semelhantes no que diz respeito à arquitetura de servidor dedicado baseada em encadeamento. Ambos os sistemas de banco de dados suportam chaves primárias juntamente com índices de chaves, que permitem acelerar as consultas e limitar as entradas. O Informix continua à frente no que diz respeito ao otimizador baseado em custo e na otimização de consultas complexas, alta simultaneidade e utilização de caixas grandes de SMP. O Informix também permanece à frente em áreas como armazenamento em cluster, replicação de dados e computação em grade.


Diferenças comuns evidentes

Além do fato de o MySQL ser um produto de software livre, quais são as diferenças entre estes dois produtos de banco de dados, e qual deles é o melhor para você?

Software livre ou patenteado

As diferenças entre estes dois bancos de dados se iniciam com a característica de software livre do MySQL, em oposição à estrutura patenteada do Informix. O MySQL é um mecanismo de banco de dados extensível, de armazenamento aberto. O MySQL tem sua origem na tradição do software livre, na qual o desenvolvimento de produtos segue o modelo "faça você mesmo" e "produção artesanal", ao passo que o Informix fornece diversos caminhos nomeados e comprovados para resolver problemas específicos. Entretanto, o Informix e o MySQL podem se integrar totalmente a várias linguagens de programação e a outras tecnologias baseadas na Web.

Licenciamento

Ao contrário do que muitos acreditam, os servidores do MySQL nem sempre são grátis. O uso comercial do MySQL requer tarifas de licenciamento. Com a compra do MySQL pela Oracle, o futuro das tarifas de licenciamento do MySQL é incerto. A Oracle advertiu recentemente os clientes a respeito de aumentos de preço não especificados em um futuro próximo, e de planos para eliminar os dois planos de licenciamento de nível baixo, menos caros, para o banco de dados, adequados para organizações de pequeno porte, com orçamentos mais apertados. Consulte a seção Recursos para notícias sobre o possível aumento de custo da licença do MySQL.

A família de produtos Informix oferece edições "para compra" e "grátis". Essas edições são ajustadas, em termos de preço e funcionalidade, para preencher uma ampla variedade de requisitos para empresas de todos os tamanhos. As edições para compra do Informix oferecem alguns modelos de precificação com subcapacidade, dando a você a flexibilidade de comprar somente o que precisa para preencher seus requisitos de serviços de dados sem precisar se preocupar com a energia de processamento total do hardware no qual o Informix está instalado.

Independentemente da edição utilizada, o Informix tem uma arquitetura dinâmica escalável com desempenho, confiabilidade, facilidade de uso e disponibilidade incomparáveis. Em alguns casos, especialmente nas edições grátis, há restrições em relação à amplitude e profundidade da escalabilidade e funcionalidade disponíveis. Entretanto, o Informix Innovator-C Edition é um servidor de dados Informix com funcionalidade completa, que fornece um ambiente de banco de dados robusto e potente, e a funcionalidade de processamento de dados mais utilizada necessária.


Diferenças técnicas

Somente o argumento sobre software livre/patenteado já é um dos motivos mais importantes para que alguns usuários escolham um servidor de banco de dados, e não o outro. No entanto, há algumas diferenças no aspecto técnico. Por exemplo, o MySQL não oferece suporte integral para chaves estrangeiras, ou seja, não tem todos os recursos relacionais do Informix, que é um banco de dados relacional completo. Algumas versões do MySQL também não têm suporte integral para procedimentos armazenados — a maior desvantagem é o sistema MyISAM, que não suporta transações.

Desempenho

Em termos de desempenho, o Informix é claramente o líder, devido principalmente ao online transaction processing (OLTP) de alto volume, integração de aplicativos e a pequena ocupação de espaço, ao usar pouco espaço em disco, memória e CPU. Com um histórico comprovado de estabilidade e confiabilidade, o Informix é uma opção óbvia para varejistas, bancos e empresas de comunicações.

A força do MySQL é o fato de que a arquitetura "plug-in" possibilita os recursos extensíveis disponíveis a partir de outros servidores de banco de dados. E, talvez, esta também seja a maior desvantagem do MySQL. A maioria desses recursos é projetada para alguma funcionalidade "chamativa", que é frequentemente oferecida à custa de outros elementos indispensáveis. Nesse caso, o preço é a complexidade e os recursos atrapalham a memória e o armazenamento, o que geralmente prejudica o desempenho.

Segurança

O MySQL fornece mecanismos de segurança simples e muito efetivos, mas é amplamente aceito que o modelo de segurança do MySQL não é tão elaborado quanto o de outros bancos de dados bastante conhecidos. A instalação padrão do MySQL, especificamente a senha de raiz vazia e a possível vulnerabilidade ao estouro de buffer, faz do servidor de banco de dados um alvo fácil para os ataques.

O Informix integra funções de segurança do sistema operacional para autenticação dos usuários e permissões de rede. A separação de funções divide a obrigação da segurança entre os administradores. A auditoria permite que o servidor de banco de dados registre as operações sensíveis realizadas pelos usuários e administradores, para analisar e identificar maus usos do sistema. O controle de acesso discricionário (DAC) é o mecanismo primário de controle de acesso, que possibilita o acesso a objetos de SQL usando privilégios e funções.

Recuperação

Em termos de recuperação, o Informix tem uma grande vantagem sobre o MySQL, que tende a ser um pouco limitado com a configuração do sistema MyISAM. Com o MyISAM, é obrigatório ter uma fonte de alimentação ininterrupta (UPS) se há necessidade de uma operação ininterrupta. Em caso de indisponibilidade de energia, corre-se o risco de distorção e perda de dados críticos em um banco de dados do MySQL. Com o Informix, a distorção de dados é muito improvável, já que os dados passam regularmente por diversos pontos de verificação. Além disso, o Informix mantém um registro do processo para que ocorra uma recuperação bem-sucedida, mesmo se o sistema encerrar inesperadamente.


Visão geral e comparação arquitetural

Há muitas diferenças significativas entre o Informix Innovator-C Edition e o MySQL. Vamos começar nos focando em alguns aspectos arquitetônicos fundamentais nos quais esses servidores de banco de dados divergem ou se assemelham. (Observação: no momento em que este artigo foi escrito, foram usadas as versões MySQL 5.1 e Informix Innovator-C Edition 11.7 para fins de comparação.

  • Modelo arquitetônico
    • O Informix Innovator-C Edition e o servidor de banco de dados MySQL usam uma arquitetura de servidor dedicado baseada em encadeamento.
  • Acesso de armazenamento
    • O Informix Innovator-C Edition usa o RSAM como o método de acesso de armazenamento.
    • O banco de dados MySQL usa a arquitetura de armazenamento plugável.
  • Modelo de espaço de tabela
    • Os espaços de tabela do Informix Innovator-C Edition podem englobar diversos bancos de dados.
    • O MySQL usa o espaço de tabela para os mecanismos de armazenamento InnoDB e NDB.
  • Suporte para esquema
    • O Informix Innovator-C Edition tem suporte preciso para esquema.
    • O MySQL não tem suporte preciso para esquema. O esquema no MySQL pode ser considerado um banco de dados do MySQL.
  • Diferenciação de maiúsculas e minúsculas nos nomes de objeto de banco de dados
    • Com o Informix Innovator-C Edition, as tabelas e colunas não distinguem maiúsculas e minúsculas no UNIX e no Windows, e são armazenadas em caixa-baixa.
    • O MySQL usa nomes com distinção de maiúsculas e minúsculas para bancos de dados, tabelas e colunas no Linux.
  • Autenticação
    • O Informix Innovator-C Edition realiza autenticação utilizando usuários/funções de banco de dados. Fornece controles de acesso e níveis de criptografia para todas as dimensões do banco de dados, incluindo linhas individuais, colunas, tabelas ou bancos de dados. Também é possível usar vários esquemas de segurança externos, como o sistema operacional, PAM, Kerberos, Active Directory, etc.
    • O MySQL implementa autenticação no nível do banco de dados, e as senhas são criptografadas.
  • Arquitetura de instâncias
    • O Informix Innovator-C Edition fornece a flexibilidade de possuir várias instâncias do servidor de banco de dados em uma única máquina, e uma instância pode gerenciar diversos bancos de dados.
    • Uma instância do MySQL gerencia diversos bancos de dados, e pode haver várias instâncias do MySQL na mesma máquina.

Figura 1 e Figura 2 descrevem diagramas arquitetônicos do MySQL e do Informix Innovator-C Edition. Desenhamos diagramas arquitetônicos referentes ao MySQL de acordo com o nosso conhecimento, após lermos diversos documentos. Se você encontrar uma discrepância, avise-nos para que possamos corrigi-la.

MySQL

O MySQL e o Informix Innovator-C Edition usam uma arquitetura baseada em encadeamento. Uma instância de MySQL, como se pode ver em Figura 1, pode gerenciar diversos bancos de dados. Há um catálogo do sistema comum chamado INFORMATION_SCHEMA compartilhado por todos os bancos de dados MySQL em uma instância.

As instâncias do Informix Innovator-C Edition são semelhantes, mas incluem o catálogo do sistema, espaços de armazenamento, buffer pools, encadeamentos, etc.

Pode-se visualizar uma única instância com vários bancos de dados no MySQL e no Informix Innovator-C Edition. Quando há diversas instâncias de MySQL em uma máquina, e cada instância gerencia diversos bancos de dados, é possível migrar cada instância do MySQL como uma instância do Informix Innovator-C Edition.

Os mecanismos plugáveis de armazenamento são um dos recursos interessantes do MySQL. É possível escolher o mecanismo de armazenamento MyISAM, InnoDB, Archive, Federated, Memory, Merge, Cluster, NDB ou Custom. Cada mecanismo de armazenamento tem características diferentes, e é possível escolher um mecanismo de armazenamento em especial com base em requisitos específicos. Para fins de comparação, constatamos que o InnoDB é o mais próximo de um banco de dados relacional.

Figura 1. Visão geral da arquitetura e dos processos do MySQL
Figure 1 is a high-level design of MySQL architecture and processes. Each client application's request is handled by a mysqld thread on the MySQL server side. Depending on the operation, the mysqld thread uses a different server process to retrieve data from the database using memory.

Um processo do servidor do MySQL (mysqld) pode criar vários encadeamentos:

  • Um encadeamento global (por processo do servidor) é responsável por criar e gerenciar cada encadeamento de conexão do usuário.
  • Cria-se um encadeamento para manipular cada nova conexão do usuário.
  • Cada encadeamento de conexão também realiza autenticação e execução de consultas.
  • No Windows, há um encadeamento de manipulador de canal nomeado que executa o mesmo trabalho que o encadeamento de conexão para solicitações de conexão ao canal nomeado.
  • Um encadeamento de sinal trata os alarmes e força os tempos limites nas conexões que ficaram inativas por muito tempo.
  • Aloca-se um encadeamento para tratar os eventos de encerramento.
  • Há encadeamentos para tratar a sincronização dos servidores escravo e principal para a replicação.
  • Os encadeamentos são usados para a limpeza de tabelas, tarefas de manutenção, etc.

O MySQL usa cache de dados, cache de registro, de chave, de nome do host e de privilégio para o armazenamento em cache e a recuperação de diversos tipos de dados usados por todos os encadeamentos que executam dentro do processo do servidor.

Além disso, o processo principal do MySQL (mysqld) tem encadeamentos para tratar atividades de gerenciamento de banco de dados como backup, restauração, controle de simultaneidade, etc.

O Informix Innovator-C Edition

Figura 2 fornece uma visão geral da arquitetura do Informix Innovator-C Edition. A arquitetura de servidor de banco de dados do Informix Innovator-C Edition se baseia em uma tecnologia avançada que usa de forma eficiente praticamente todos os recursos de software e hardware atuais. Conhecida como Dynamic Scalable Architecture (DSA), a arquitetura explora totalmente a energia de processamento disponível em ambientes de SMP, realizando tipos semelhantes de atividades de banco de dados, como E/S, consultas complexas, desenvolvimentos de índice, recuperação de log, inserções e backups/restaurações. A arquitetura de design da DSA inclui recursos integrados de multiencadeamento, componentes de memória compartilhada dinâmicos e com autoajuste, e possibilidades de armazenamento de dados lógico e inteligente, suportando o uso mais eficiente de todos os recursos do sistema disponíveis.

Os processos do Informix Innovator-C Edition são chamados de processador virtual (VP), pois seu funcionamento é semelhante ao da CPU em um computador. Da mesma forma que a CPU executa diversos processos de sistema operacional para atender a diversos usuários, o processador virtual do Informix executa diversos encadeamentos para atender a diversos aplicativos cliente de SQL.

O processador virtual é um processo que o sistema operacional programa para o processamento. Os processadores virtuais do Informix Innovator-C Edition são multiencadeados, pois executam diversos encadeamentos simultâneos. Figura 2 ilustra o relacionamento dos aplicativos clientes com os processadores virtuais. Um pequeno número de processadores virtuais atende a um número muito maior de aplicativos clientes ou consultas.

Em comparação com um processo de servidor de banco de dados que atende a um único aplicativo cliente, o caráter dinâmico e multiencadeado do Informix fornece as seguintes vantagens:

  • Os processadores virtuais podem compartilhar o processamento.
  • Os processadores virtuais poupam memória e recursos.
  • Os processadores virtuais podem executar processamento paralelo.
  • É possível iniciar processadores virtuais adicionais e terminar processadores virtuais ativos da CPU enquanto o servidor de banco de dados está executando.
  • É possível ligar processadores virtuais a CPUs.

O processador virtual executa encadeamentos em nome de aplicativos clientes de SQL (encadeamentos de sessão), e também para preencher requisitos internos (encadeamentos internos). Na maioria dos casos, para cada conexão de um aplicativo cliente, o Informix executa um encadeamento sqlexec. O Informix executa encadeamentos internos para realizar, entre outras coisas, E/S de banco de dados, E/S de criação de log, limpeza de páginas e tarefas de administração.

O encadeamento de usuários é um encadeamento do servidor de banco de dados que atende a solicitações de aplicativos clientes. Os encadeamentos de usuários incluem encadeamentos de sessão, chamados encadeamentos sqlexec, os encadeamentos primários que o servidor de banco de dados executa para atender a aplicativos clientes.

Figura 2. Visão geral da arquitetura e dos processos do Informix Innovator-C Edition
Figure 2 is a high-level design of Informix architecture and processes. Each client application's request is handled by a sqlexec thread onthe Informix server side. sqlexec threads use different types of VPs, depending on the kind of operation. CPU, AIO, ADM, Crypto, and Java are some examples of VPs. The VPs access data from different storage spaces using shared memory segments.

Comparação dos limites de tamanho de dados

Tablela 1 compara os limites de tamanho de dados do MySQL e do Informix Innovator-C Edition. Esta lista não está completa, mas mostra algumas das limitações mais perceptíveis.

Tablela 1. Limites de tamanho de dados do MySQL e do Informix
MySQLInformix Innovator-C Edition
Tamanho máx. do banco de dadosIlimitado128 PB
Tamanho máx. da tabelaLimites de armazenamento do MyISAM: 256 TB
Limites de armazenamento do Innodb: 64 TB
128 PB
Tamanho máx. da linha64 KB¹32765 bytes
(não incluindo os objetos grandes)
Núm. máx. de colunas por linha4 KB²32765 bytes
Tamanho máx. do BLOB/CLOB4 GB4 TB
Tamanho máx. de CHAR64 KB (texto)32765 bytes
Tamanho máx. de NUMBER64 bytes10^32
Valor mín. de DATE100031/12/1900
Valor máx. de DATE999931/12/9999

1. O InnoDB está limitado a 8000 bytes (não incluindo VARBINARY, VARCHAR, BLOB e colunas de TEXT).
2. O InnoDB está limitado a 1000 colunas.


Conclusão

Este artigo descreveu diversas diferenças de arquitetura entre o MySQL e o Informix, e mostrou algumas diferenças entre as duas tecnologias do banco de dados. A Parte 2 desta série será um tutorial que repassa o processo real da migração. Com um planejamento adequado e a familiarização com o Informix, é possível preparar-se rapidamente para usar uma plataforma de banco de dados sofisticada, escalável e de alto nível: aproveite os benefícios do Informix!

Recursos

Aprender

Obter produtos e tecnologias

  • IBM Migration Toolkit: saiba mais sobre essa ferramenta fácil de usar (ou obtenha a ferramenta), que permite migrar seus dados de uma ampla variedade de bancos de dados de origem para o DB2 ou o Informix, independentemente da plataforma.
  • Crie seu próximo projeto de desenvolvimento com o Versão de testes do software IBM, disponível para download diretamente no developerWorks.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=630183
ArticleTitle=Migre um Banco de Dados do MySQL para o IBM Informix Innovator-C Edition, Parte 1: Comparando o MySQL com o IBM Informix Innovator-C Edition
publish-date=03012011