Нов в мащабирането на MySQL - как да имам 2 главни сървъра за запис?

От това, което научих, MySQL MASTER сървър е такъв, който може както да чете, така и да пише. Правилно?

Моят въпрос е: Да предположим, че имате 2 MySQL главни сървъра за запис (и много подчинени сървъри за четене).

Как можете да разрешите проблема с автоматичното нарастване? Как го синхронизирате? Да предположим, че пишете както на Master1, така и на Master2... как ще го синхронизирате, така че автоматичното нарастване да е последователно? Може ли някой да обясни решението на това в прост смисъл.


person TIMEX    schedule 04.11.2009    source източник
comment
@alex - Това обаче всъщност не е въпрос за програмиране   -  person martin clayton    schedule 04.11.2009


Отговори (2)


Задавате сървър #1 да използва нечетни стойности за автоматично нарастване, а сървър номер #2 да използва четни.

# server 1 
auto_increment_increment 2                                
auto_increment_offset    1   

# server 2
auto_increment_increment 2                                
auto_increment_offset    2

Има linux how to, което очертава процеса. Вижте също MySQL документи за това.

person martin clayton    schedule 04.11.2009
comment
Но какво ще стане, ако един сървър умре? След това... сървърът, който остане неподвижен, ще продължи да увеличава странното? - person TIMEX; 04.11.2009
comment
Да, така би било конфигурирано. Ще получите пропуски. - person martin clayton; 04.11.2009
comment
Може би. Зависи от това как използвате стойностите за автоматично нарастване. Ако имате нужда те да нарастват монотонно без пропуски, имате проблем. Ако те са уникални вътрешни идентификатори в системата, което обикновено е така, тогава пропуските не са голяма работа. - person martin clayton; 04.11.2009

Пропуските трябва да са наред, ако вашата система не се нуждае от това. Веднага след като достигнете лимита от INT или BIGINT, трябва да сте готови с настройка за съхранение на данни, така че да можете да разтоварите старите си данни и да получите готово превъртане обратно към базовите стойности на отместване. При приложение с интензивно писане ще трябва да сте подготвени и да можете да разтоварите стари данни възможно най-скоро.

person rmartinez    schedule 04.08.2010