Синхронізуйте дві бази даних MySQL у двох різних місцях


19

У мене є дві однакові бази даних MySQL, одна - на внутрішньому сервері, а інша - на сервері веб-хостингу. Я хочу щодня оновлювати базу даних на веб-хості з базою даних на внутрішньому сервері. Чи є спосіб автоматизувати цей процес і як це зробити вручну? Якщо я хочу це зробити вручну, чи вимагає я отримати SQL-дамп бази даних на внутрішньому сервері, а потім імпортувати його в базу даних на веб-хості? Може хтось порадує, будь ласка.


Ви можете звернутися існуючу відповідь розміщені тут в StackOverflow stackoverflow.com/questions/52583 / ...
Махеш Патіл

про №2, якщо я роблю повний дамп із внутрішнього та імпорту на виробництво, це перезаписає базу даних в Інтернеті, я маю на увазі, що у мене є інтернет-покупці на веб-базі даних, і я хочу перенести внутрішню базу даних, що купується в прямому ефірі, чи можете ви уточнити BTW, що буде трапляється автоматичне вливання між двома, якщо вони обидва резервували один і той же id, це буде брудно!
shareef

Відповіді:


20

У вас є кілька варіантів:

  1. Налаштування реплікації MySQL між серверами. Ваш внутрішній сервер може виступати як головний, а веб-сервер - холопом. Будь-які оновлення, виконані на Майстрі, будуть негайно відтворені на підлеглий (при умові робочого з'єднання). Це, швидше за все, буде найпростішим та найефективнішим вибором. Для використання реплікації ваша внутрішня база даних повинна бути доступна через мережу через веб-хост.

    Більше про реплікацію ви можете прочитати тут .

  2. Кожного дня ви можете виконувати mysqldump на внутрішньому сервері, завантажувати дамп-файл на веб-хост та імпортувати дані. Оскільки це повний дамп, якщо у вас дуже велика база даних, це може бути неможливим. Якщо вам подобається, ця процедура може бути сценарієм, щоб уникнути необхідності робити це вручну.

  3. Ви можете налаштувати двійковий журнал на внутрішньому сервері. Потім ви можете відправити бінарні журнали на веб-хост і застосувати їх до бази даних, ефективно відтворюючи всі транзакції, що відбулися в цей день, на веб-сервері. Насправді, це все одно відбувається з реплікацією, так що ви майже завжди ходите із встановленою реплікацією замість цього параметра.

Якщо між двома базами даних немає зв’язку, щодня проходити mysqldumps буде найпростішим шляхом.


про №2, якщо я роблю повний дамп із внутрішнього та імпорту на виробництво, це перезаписає базу даних в Інтернеті, я маю на увазі, що у мене є інтернет-покупці на веб-базі даних, і я хочу перенести внутрішню базу даних, що купується в прямому ефірі, чи можете ви уточнити BTW, що буде трапляється автоматичне вливання між двома, якщо вони обидва резервували один і той же id, це буде брудно!
shareef

4

Ви також можете використовувати такі параметри, як symmetricDS, які можуть допомогти в синхронізації двох баз даних. За допомогою цього ви зможете вибрати таблиці, які потрібно синхронізувати, щоб зберегти пропускну здатність Інтернету. Це також підходило б у сценарії, коли між двома локаціями недостатньо зв’язку.


2

Як налаштувати реплікацію бази даних з MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


1
Ласкаво просимо на DBA.SE. Ми цінуємо ваш внесок / участь. Однак громада очікує певної якості у розміщених відповідях. Прочитайте наступну статтю: Як написати гарну відповідь? (Довідковий центр) У розділі Відповідь на запитання є коротке речення, яке звучить: Захистіться посилання на зовнішні ресурси, але, будь ласка, додайте контекст навколо посилання, щоб ваші колеги користувачі мали уявлення про те, що це таке і чому воно існує
Джон ака hot2use

0

Ви можете використовувати Navicat . Це насамперед db-менеджер, але він має функцію передачі та синхронізації даних, а також планувальник, щоб ви могли автоматизувати. Це не безкоштовно, але є 30 повноцінних пробних функцій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.