Chcę zreplikować zawartość bazy danych MySQL do bazy danych MS SQL Server 2008.
czy to możliwe? Czy ktoś może nakreślić kroki wymagane do osiągnięcia tego?
Dzięki.
Chcę zreplikować zawartość bazy danych MySQL do bazy danych MS SQL Server 2008.
czy to możliwe? Czy ktoś może nakreślić kroki wymagane do osiągnięcia tego?
Dzięki.
Odpowiedzi:
Osobiście wciągnęłbym się w metodę MS SQL vs. push z metody MySQL. Dlaczego? Cóż, Windows ma gotowe 32-bitowe i 64-bitowe sterowniki ODBC MySQL, a konfiguracja połączonego serwera jest banalna. Mam wiele serwerów MySQL połączonych z MS SQL. Ponadto połączenie z MS SQL z Linuksa / Unixa nie zawsze jest świetne i zazwyczaj nie jesteś w stanie korzystać ze wszystkich funkcji. FreeTDS ma ograniczenia; możesz trafić je wcześniej niż później, więc dlaczego nie pominąć. To wszystko zakłada, że używasz MySQL na * nix. Jeśli nie, zbliża się nieco do 50/50, ale nadal wybrałbym ciągnięcie z MS SQL, ponieważ brzmi to tak, jakby nie była to „bieżąca” baza danych, więc obciążenie dla dowolnego ETL lub przetwarzania jest bardziej idealne. Rozwiązanie GoldenGate brzmi interesująco, ale jestem pewien, że nie jest darmowe.
Biorąc pod uwagę, że skonfigurowałem taki scenariusz z bazami danych MySQL i Oracle replikującymi się do MS SQL, podam kilka wskazówek, które najlepiej dla mnie działały:
Mam nadzieję, że wskazówki pomogą!
To samo pytanie zostało rozwiązane w StackOverflow tutaj: Replikacja z MySQL na MSSQL .
Wydaje się, że istnieją pewne obejścia, ale niezbyt łatwe rozwiązanie.
Uważam, że zdecydowanie powinieneś spróbować zbudować pakiet SSIS, aby zaimportować niezbędne dane z MySQL DB do MSSQL DB. SSIS pozwala importować dane z różnych źródeł. Następnie powinieneś być w stanie zaplanować pakiet za pomocą harmonogramu zadań Windows lub zadań SQL.
Jeśli przez replikację masz na myśli wysyłkę dziennika lub coś w tym stylu, uważam, że nie masz szczęścia. Jednak z pewnością możesz skonfigurować bazę danych MySQL jako serwer połączony i stworzyć własny schemat replikacji. Najprostszym jest wykonywanie okresowych migawek wszystkich tabel za pomocą instrukcji obcinania i wstawiania. Dodaj złożoność zgodnie z wymaganiami.
W tym celu możesz użyć GoldenGate dla MySQL i MS SQL . Wystarczy zainstalować produkt GoldenGate z każdej strony, a następnie postępować jak w przypadku jednorodnej replikacji.
Alternatywnie, do „snapshot” replikacji, można użyć Pythona (lub podobnego) skrypt wystarczy podłączyć do obu źródeł danych (z wykorzystaniem unixodbc i FreeTDS aby połączyć się z MS SQL), pętli między stolikami robi SELECT
z jednej strony, dla każdego wiersza INSERT
na inne. Ponieważ MSSQL ma transakcje i jest twoim celem, możesz rozpocząć transakcję, DELETE
wszystko ze wszystkich tabel, zrób kopię, a wtedy COMMIT
pojawi się natychmiast, jeśli chodzi o połączonych użytkowników w celu, nie będzie żadnych niezgodności (chyba że one istnieją) na źródło oczywiście).