Precisa migrar o SQL Server para o MySQL


22

Eu tenho um banco de dados no SQL Server 2008 em um servidor Windows e quero mover todos os dados para um banco de dados MySQL em um servidor Ubuntu. Eu tentei usar o Assistente para Importação e Exportação do SQL Server com o driver ODBC do MySQL e ele acessa corretamente os dois bancos de dados, mas os arquivos xml contendo as especificações para a conversão de tipos não existiam e as especificações eram muito limitadas para eu criá-las corretamente. Alguém sabe como criar os arquivos de conversão de tipo ou onde obter uma ferramenta melhor para transferir esses dados?


1
Você já viu essa pergunta? Trata-se de replicar dados do MySql para MSSQL. Talvez você encontre algumas dicas lá.
Marian

@ Marian Obrigado pelo link. Usar o servidor MySQL como servidor vinculado no SQL Server parece ser uma solução para o meu problema.
Murgatroid99 6/06/11

1
De quantos dados estamos falando? 5mb? 3 TB?
AaronJAnderson

Eu acho que eram GBs ou 10s de GBs, mas não me lembro porque essa pergunta é de um ano e meio atrás.
murgatroid99

Respostas:


13

Eu tenho duas sugestões:

1) Eu odeio criar produtos comerciais, mas existem ferramentas de US $ 49,00 para migrar o MSSQL para o MySQL

2) Experimente os fóruns de migração MSSQL do MySQL para obter mais sugestões.

UPDATE 2011-06-03 18:03 EDT

Há um produto antigo que foi EOL em janeiro de 2010 chamado MySQL Migration Toolkit . Se você conseguir se apossar dele, poderá usá-lo.

UPDATE 2011-06-03 18:06 EDT

Encontrei os arquivos !!! Aqui está o MySQL Migration Toolkit

UPDATE 2011-06-03 18:11 EDT

Aqui está a visão geral do MySQL Migration Toolkit

UPDATE 2011-06-03 19:08 EDT

Outro produto comercial (US $ 29)

UPDATE 2011-06-03 19:30 EDT

Aqui está uma lista de ferramentas de Freeware que migram o MSSQL para o MySQL.

ATUALIZAÇÃO 15-06-2011 17:47 EDT

Obtenha o WhitePaper (PDF) da Oracle no Guia de migração do Microsoft SQL Server para o MySQL (ainda comercial)

UPDATE 2012-08-21 01:24 EDT

De acordo com esta página da Web do MySQL , a seção MySQL Workbench: Database Migration Wizardafirma que o MySQL Workbench tem a capacidade de migrar objetos de banco de dados do SQL Server para o MySQL.


1
Eu preferiria não usar nenhum produto comercial se eu puder evitá-lo. Tentei usar o Migration Toolkit, mas acho que é incompatível com a versão mais recente do MySQL: as instruções de inserção SQL geradas tinham um número enorme de erros de sintaxe e as tabelas geradas não tinham linhas após a execução do assistente. As ferramentas shareware também parecem ter sido criadas para funcionar com versões mais antigas do MySQL. Obrigado por tentar.
murgatroid99

4

Com base na sugestão de Marian, encontrei esta resposta sobre replicação em outra direção, configurando o servidor MySQL como um servidor vinculado no MS SQL Server. Com o MySQL configurado como um servidor vinculado, eu posso executar consultas SQL nos dois bancos de dados ao mesmo tempo, o que fornece exatamente a funcionalidade necessária para resolver esse problema.


3

Você já pensou em usar o SSIS para esta tarefa? Essa é a ferramenta ETL do SQL Server e possui muitas transformações e lógica que podem ajudá-lo a executar esta tarefa.


O Assistente de Importação / Exportação que mencionei, na verdade, cria pacotes SSIS. O problema que tive foi que o SSIS usa arquivos XML para armazenar dados sobre como converter entre tipos em diferentes sistemas de gerenciamento de banco de dados, e esses arquivos não existiam para o MySQL.
murgatroid99


2

Eu tentei o kit de ferramentas de migração para importar do SQL Server para o MySQL. Mas o SQLyog importou dados externos bons. Eu poderia agendar o processo de importação e também fazer os mapeamentos necessários para importar para uma tabela existente. Baixe aqui .

insira a descrição da imagem aqui


O SQLyog é uma ótima ferramenta, mas o recurso "importar dados externos" é extremamente lento. Como em várias ordens de magnitude mais lentas que o MySQL Workbench. Desejo que os desenvolvedores do SQLyog resolvam o problema, porque a interface é muito mais intuitiva que o Workbench. Mas, a menos que você esteja importando apenas centenas de linhas, esteja preparado para aguardar horas ou possivelmente dias para que a importação seja concluída.
nextgentech

2

Eu recentemente lançou a etlalquimia para realizar essa tarefa. É uma solução de código aberto que permite a migração entre dois bancos de dados SQL com 4 linhas de Python . Os RDBMSs suportados incluem MySQL, PostgreSQL, Oracle, SQLite e SQL Server.

Isso cuidará da difícil tarefa de mapear os tipos de coluna de um fornecedor SQL para os de outros. Além de transferir e converter o esquema , ele também migrará todos os dados, índices e restrições entre os bancos de dados.

Para instalar:

$ pip install etlalchemy

Em El Capitan :pip install --ignore-installed etlalchemy

Para correr:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

Para obter mais informações sobre as origens do projeto, confira este post. Se houver algum erro ao executar a ferramenta, abra um problema no repositório do github e eu o corrigirei em menos de uma semana!


0

A ferramenta de Migração do MySQL Workbench pode ajudá-lo a executar esta tarefa

1) Para iniciar o processo de migração, na tela principal do MySQL Workbench, vá para Database-> Migration Wizard.

2) Devemos verificar os pré-requisitos para confirmar se podemos continuar a tarefa. Se tudo estiver bem, podemos pressionar Iniciar migração.

3) Nesta etapa, precisamos fornecer as informações sobre o banco de dados de origem, neste caso, o SQL Server.

Vamos configurar nosso parâmetro de origem:

Sistema de Banco de Dados: Microsoft SQL Server

Método de Conexão: ODBC (Nativo)

Driver: SQL Server

Servidor: localhost

Nome de usuário: sa

4) Agora, podemos verificar a conexão usando o botão Testar Conexão.

5) Então, precisamos adicionar os parâmetros de destino:

Método de Conexão: Padrão (TCP / IP)

Nome do host: Your_host_name

Porto: 3306

Nome de usuário: migração

6) E pressione Testar conexão para confirmar as informações adicionadas.

7) Na próxima etapa, o MySQL Workbench se conectará ao nosso SQL Server para buscar uma lista dos catálogos e esquemas.

8) Agora, escolheremos o banco de dados Your_database_name da lista.

Podemos escolher como os esquemas e objetos de engenharia reversa devem ser mapeados. Usaremos a opção Catalog.Schema.Table -> Catalog.Table, portanto, em nosso MySQL, teremos selecionado o banco de dados e as tabelas atuais que temos em nosso banco de dados SQL Server.

9) Se tudo correu bem, teremos uma lista de objetos a serem migrados.

10) Nesse caso, temos objetos de tabela, objetos de exibição e objetos de rotina. Selecionaremos apenas os objetos de tabela porque, para o restante do objeto, devemos verificar manualmente o código equivalente do MySQL correspondente.

11) Nesta etapa, os objetos da fonte são convertidos em objetos compatíveis com MySQL.

12) Se tudo correu bem, podemos continuar selecionando como queremos criar o esquema migrado no destino. Usaremos a opção "Criar esquema no RDBMS de destino" padrão.

13) Agora, vamos verificar o processo do esquema de criação.

14) Na próxima etapa, podemos verificar o resultado de cada execução de script e o novo banco de dados criado em nosso servidor MySQL.

15) Neste ponto, teremos a estrutura do banco de dados, mas ainda não temos os dados. Agora, vamos selecionar como queremos copiar os dados no servidor MySQL. Usaremos a opção "Cópia online dos dados da tabela para segmentar RDBMS".

16) Na última etapa, podemos verificar o relatório de migração e concluir a tarefa.

Outro método fácil de converter um MS SQL DB para MySQL é usar a ferramenta DIY da Stellar, chamada Stellar Converter for Database, que pode selecionar diretamente o arquivo de banco de dados de um banco de dados específico e fornecer uma visualização das tabelas conversíveis. Após a conversão, os dados serão armazenados diretamente no banco de dados especificado. instalado no seu sistema. Nesse caso, você precisará fornecer o arquivo de banco de dados MS SQL e, após a conversão, ele será armazenado no banco de dados MySQL instalado no sistema. Você pode obter a versão gratuita deste software no site oficial da Stellar .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.