Репликация MySQL для резервного сценария - PullRequest
10 голосов
/ 11 августа 2008

Когда у меня есть два сервера mysql, которые имеют разные задания (с разными базами данных), но хотят иметь возможность использовать один из них, чтобы проскользнуть при сбое другого, что бы вы посоветовали, как хранить данные на обоих равно "близко к реальному времени"?

Очевидно, что невозможно создать полный дамп базы данных каждые x минут.

Я читал о Двоичном журнале , это путь, по которому мне нужно идти? Не сильно ли это замедлит работу резервного сервера? Есть ли способ не включать некоторые таблицы в двоичный журнал - где не имеет значения, что данные изменились?

Ответы [ 2 ]

3 голосов
/ 13 сентября 2008

Возможно, вы захотите рассмотреть сценарий репликации master-master , но с небольшим поворотом. Вы можете указать базы данных для репликации и ограничить репликацию для каждого сервера.

Для сервера1 я бы добавил --replicate-do-db=server_2_db и на сервере2 --replicate-do-db=server_1_db в ваш my.cnf (или my.ini в Windows). Это будет означать, что только операторы для server_1_db будут реплицированы на server2 и наоборот.

Пожалуйста, также убедитесь, что вы выполняете полное резервное копирование на регулярной основе, а не просто полагаетесь на репликацию, поскольку она не обеспечивает безопасность от случайных DROP DATABASE заявлений или тому подобное.

2 голосов
/ 11 августа 2008

Двоичный журнал - это, безусловно, путь. Однако вы должны знать, что с MySQL вы не можете просто переключаться между серверами, как этот.

Один сервер будет ведущим , а другой - ведомым. Вы пишете / читаете на мастер, но можете читать только с подчиненного сервера. Если вы когда-нибудь напишете ведомому, они будут не синхронизированы, и нет простого способа заставить их снова синхронизироваться (в основном, вы должны поменять их местами, чтобы мастер стал новым ведомым, но это утомительный ручной процесс ).

Если вам нужны настоящие базы данных с возможностью горячей замены, вам может потребоваться перейти на систему, отличную от MySQL . Если все, что вам нужно, это оперативная резервная копия только для чтения, которую вы можете использовать мгновенно в худшем случае (мастер окончательно уничтожен), Binary Log вам вполне подойдет.

...