Esse artigo faz parte da revista SQL Magazine edição 56. Clique aqui para ler todos os artigos desta edição

img

Clique aqui para ler esse editorial em PDFimagem_pdf.jpg

MySQL

Utilizando o MySQL Migration Toolkit para a Migração de Dados

 

Com a disseminação dos sistemas de informação, tornou-se comum a existência de vastos repositórios de dados contendo informações acerca das mais variadas áreas de conhecimento. Dessa forma, é cada vez mais comum a adoção de variados sistemas de informação com o intuito de controlar os processos produtivos de cada setor da empresa. Na prática, há uma miscelânea de dados correlacionados, que em geral são armazenados em bases de dados e Sistemas de Gerenciamento de Banco de Dados (SGBD) distintos. Para ilustrar, pode-se ter um sistema baseado em Oracle para o controle de vendas e clientes, enquanto um sistema baseado em SQL Server trata das informações relacionadas aos funcionários da empresa. Finalmente, os sistemas de venda pela Internet são construídos baseados na arquitetura LAMP (Linux/Apache/MySQL/PHP,Perl,Python), mantendo os dados em uma base MySQL.

Dentro deste contexto, é comum ter-se situações em que é necessário gerar relatórios e fazer análises das correlações existentes nas várias bases de dados existentes na empresa. Nessas situações, o ideal seria ter todos os dados centralizados em um único SGBD, facilitando a extração das informações relevantes.

Além disto, é comum a migração entre sistemas a fim de agregar novas funcionalidades ao processo produtivo, ou até mesmo reduzir custos relativos à manutenção dos mesmos. Neste cenário, é cada vez mais importante ter-se uma ferramenta que auxilie o processo de transferência de dados entre os diversos SGBDs existentes no mercado. Esta tarefa não é trivial, pois apesar de os SGBDs utilizarem uma linguagem padrão, o SQL, nem toda implementação segue à risca o conjunto de regras definidos pelo ANSI/SQL, ou seja, podem existir variações na sintaxe de comandos, bem como nos tipos de suportados por cada SGBD.

A MySQL AB/Sun disponibiliza o MySQL Migration Toolkit (MMT), distribuído sob a licença GPL, que pode ser obtido a partir do endereço http://www.mysql.com/products/tools/migration-toolkit/. Esta ferramenta apresenta mecanismos que permitem migrar bases de dados dos SGBDs mais comuns, por exemplo Oracle, MS SQL Server, Sybase, dentre outros, para um banco de dados MySQL, ou para qualquer outro SGBD suportado.

O objetivo principal deste artigo é prover um passo a passo ilustrando as etapas de migração de uma base de dados do SQL Server para o MySQL. Cada etapa do processo será detalhada apresentando as principais funcionalidades bem como as limitações desta ferramenta.

 

Utilizando um banco de dados exemplo

No decorrer deste artigo será utilizada uma base de dados do SQL Server chamada NorthWind, que pode ser obtida a partir do endereço http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034. Esta base de dados contém algumas tabelas, views e procedures que deverão ser migradas para o MySQL, utilizando o MySQL Migration Toolkit.

Vale ressaltar que este tutorial foi desenvolvido utilizando-se o MS SQL Server 2005, versão Express, o MySQL Migration Toolkit versão 1.1.12, o MySQL versão 5.0.45 e o MySQL Query Browser 1.2.12. Iremos partir do principio de que estes softwares estejam já instalados e funcionando corretamente. Não é propósito deste artigo tratar a instalação deles. Além disto, é importante destacar que os softwares da MySQL AB utilizados na elaboração deste artigo podem ser encontrados no endereço www.mysql.com/downloads.

 

Descrevendo o processo de migração de dados do MySQL Migration Toolkit (MMT)

O MMT tem como objetivo possibilitar a migração dos objetos de banco de dados entre SGBDs diferentes, ou seja, conversão de tabelas, views e registros, e também auxiliar no processo de migração de procedures e triggers. O processo de conversão de rotinas entre SGBDs não é tarefa simples, uma vez que a linguagem utilizada para a construção das mesmas nem sempre são compatíveis entre os diferentes sistemas. Neste caso, o MMT possui uma estrutura flexível que permite a elaboração de scripts contendo instruções para o correto mapeamento dos comandos de uma rotina existente em um SGBD para o sistema de destino. Por exemplo, pode-se criar uma rotina para mapeamento de procedures do Oracle, tratando as suas especificidades, e uma outra rotina para controlar os aspectos inerentes ao SQL Server, uma vez que cada SGBD possui a sua própria estrutura de linguagem para a construção de procedures.

Outra questão importante se refere à manipulação das estruturas de dados, como é o caso dos dados espaciais (GIS – Ver Nota DevMan 1) ou até mesmo os BLOBs. Neste caso, os tipos de dados podem não ser compatíveis entre o SGBD de origem e o de destino. Assim, esta mesma estrutura de scripts do MMT provê recursos para que estes tratamentos específicos sejam feitos por uma rotina voltada para os SGBDs envolvidos no processo.

 

Nota DevMan 1. GIS – Sistema de Informação Geográfica (Bancos de Dados Geográficos)

Bancos de Dados Geográficos: São bancos de dados preparados para armazenar dados sobre informações espaciais. São comumente chamados de Sistemas de Informações Geográficas (SIG). Este tipo de banco de dados tem o intuito manipular um imenso volume de informações de grande complexidade, como mapas e imagens de satélite.

 

...

Quer ler esse conteúdo completo? Tenha acesso completo