Перейти до

Синхронизация mysql


Рекомендованные сообщения

Приветствую. 

 

Есть 2 базы mysql, структура одинаковая, нужно изменения базы "А" дописывать в базу "Б". Изменения будут вноситься в обоих базах. Можно ли реализовать это штатными средствами mysql? Может есть какая-то хитрая опция mysqldump, никак не могу придумать.

Ссылка на сообщение
Поделиться на других сайтах

это ужасная практика на mysql делать master-master репликацию.

особенно если данные пересекаются в таблицах итд, нужно смотреть на тз

Ссылка на сообщение
Поделиться на других сайтах

знаю примеры успешно работающих мастер-мастер репликаций. но - да, если это разваливается, собирать в кучу все очень весело :)

Ссылка на сообщение
Поделиться на других сайтах

Репликация со схемой мастер-мастер и использовать автоинкемент. Все реализуется стандартными средствами мускула. Если придерживаться стандартных рекомендаций - никаких веселостей не предвидится.

Відредаговано Goblin
Ссылка на сообщение
Поделиться на других сайтах

Почитал я почитал, оптимально решение не нашел.

Как мне кажется проще написать скрипт которым и буду дописывать нужные данные.

Ссылка на сообщение
Поделиться на других сайтах

если есть возможность разделения чтения и записи -  тогда самая банальная мульти сорс репликация. (появилась в 5.7, работает из коробки)  пишем в базу А и Б читаем из Ц, которая является консолидированным хранилищем 

Ссылка на сообщение
Поделиться на других сайтах

 

 

Если придерживаться стандартных рекомендаций - никаких веселостей не предвидится.

Ровно до тех пор пока БД используется сугубо как реляционное хранилище данных в проекте, не предусматривающем каких-либо сложных атомарных операций над данными. Т.е. блог - прекрасно, форум - отлично, а вот тот же биллинг, где нужно выдать уникальный адрес из пула - тут уже печальнее (хотя можно ессно для каждого адреса делать свою сущность, и выбирать рандомно первую незанятую), а начисление бонусов по сложной формуле к примеру (которую нельзя упихать в скл запрос) - это вообще сливай воду. По причине того, что в мультимастере с асинхронной репликацией глобальных локов в принципе нет - лок на второй мастер не распространяется...

Ссылка на сообщение
Поделиться на других сайтах

знаю примеры успешно работающих мастер-мастер репликаций. но - да, если это разваливается, собирать в кучу все очень весело :)

Используйте галеру, после развала собирается все само.

Сейчас эксплуатируем крупный проект, так даже вопреки рекомендациям ноды расположены в разных ДЦ. За год пока, никаких проблем не возникло.

P.S. Правда юзаем мариадб, 400-500 запросов в сек

Відредаговано masters
Ссылка на сообщение
Поделиться на других сайтах

галера умеет сделать лок на таблицу на обеих мастерах? ну чтобы не плясать с бубном, перепиливая код?

 

вообще - мастер-слйэв надежнее...

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...

Можна заюзати Percona XtraDB Cluster (на базі MySQL 5.6 і Galera plugin).

Але для коректної роботи Master-Master реплікації треба мати хоча б 3 сервера в кластері (для того щоб уникнути split-brain і recovery після падіння серверів було безболісним).

https://www.percona.com/doc/percona-xtradb-cluster/5.6/index.html

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від felixio_01
      Здравствуйте. 
      Помогите разобраться. 
      Собрал stargazer 2.409
      ОС debian 11:  Linux gw1new 5.10.0-13-amd64 #1 SMP Debian 5.10.106-1 (2022-03-17) x86_64 GNU/Linux
      MySQL:  /usr/sbin/mysqld  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
      при первом запуске в в логах stargazer появилась ошибка:  Storage plugin: 'Couldn't create tariffs table list With error: Invalid default value for 'change_policy_timeout''  
      При этом создалась таблица:  ' admins'
      mysql> show tables;
      +---------------+
      | Tables_in_stg |
      +---------------+
      | admins        |
      | info          |
      +---------------+
      2 rows in set (0.00 sec)
       
      Других таблиц нет. 
      В чём может быть проблема? Может кто сталкивался?
      Спасибо. 
    • Від dormancygrace
      Добрый день. Скажите пожалуйста, можно ли развернуть бэкап бд mysql в mariadb? при попытке получаю ERROR 1071 (42000) at line 845: Specified key was too long; max key length is 1000 bytes.
      Можно это как-то вылечить? 
    • Від camchatix
      Привет!
       
      Начались необъяснимые глюки с базой ubilling
      сделали mysqldump на старой базе 5.6.36
      На свежей freebsd mysql server 5.6.51
      сделали импорт - и в карточке при обновлении страницы баланс показывает то одну цифру то другую
       
      подскажите как такое может быть и как вылечить ?
       
      вот -126 денег это правильно
       
      mysql> select login,D0,U0,Cash, LastCashAddTime   from users where login=65369051; +----------+------------+------------+---------+-----------------+ | login    | D0         | U0         | Cash    | LastCashAddTime | +----------+------------+------------+---------+-----------------+ | 65369051 | 3619373056 | 4680515584 | -126.07 |      1634677205 | +----------+------------+------------+---------+-----------------+ 1 row in set, 1 warning (0.00 sec)  
      через 3 минуты
      mysql> select login,D0,U0,Cash, LastCashAddTime from users where login=65369051; +----------+------------+------------+-------+-----------------+ | login | D0 | U0 | Cash | LastCashAddTime | +----------+------------+------------+-------+-----------------+ | 65369051 | 3555340288 | 3879243776 | 36.61 | 1634677203 | +----------+------------+------------+-------+-----------------+ 1 row in set, 1 warning (0.00 sec)  
      а тут 36 денег
      Как такое может быть ?
       
       
       
       
    • Від freehost
      В крупную хостинг-компанию требуется сотрудник службы технической поддержки.
       
      Обязанности:
      Отвечать на вопросы клиентов (работа с панелью управления, настройка POP3, SMTP, FTP, другие технические вопросы) по телефону, эл. почте, решать мелкие проблемы (неверно заполненные данные и настройки в контрольной панели, проблемы с доступом и т. п.), не сложные вопросы касающиеся администрирования, подключение IPKVM, перезагрузка серверов.
       
      Требования:
      Умение работать в Интернет с основными клиентами (браузеры: IE и Mozilla, почтовые клиенты: The bat, outlook, FTP-клиенты: IE, Far, Cute FTP; Базовые знания PHP, MySQL; Уметь читать и понимать логи Apache, Nginx, Exim Приветствуется опыт работы в Web-Дизайне, работа с Joomla, Wordpress Навыки работы в командной строке UNIX; Желателен опыт работы с VestaCP, ISPmanager Коммуникабельность, терпение, эмоциональная уравновешенность, способность к обучению.  
      Условия:
      Официальное трудоустройство 24 дня отпуска Обеды за счет компании Сменный график. Смена сутки, потом три дня выходных. Оплачиваемый больничный Возможность повышения до дежурного администратора. Работа в дата-центре (в случае локдаунов предусмотрена развозка сотрудников)
        Работа в дата-центре это возможность получить опыт работы с различными технологиями (apache, nginx, mysql, zabbix, wordpress, joomla, dns…), а так же опыт работы с железной частью серверов.
      Если нету опыта работы с Unix, резюме просьба не присылать.

      Резюме присылайте на hr@freehost.com.ua
    • Від zababaha
      Здравствуйте.
      В связи с миграцией с Nodeny 50.32 на Nodeny Plus необходимо перенести базу данных +возможно, написать скрипт для автоматического переноса её в будущем еще раз.

      Просьба откликнуться в личку.
×
×
  • Створити нове...