Como criar um banco de dados do SQL Server automaticamente a partir de um arquivo mysqldump?

4

Recentemente, um fornecedor anunciou que estava atualizando seus processos, e um dump de dados diário automatizado que estamos obtendo deles agora virá em um formato de dados de dados do MySQL. Infelizmente, somos uma loja exclusiva da Microsoft, por isso não podemos importar esses arquivos diretamente.

Então, minha pergunta é: Como posso pegar o arquivo de despejo de dados e importá-lo para uma instância do SQL Server 2005 para criar um banco de dados?

Coisas a serem observadas:

  • A solução precisa ser automatizada e requer uma intervenção manual no ; tem que ser algo que possamos agendar diariamente e apenas receber uma notificação de que funcionou / falhou.
  • Adoraríamos ferramentas gratuitas (quem não é?) / já compradas (por exemplo, já fazem parte do SQL Server), mas não há problema em comprar algo, se necessário.
  • Não temos controle sobre os dados ou o banco de dados original, por isso não temos controle sobre a execução do comando mysqldump novamente com a opção 'compatível' configurada de maneira diferente.
  • Realmente, realmente não queremos fazer algo como carregar uma instância local do MySQL para importar o dump e depois enviar os dados para o MSSQL. Como mencionei, somos uma loja somente de MS e não estamos preparados para suportar uma instância do MySQL, mesmo para um processo automatizado como esse.
por Sean 29.09.2011 / 23:08

4 respostas

1

Eu faria algo diferente com a terceira parte. Eu iria puxá-lo do MySQL diretamente para o SQL Server usando o SSIS e agendar a tarefa dentro do servidor SQL. Importar um dump MySQL no SQL Server seria problemático, já que o DDL é significativamente diferente entre os mecanismos de banco de dados.

Se você não puder acessar o terceiro diretamente, você pode obter uma instância do MySQL em execução localmente e depois importar o dump mysql (usando o mysqlimport em um arquivo de lote).

Você deve ser capaz de automatizar isso com bastante facilidade com o agendador de tarefas e SSIS + Jobs no SQL Server 2005.

    
por 29.09.2011 / 23:54
0

link

The dump typically contains SQL statements to create the table, populate it, or both. However, mysqldump can also be used to generate files in CSV, other delimited text, or XML format.

Eu iria com o formato XML e o converteria sempre que necessário usando XSLT.

    
por 22.06.2012 / 11:17
0

em stackoverflow eles apontaram para esta solução: < href="http://www.codeproject.com/Articles/29106/Migrate-MySQL-to-Microsoft-SQL-Server"> do mysql para o mssql . Requer o carregamento de uma instância do mysql.

Se os seus requisitos estão imutáveis (refiro-me aqui a comentar sobre "não requer intervenção manual"), a melhor solução para a sua organização seria pagar alguém para programar essa lógica para você. Migrar coisas entre bancos de dados requer intervenção, isso não será feito por pequenos gnomos de jardim enquanto você estiver dormindo. Alguém terá que programar a lógica dele.

Tendo escrito tudo isso, rodar o mysql em um servidor windows está perfeitamente bem e não vai custar nada se você executar a edição da comunidade. Você pode sempre gastar dinheiro comprando da Oracle, a propósito, se esse for um requisito de gerenciamento.

    
por 22.06.2012 / 11:50
0

Se você não quiser executar uma instância & script a importação e re-exportação (em um formato amigável MSSQL), então você terá que escrever um analisador para traduzir o formato de despejo MySQL para CSV ou algo útil & simples.

Acho que você está em melhor situação executando uma instância do MySQL e trocando os dados. Você poderia até usar o VBA para automatizar isso através de um DSN uma vez que os dados está no MySQL.

Como você provavelmente administra um negócio em que seu tempo vale algo, considere uma solução comercial como symmetricds

    
por 02.07.2012 / 19:05