Създаване на репликацията на MySQL база данни в Linux система и възстановяване на база данни - това екип

Процесът на репликация е необходимо, тъй като:

1. Вие ще бъдете в състояние да подобри параметрите на ефективността. Например, един сървър, това е най-Майстора, не ще бъде в състояние да се справи с огромния брой процеси. Заредете помогне да губят копия. И колкото повече от тези процеси за всеки запис в базата данни, толкова по-добре се създаде реплика.

2. Ако една от репликите не успее да работят, а след това всички на процеса на четене, който е отговорен за тази реплика, ще бъдат прехвърлени по сигурен начин да Уизърдс. Когато основния сървър, можете да направите едно от капитана на реплика. По този начин, когато бившият съветника ще възстанови работата си, той ще се превърне в една реплика.

3. Ако искате да направите резервни копия на вашите данни, след това лесно да бъде в състояние да спре на щеката, което няма да доведе до загуба на функционалност на сайта. не е в състояние да спре съветника.

4. реплика може да изпълнява най-сложните SQL-заявки, които няма да доведат до претоварване на цялата система.
Освен това, можете да използвате различна структура, например, за операцията по търсене. На щеката за да може да отговори един вид маса, Учителят може да работи на съвсем различен тип маса.

Как да настроите процеса на репликация
Така че, ние поза на проблема с настройките на репликация. Ние вече имаме база данни MySQL и има следните параметри:

За Wizard

Вие трябва да изберете уникално сървъра ID, изберете пътя, който ще съдържа двоични трупи, както и името на базата данни за процеса на репликация вътре в секцията [Mysqld]:
1. сървъра номер = 1
2. дневник бин = / Var / ИЪ / MySQL / MySQL-бин
3. копие задачи-db = TESTDB

MySQL @ майстор> Дарение репликация роб ON "TESTDB". * ДА "репликация" @ "192.168.1.102", идентифицирани от "парола";

Сега рестартирайте MySQL за влизането в сила на всички промени, с следната команда:
корен @ майстор # услуга Mysqld рестартиране

Ако сте направили всичко правилно и данни, се потвърждава, трябва да видите следния запис в «господар статут шоу» на екипа:

1. MySQL @ майстор> SHOW статус капитана \ G
Файл: MySQL-bin.000003
Позиция: 98
Binlog_Do_DB:
Binlog_Ignore_DB:

Точка позиция ще покаже редица промени в базата данни.

ID е необходимо да се уточни сървъра, изберете име за базата данни, както и маршрута до реалните бинарни трупи в [Mysqld].

1. сървъра номер = 2
2. реле-дневник = / Var / ИЪ / MySQL / MySQL-реле-бин
3. реле-вход индекс = /var/lib/mysql/mysql-relay-bin.index
4. копие задачи-db = TESTDB

По този начин изпълнява MySQL база данни за нулиране:

корен @ реплика # услуга MySQL рестартиране

За трансфер на данни

Lock база данни от записи. Brake приложение, или поставете отметка в полето, за да изберете "Само за четене" на Учителя. Ако потребителят има SUPER привилегията, това квадратче не работи.
В присъствието на MyISAM таблици правя «промиване маси»:

1. MySQL @ майстор> FLUSH маси с READ LOCK;
2. MySQL @ майстор> определя общи read_only = ON;

Изберете "Покажи статуса на Учителя", и не забравяйте, какви стойности в "Файл" и "позиция":

MySQL @ реплика> Покажи SLAVE СЪСТОЯНИЕ \ G
Файл: MySQL-bin.000003
Позиция: 98

Извършва се изсере на база данни, и след операцията, за да отмените магистър Заключване:

MySQL @ майстор> поставя глобални read_only = OFF

Прехвърляне на сметището на базата данни към сървър реплика, ги възстановите.
Включване на процеса на репликация, използвайки «майстор промяна» командния и «започне роб».

1. MySQL @ реплика> Промяна MASTER ДА MASTER_HOST = "192.168.1.101", MASTER_USER = "репликация",
MASTER_PASSWORD = "парола". MASTER_LOG_FILE = "MySQL-bin.000003", MASTE_LOG_POS = "98";
2. MySQL @ реплика> започне роб;

Линии MASTER_LOG_FILE и MASTER_LOG_POS трябва да въведете тези стойности, които са били на Учителя.

интересно за нас стойности, които са показани на процеса на репликация.
Стойностите в редове и Master_Log_File Exec_Master_Log_Pos трябва да расте заедно с Учителя.
Параграф Seconds_Behind_Master, показваща степен реплика зад Учителя, в идеалния случай трябва да бъде 0. Ако това е време, за да растат, тогава знаете, че имате много високо натоварване на реплики.
Ако линията не разполага с никаква Slave_IO_State и Seconds_Behind_Master виж параметър 0, процесът на репликация не е започнало. Трябва да се провери дневника на MySQL и премахване на причините, и след това рестартирайте процеса на репликация:

MySQL @ реплика> започне роб;

там е низ с времето майстор заключване е продължителността на времето, за което е създаден на сметището.
Ако сметището се прави за дълъг период от време, можете да поставите блок на съветника флага за запис "само за четене", за да се запази в неговата позиция на паметта и да се спре на базата данни MySQL. След това копирайте файловете в базата данни при Учителя и реплика отново включително капитанът.
Можете също така да свържете множество копия


Как да си направим магистър Replica

Ако съветникът не успее да работят, трябва да се направи спешно, една от репликите на Учителя. Така или коригира дуплика, както и на Учителя, не се опитвайте да го преведе на пасивен режим магистър.
конфигурационния файл на базата данни, която искате да се даде възможност на binlogov:

За процеса на репликация, добавите потребител:

MySQL @ майстор> Дарение репликация роб ON "TESTDB". * ДА "replication'@'192.168.1.101" IDENTIFIAD с "парола";

Ако го направите пасивни Мастърс, след репликация ще отиде по същия начин като тази на репликата. Но, за разлика от репликите, пасивен Wizard ще създаде двоични трупи.
За да стане пасивна магистър активна, трябва да завърши репликация на него. Активиране на репликация на бившия господар. Заключете запис на действащ главен да избегнете загуба на данни:

1. MySQL @ майстор> FLUSH маси с READ LOCK
2. MySQL @ майстор> определя общи read_only = ON;
3. MySQL @ реплика> STOP SLAVE
4. MySQL @ реплика> Покажи MASTER СЪСТОЯНИЕ;
Файл: MySQL-bin.000001
Позиция: 61

MySQL @ майстор> СМЯНА MASTER ДА MASTER_HOST = "192.168.1.102", MASTER_USER = "репликация", MASTER_PASSWORD = "парола",
MASTER_LOG_FILE = "MySQL-bin.000001", MASTER_LOG_POR = 61;
MySQL @ майстор> започне роб
освободите заключването на предишната съветника