Я хочу копіювати вміст бази даних MySQL до бази даних MS SQL Server 2008.
Чи можливо це? Чи може хтось окреслити необхідні кроки для досягнення цього?
Дякую.
Я хочу копіювати вміст бази даних MySQL до бази даних MS SQL Server 2008.
Чи можливо це? Чи може хтось окреслити необхідні кроки для досягнення цього?
Дякую.
Відповіді:
Особисто я би втягнувся в метод MS SQL порівняно з натиском методу MySQL Чому? Добре, що у Windows 32-бітні та 64-бітні драйвери MySQL ODBC готові до роботи та налаштування підключеного сервера є тривіальною. У мене є багато серверів MySQL, пов'язаних з MS SQL. Крім того, підключення до MS SQL від linux / unix не завжди є чудовим, і ви звичайно не можете використовувати всі функції. FreeTDS має обмеження; Ви можете скоріше вдарити їх, тому чому б просто не пропустити їх. Це все передбачає, що ви запускаєте MySQL на * nix. Якщо ні, то він наближається до 50/50, але я все-таки вибираю тягнути з MS SQL, так як це здається, що це не "жива" база даних, тому навантаження на неї для будь-якого ETL або обробки є більш ідеальним. Рішення GoldenGate звучить цікаво, але я впевнений, що це не безкоштовно.
Враховуючи те, що я налаштував такий сценарій, як з базами даних MySQL, так і з Oracle, що реплікуються на MS SQL, я надаю кілька порад, які найкраще працювали для мене:
Сподіваюся, поради допоможуть!
Це ж питання було вирішено на StackOverflow тут: Реплікація з MySQL в MSSQL .
Здається, є певні шляхи вирішення, але не дуже просте рішення.
Я вважаю, що вам обов'язково слід спробувати створити пакет SSIS для імпорту необхідних даних з MySQL DB в MSSQL DB. SSIS дозволяє імпортувати дані з різних джерел. Тоді ви маєте змогу запланувати пакет за допомогою планувальників завдань Windows або завдань sql.
Якщо під тиражуванням ви маєте на увазі доставку журналу чи щось подібне, я вважаю, що вам не пощастило. Однак ви, безумовно, можете створити базу даних MySQL як пов’язаний сервер і прокатати власну схему реплікації. Найпростіше - просто робити періодичні знімки всіх таблиць, використовуючи скорочення і вставлення операторів. Додайте складність, як диктують ваші вимоги.
Ви можете використовувати GoldenGate для MySQL та MS SQL для цього. Ви просто встановите продукт GoldenGate з кожної сторони, а потім почнете, як для однорідної реплікації.
Крім того, для реплікації "знімка" ви можете використовувати сценарій Python (або подібний) для простого підключення до обох джерел даних (використовуючи UnixODBC і FreeTDS для підключення до MS SQL), проведіть цикл таблиць SELECT
на одній стороні для кожного рядка INSERT
з іншого. Оскільки MSSQL має транзакції і є вашою ціллю, ви можете розпочати транзакцію, DELETE
все з усіх таблиць, зробіть копію, COMMIT
і тоді вона з’явиться миттєво, що стосується підключених користувачів у цілі, не буде невідповідностей (якщо такі не існують на джерело звичайно).