MS SQL in My SQL

Hallo ich suche eine Lösung, um eine bestehende SQL Datenbank (Microsoft) die auf einem Rechner installiert ist, mit einer MySQL Datenbank zu Spiegeln. (In Echtzeit oder als Intervall)

GANZ GANZ wichtig dabei ist, dass nur Daten aus der MS SQL an die MySQL gehen. Auf keinen fall von der My SQL an die MS SQL.

Zudem liegt die My SQL nicht auf dem Rechner auf dem auch die MS SQL liegt sondern auf einem Server.

Kann mir jemand sagen wir das geht?
Darf auch ruhig ein bezahl(bares) Programm sein.

Vielen Dank
Calle.calle

Die Frage ist zu ungenau gestellt.
Um welche Version SQL Datenbank (Server) handelt es sich?Welche Mysql Version?
Wer soll das Daten abgleichen tun?
Der MSSQL Server oder der MYSQL Server?
Mein erster Ansatz wäre …
Linked Server im MSSQL Server der auf den MYSQL Server greift…
Und dann via Script den Deltadatenabgleich macht.
Ein fertige Lösung wirds dafür kaum geben

Hallo ich suche eine Lösung, um eine bestehende SQL Datenbank
(Microsoft) die auf einem Rechner installiert ist, mit einer
MySQL Datenbank zu Spiegeln. (In Echtzeit oder als Intervall)

Es ist MS SQL 2005 express

Die My SQL version ist relativ Flexibel wobei ich aber zur neuesten tendiere.
Im grunde ist mir vollkommen egal, ob jetzt die MS an die MY puscht oder die My von der MS zeiht Hauptsache ist, dass keine Daten von der MY in die MS geschrieben werden sonder nur von der MS in die MY.

Hoffe das jetzt ein wenig präziser.

Hallo,

so einfach wird die Lösung da nicht sein.

Eine Lösung könnte ein WebService sein, der die Daten in die MySQL Datenbank überträgt.

Ich kenne leider nicht dem Funktionsumfang der MS Datenbank. Eine Echzeitspiegelung ist sehr aufwändig.
Bei jeder Änderung in der MS Datenbank, müsste ein Trigger den WebService anstoßen und die Daten in der MySQL DB aktualisieren.

Das geht aber dann auch nur, wenn nur SQL-Standard Funktionalitäten verwendet werden.

Wenn der Abgleich nur einmal am Tag erfolgen muss, könnte man den Service einmal die Nacht anstoßen.

Ob es eine fertige Lösung gibt, bezweifle ich.

Grüße

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

Sorry, davon hab ich keine Ahnung. Ich denke auch dass das nicht trivial sein wird. Am besten verbindest Du Dich mit deiner Anwendung auf beide Datenbanken und lässt kompatible Versionen der Statements parallel laufen. Aber alleine das ist schon alles andere als Einfach, da die Syntax sich doch deutlich unterscheiden.

Ich würde von so einer Idee dringend abraten! Besser, auf beiden Seiten die selbe Datenbank verwenden und eine Master->Slave Replikation einrichten.

Grüße,

Kukulkan

Hallo,

Ich könnte mir vorstellen das es hierzu ein Konvertierungs-Programm von Microsoft gibt. Leider ahbe ich hierzu keine passende Antwort und auch keine Idee.

Sorry :wink:

Hallo,

sorry, ich habe keine Erfahrungen in Spiegelungen von Datenbanken, habe aber den folgenden Link gegoogelt, vielleicht hilt er weiter:

http://www.experts-exchange.com/Microsoft/
Development/MS-SQL-Server/Q_21865130.html

mit freundlichem Gruß
U.Meier