Hallo,
Wie groß ist denn die Datenbank ? Aus wievielen Tabellen
besteht sie und kann man ungefähr abschätzen, wie viele Daten/Zeilen jede Tabelle ungefähr hat oder wie viele Zeilen täglich dazukommen ?
Wenn der Datenbestand eher klein ist (ein paar Tabellen mit vielleicht einigen Tausend Zeilen), kann man ihn in regelmäßigen Abständen komplett kopieren.
Für eine SAP-Datenbank mit mehreren Zehntausend Tabellen und Millionen von Datensätzen pro Tabelle funktioniert das nicht mehr.
My SQL und MS SQL können sich meines Wissens nicht
direkt miteiander unterhalten. Man kann aber z.B.
MS-SQL-Daten per Skript oder Report in CSV-Dateien
auslesen, die man dann wieder in My SQL importieren kann. Bei wenigen Tabellen kann man beide DBs auch
per Hand über ODBC oder JDBC verkuppeln. Platt gesprochen öffnet man dazu im selben Programm zwei Verbindungen, eine zu MS SQL, mit der man die Daten liest und eine zweite zu MySQL, mit der man die Daten gleich wieder schreibt. Den SQL-Code zum Lesen und Einfügen und den umgebenden Java- oder C-Code, mit dem man die Daten kopiert oder Änderungen erkennt, muss man selber schreiben.
Große kommerzielle Datenbanken kennen auch Gateways zu anderen Datenbanken. Z.B. kann man bei Oracle über ein solches Gateway Verbindungen zu anderen DBs anlegen. D.h. man kann dann in Oracle eine SQL-Anfrage stellen, die dann an die fremde DB weitergeleitet wird, aber wie ein Oracle-eigenes Anfrageergebnis angezeigt wird. Vielleicht kennt MS SQL inzwischen auch so ein Gateway. Dann könnte man einfach einen SQL-Befehl formulieren „insert into tab1@mysql select * from tab1@mssql“, der dann in regelmäßigen Abständen, z.B. per Stored Procedure oder Trigger ausgeführt wird.
Mit freundlichen Grüßen
Michael