IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   Mysql репликация (http://www.imho.ws/showthread.php?t=147476)

GrOgy 28.02.2013 15:08

Mysql репликация
 
Изначально было две базы назовем их база1 и база2

база1 содержала некоторые данные, был сделан дамп и залит
в база2.

После этого пополнялась данными только база1.

Сейчас возникла необходимость в репликации данных с база1 на база2.

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

Будет ли достигнута полная синхронизация данных?

Или все таки нужно чтобы перед репликацией базы содержали одинаковые данные?

Borland 28.02.2013 15:35

Насколь я в курсе процедуры асинхронной репликации БД - после её настройки и включения первым проходом идёт полная репликация, дальше периодически (по расписанию) дифференциальная (разностная). Во всяком случае это верно для Oracle/MSSQL...
Ещё можно настроить синхронную репликацию, но для этого нужно объединять master со slave в кластер. Репликация данных при этом идёт в режиме реального времени.

GrOgy 28.02.2013 17:56

Значит можно просто настроить репликацию ? Даже если изначально в база1 в 100 раз уже больше данных чем в база2?

Plague 28.02.2013 18:54

Цитата:

Сообщение от Borland (Сообщение 1767947)
Насколь я в курсе процедуры асинхронной репликации БД - после её настройки и включения первым проходом идёт полная репликация, дальше периодически

Насколь я понимаю это утверждение - оно вообще полагает полное клонирование имеющегося (невзирая на то, что уже имеется, пойдет всё с нуля) при первом проходе. Хоть в 100 раз больше, хоть в 1,5, хоть в 10ть, хоть в 100500..

Borland 28.02.2013 19:20

Цитата:

Сообщение от Plague (Сообщение 1767951)
Насколь я понимаю

Правильно понимаешь. Ибо на момент первой репликации master-БД состояние slave-БД ей неизвестно (отсутствуют сведения о моменте последней удачной репликации).
Процесс репликации происходит (!сильно упрощенно!) так: master-база переводится в режим Read-only, изменения с момента последней удачной репликации из её transaction log сбрасываются в slave (который в этот момент работает в монопольном режиме), делается пометка о моменте удачной репликации, обе базы переводятся в нормальный режим работы (для slave, в принципе, нормальным режимом является Read-only).

Hubbitus 08.03.2013 11:25

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

Обращаясь к документации видим что после шага перевода мастера в read-only режим, следует именно шаг оффлайновой синхронизации (для этого предлагается копирование файлов или использование соответствующих утилит):
Цитата:

If you already have data on your master and you want to use it to synchronize your slave, you will need to create a data snapshot. You can create a snapshot using mysqldump (see Section 16.1.1.5, “Creating a Data Snapshot Using mysqldump”) or by copying the data files directly (see Section 16.1.1.6, “Creating a Data Snapshot Using Raw Data Files”).


Часовой пояс GMT +4, время: 03:31.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.