Quero replicar o conteúdo de um banco de dados MySQL para um banco de dados MS SQL Server 2008.
Isso é possível? Alguém pode descrever as etapas necessárias para conseguir isso?
Obrigado.
Quero replicar o conteúdo de um banco de dados MySQL para um banco de dados MS SQL Server 2008.
Isso é possível? Alguém pode descrever as etapas necessárias para conseguir isso?
Obrigado.
Respostas:
Pessoalmente, eu usaria o método MS SQL versus o push do método MySQL. Por quê? Bem, o Windows tem drivers ODBC MySQL de 32 bits e 64 bits prontos para usar, e a configuração de um servidor vinculado é trivial. Eu tenho muitos servidores MySQL vinculados ao MS SQL. Além disso, a conexão com o MS SQL a partir do linux / unix nem sempre é ótima e você geralmente não é capaz de usar todos os recursos. O FreeTDS tem limitações; você pode atingi-los mais cedo ou mais tarde; por que não ignorá-lo? Isso tudo pressupõe que você esteja executando o MySQL no * nix. Caso contrário, ele fica um pouco mais próximo de 50/50, mas eu ainda escolheria extrair do MS SQL, pois parece que não é o banco de dados "ativo", portanto, colocar a carga nele para qualquer ETL ou processamento é mais ideal. A solução GoldenGate parece interessante, mas tenho certeza de que não é gratuita.
Considerando que eu configurei esse tipo de cenário com os bancos de dados MySQL e Oracle replicando para o MS SQL, fornecerei algumas dicas que funcionaram melhor para mim:
Espero que as dicas ajudem!
A mesma pergunta foi abordada no StackOverflow aqui: Replicação do MySQL para MSSQL .
Parece que existem algumas soluções alternativas, mas não é uma solução muito fácil.
Eu acredito que você definitivamente deveria tentar criar um pacote SSIS para importar os dados necessários do MySQL DB para o MSSQL DB. O SSIS permite importar dados de várias fontes. Em seguida, você poderá agendar o pacote usando o agendador de tarefas do Windows ou trabalhos sql.
Se por replicação você quer dizer remessa de logs ou algo do tipo, acredito que não tenha sorte. No entanto, você certamente pode configurar um banco de dados MySQL como um servidor vinculado e executar seu próprio esquema de replicação. O mais simples é apenas fazer instantâneos periódicos de todas as tabelas usando instruções truncadas e de inserção. Adicione complexidade conforme suas necessidades.
Você pode usar o GoldenGate para MySQL e MS SQL para fazer isso. Você simplesmente instalaria o produto GoldenGate em cada lado e continuaria como para uma replicação homogênea.
Como alternativa, para uma replicação de "instantâneo", você pode usar um script Python (ou similar) para simplesmente conectar-se a ambas as fontes de dados (usando o UnixODBC e o FreeTDS para conectar-se ao MS SQL), percorrer as tabelas SELECT
de um lado, para cada linha INSERT
no outro. Como o MSSQL possui transações e é o seu destino, você pode iniciar uma transação, DELETE
tudo em todas as tabelas, fazer a cópia COMMIT
e ela aparecerá instantaneamente no que diz respeito aos usuários conectados no destino, não haverá inconsistências (a menos que existam) na fonte, é claro).