- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день всем!
Есть две базы MySQL: master (основная) и slave (та, на которую должны забираться обновлённые данные). Мне необходимо синхронизировать эти 2 базы, то есть если на мастере происходят: добавление, изменение, удаление записей, то на слейве эти изменения должны так же происходить в автоматическом режиме.
отсюда пара вопросов:
1. как это можно реализовать средствами MySQL?
2. как выполнить синхронизацию только отдельных таблиц из этих 2х БД?
3. обязательно ли, чтобы имена таблиц были идентичными? Сам понимаю, что, скорее всего - да, но просто используются разные CMS и допиливание всех запросов в связи с переменой имён таблиц займёт порядком времени..
отсюда пара вопросов:
1. как это можно реализовать средствами MySQL?
http://dev.mysql.com/doc/refman/5.0/en/replication.html
2. как выполнить синхронизацию только отдельных таблиц из этих 2х БД?
через игнорирование таблиц. для которых не нужно делать репликацию
3. обязательно ли, чтобы имена таблиц были идентичными? Сам понимаю, что, скорее всего - да, но просто используются разные CMS и допиливание всех запросов в связи с переменой имён таблиц займёт порядком времени..
не скажу - не знаю. Скорее всего настраивается - покопайтесьв манах.
На слейве вы можете только делать SELECT, но не DELETE, UPDATE, INSERT!
So1, спасибо за ссылку, на хабре ещё нашёл пост большой - изучаю сейчас
через игнорирование таблиц. для которых не нужно делать репликацию
ойё, в одной БД 294 таблицы, а в другой 73 =) убийственно, однако
На слейве вы можете только делать SELECT, но не DELETE, UPDATE, INSERT!
то есть получается так, что на сайте, который использует slave-базу я не смогу уже добавлять, обновлять, удалять записи?
Вся штука в том, что есть 2 сайта, которые используют идентичную базу предприятий - думаю над тем, как лучше сделать синхронизацию (репликацию) между ними, но таким образом, чтобы данные можно было добавлять/редактировать в обеих базах.. но чем больше я читаю про репликацию, тем больше убеждаюсь в том, что таким образом вопрос не решить..
врете. игнорировать таблицы нельзя. можно игнорировать базы данных.
но это может вызвать трудноуловимые глюки, поэтому рекомендуют выставить для игнорируемых таблиц engine=blackhole. таким образом можно игнорировать и таблицы, но трафик на передачу этих обновлений при этом расходуется, конечно.
то есть получается так, что на сайте, который использует slave-базу я не смогу уже добавлять, обновлять, удалять записи?
обычно да.
можно настроить репликацию master-master "по кругу" и обновлять обе базы, но это вызывает еще более трудноуловимые глюки в некоторых видах запросов. постарайтесь что-нибудь придумать чтобы обновлять в одном месте.
не получится - значит пытайтесь master-master. может, в вашем случае прокатит.
проблема в том, что вы нескоро узнаете о рассинхронизировавшейся базе.
врете. игнорировать таблицы нельзя. можно игнорировать базы данных.
и правда вру. думал про базы, писал таблицы... сорри.
Спасибо Вам за ответы - буду ещё думать. если будут вопросы - тему апну.. но скорее всего откажусь от репликации и напишу скрипт для обновления полей, потому как если добавление (в моём случае) можно сделать из одного места, то редактирование необходимо выполнять в обоих базах и далее по дате обновление уже сравнивать обе записи.. может быть так
бавление (в моём случае) можно сделать из одного места, то редактирование необходимо выполнять в обоих базах
проблемы возникают при специфических одновременных редактированиях одной и той же записи:
например
на сервере1 : update tab set val=val+1 where id=123
на сервере2: update tabl set val=val*2 where id=123
оба изменения проигрываются на обоих серверах и на них получаются разные данные, в зависимости от порядка исполнения и НИКАКИХ ОШИБОК репликации не возникает. Просто логическое расхождение. Поэтому master-slave самый безопасный механизм репликации.
что вам мешает при редактировании делать подключение к другой базе данных ?
остальное на сайте будет работать локально, а администраторская часть будет подключаться удаленно к master-серверу.
и если редакторы правят записи по смыслу одинаково, то может и можно игнорировать такой эффект. ну запишется в неизвестном порядке одна из правильных правок и что.
что вам мешает при редактировании делать подключение к другой базе данных ?
остальное на сайте будет работать локально, а администраторская часть будет подключаться удаленно к master-серверу.
получается, что: подключились для редактирования из сайта slave к сайту master, отредактировали и система репликации уже сама переносит изменения с мастера на слейва?
интересная мысль - подумаю обязательно над этим способом! Спасибо!
А какая необходимость в двух базах? Если базы идентичны, то по-моему проще использовать одну базу, сразу отпадает вопрос о синхронизации, левых ошибках ну и прочих сложностей
А какая необходимость в двух базах? Если базы идентичны, то по-моему проще использовать одну базу
чтобы быстро открывался. вот вылетит сайт из индекса - узнаете почему это важно.
чтобы быстро открывался. вот вылетит сайт из индекса - узнаете почему это важно.
Если обе бд на одном сервере, то по-моему нет разницы в скорости. Или я ошибаюсь? И при чем тут вылет одного сайта из индекса? Базы идентичны же, а как они используются на этих двух сайтах не известно нам