включить редактирование

unix@guest: $cd

Тема: Как работает репликация? Последнее сообщение было: 4 года назад

+1 | -0

darkLJn

Зарегистрирован: 19 августа 2013 [18:35]
Рейтинг: 122761
Последнее появление:
21 августа 2013 [15:37:39]

Комментариев на форуме: 4 Комментариев для статей: 0
Оценено комментариев в форуме: 3
Оценено статей и комментариев для статей: 0

Репликация в семействе баз данных MySQL (MySQL от Oracle, MariaDB, Percona и т.д.) выполняется довольно просто. На главном сервере нужно включить Binary Log [двоичный журнал]. Он записывает все изменения в базе данных на главном сервере, т.е. все операции вставки [insert], обновления [update], изменения структуры данных [alter] и т. д., игнорируя только операции выбора [select].
Сервер копии считывает этот двоичный журнал и копирует записи в свой «журнал-ретранслятор [relay-log]», с помощью «нити ввода/вывода». Затем он считывает информацию из ретранслятора и выполняет записанные в нем действия по отношению к своей копии данных (с помощью «нити SQL»). Так данные подчиненного сервера синхронизируются с данными главного.
Важно отметить, что этот подход к репликации не является синхронным. Другими словами, главный сервер не ждет, пока подчиненный закончит обновление данных, и может вносить новые изменения в данные; таким образом, подчиненный сервер может немного «отставать» от главного. Если подчиненный сервер используется для операций чтения, пользователи могут увидеть не совсем актуальные данные, а при переключении подчиненного
компьютера в режим главного можно потерять часть транзакций. Избежать этого нельзя, но, тщательно поработав над структурой web-приложения, влияние этой проблемы можно снизить.

online helper for users
Создано: 19 августа 2013 [18:40] | Обновлено: 19 августа 2013 [18:49] Последнее сообщение: 19 августа 2013 [18:49] Сообщений: 1 Рейтинг темы: 1Ответить | Оценить

4 года назад

+0 | -0
DJek=>darkLJn
Зарегистрирован: 11 апреля 2013 [19:44]
Рейтинг: 45405
Последнее появление:
23 января 2014 [17:06:05]

Комментариев на форуме: 1
Комментариев для статей: 0
Оценено сообщений на форуме: 0
Оценено статей и комментариев: 0

При включении двоичного журнала производительность сервера немного ухудшается: ведь каждая операция по изменению базы данных будет не только выполняться над базой данных, но и регистрироваться
в журнале. Несмотря на это, журнал может пригодиться не только для репликации подчиненных компьютеров, и его можно включить на всех серверах (как реплицированных, так и автономных), поскольку с его помощью можно реализовать выборочное резервное копирование. Полную резервную копию базы данных обычно не делают чаще одного раза в день; ну, а вдруг база данных упадет через 23 часа после последнего резервного копирования? Это почти целый день обновлений, который будет потерян, если вы не включили двоичный журнал.
Задайте скрипту резервного копирования координаты двоичных журналов (файл главного журнала и текущее смещение в этом файле) при создании резервной копии. Это можно сделать командами show
binary logs
и show master status.
При падении сервера первым делом нужно восстановить полную резервную
копию. После этого можно применить содержимое двоичных журналов к восстановленной резервной копии, и все запросы, выполненные с момента последнего копирования до момента падения, повторятся снова. По завершении этого процесса у вас появится полноценная восстановленная копия базы данных.
Для восстановления данных с помощью
записей в двоичных журналах понадобится утилита mysqlbinlog:

mysqlbinlog --start-position   | mysql -uroot -p

Если вы хотите сперва только узнать, какие запросы будут выполняться, перенаправьте вывод команды не в MySQL, а в файл, и просмотрите его содержимое.

I am a freelance writer for linux
Создано: 19 августа 2013 [18:49] Рейтинг сообщения: 0 Ответить | Оценить
Новое сообщение

Сообщения в чате

Вы спрашиваете у гостей/у зарегистрированных/ У Вас спрашивают
всем Ctrl+Enter
зарегистрированным Ctrl+Enter
Ctrl+Enter

Краткая инструкция по работе с чатом

  • Вы должны ввести имя, которое будет запомнено и применяться для чата и комментариев на сайте.
  • Выбрать одну из возможностей
    "Вы спрашиваете у гостей/
    у зарегистрированных/
    У Вас спрашивают"
  • Кликните на один из способов и появиться дополнительная информация