2009-02-10 3 views
2

Мне нужно скопировать несколько таблиц, проданных из сторонней базы данных SQL Server 2000, в базу данных MySQL 5 и синхронизировать их - то есть, когда некоторые CRUD происходят в таблицах SQL Server, Я бы хотел, чтобы это отразилось в версиях MySQL своевременно. Теперь я знаю, что есть ways to do this with 2000, но некоторое время в ближайшем будущем база данных SQL Server будет обновлена ​​до 2005 года, которая, похоже, не предлагает те же лазейки, что и в 2000 году.Синхронизация SQL Server 2005 с MySQL

Итак, есть ли способ реплицировать/синхронизировать данные из SQL Server 2005 в MySQL, что не предполагает программного сравнения таблиц в двух базах данных? Если да, то будет ли он работать с SQL Server 2000?

ответ

1

Suggestions for replication of data from MS Sql 2005 and MySql

Один человек говорит не баловаться с такой схемой и настройка другого сервера SQL.

У SQL express есть определенные ограничения на производительность, но, возможно, это вариант для вас. Я не могу найти ничего, что может работать, из коробки.

0

Я ранее делал это, хотя он будет полностью зависеть от вашего определения своевременности!

Я использовал myODBC (http://dev.mysql.com/downloads/connector/odbc/5.1.html) для установки mySQL-сервера в качестве связанного сервера. Затем вы можете использовать команду openquery (http://msdn.microsoft.com/en-us/library/ms188427.aspx) для получения данных из удаленной таблицы.

Все, что вам нужно сделать, это написать хранимую процедуру, которая выполняет вставку/обновление, где не существует данных в удаленной базе данных. SQL немного противно, но это выполнимо! Когда у вас есть SP, который работает, вы можете настроить его на запуск в качестве триггера где-нибудь или запустить его как задание на сервере MSSQL.

0

Я также собираюсь предложить connecting SQL Server to MySQL via Linked Server. Затем создайте триггеры AFTER в связанных таблицах, которые используют INSERTED DELETED psuedo-tables, чтобы обеспечить отражение всех локальных операций в удаленных базах данных. Например:

CREATE TRIGGER tr_Orders_Insert ON Orders AFTER INSERT AS 
    BEGIN 
     INSERT INTO MySQLServer...Orders (OrderID, OrderDate) 
     SELECT OrderID, OrderDate FROM INSERTED 
    END 
GO