Configurarea bazei de date MySQL replicare în sistemul Linux și de recuperare a bazei de date - l-team
Procesul de replicare este necesar deoarece:
1. Veți fi capabil de a îmbunătăți valorile de performanță. De exemplu, un server, este Maestrul, nu va fi capabil să facă față numărului mare de procese. Încărcați-l ajute să-și piardă Reproduceri. Și mai multe dintre aceste procese pentru fiecare înregistrare în baza de date, cu atât mai bine creați o replica.
2. În cazul în care unul dintre replici nu reușește să lucreze, atunci tot procesul de citire, care este responsabil pentru această replică, vor fi transferate într-un mod sigur la Wizards. În cazul în care serverul principal eșuează, puteți face unul din maestru replica. Astfel, atunci când fostul expertul va reface lucrarea lui, el se va transforma într-o replică.
3. Dacă doriți să faceți copii de siguranță ale datelor dvs., apoi să fie ușor posibilitatea de a opri tacul, care nu va duce la o pierdere de funcționalitate site-ului. să nu fie capabil de a opri expertul.
4. Replica poate efectua cele mai complexe SQL-interogări, care nu va duce la congestie a întregului sistem.
Mai mult decât atât, puteți utiliza o structură diferită, de exemplu, pentru operația de căutare. La tac pentru că se poate întâlni un tip de tabel, Master poate lucra pe un tip complet diferit de masă.
Cum pot configura procesul de replicare
Deci, ne-am pune problema setărilor de replicare. Avem deja o baza de date MySQL și are următorii parametri:
pentru Expertul
Ar trebui să alegeți un ID unic server, selectați calea care va conține jurnalele binare, precum și numele bazei de date pentru procesul de replicare în interiorul secțiunii [mysqld]:
1. Server-id = 1
2. log-bin = / var / lib / mysql / mysql-bin
3. replicate-do-db = testdb
mysql @ maestru> slave replicare GRANT ON "testdb". * LA „replicare“ @ „192.168.1.102“ Identificat prin „parola“;
Acum, reporniți MySQL pentru intrarea în vigoare a tuturor modificărilor cu următoarea comandă:
rădăcină @ maestru # serviciu mysqld repornire
Dacă ați făcut totul corect și datele se confirmă, ar trebui să vedeți următoarea intrare în «statutul de master spectacol» echipă:
1. mysql @ maestru> SHOW MASTER STATUS \ G
Fișier: mysql-bin.000003
Poziție: 98
Binlog_Do_DB:
Binlog_Ignore_DB:
Poziția punct va arăta o serie de modificări ale bazei de date.
ID-ul este necesar pentru a specifica server, selectați un nume pentru baza de date, precum si calea catre jurnalele binare reale în [mysqld].
1. server id = 2
2. releu-log = / var / lib / mysql / mysql-releu-bin
3. Releu log-index = /var/lib/mysql/mysql-relay-bin.index
4. replicate-do-db = testdb
Prin aceasta, efectuați bază de date MySQL resetare:
rădăcină @ replică # serviciu MySQL repornire
Pentru transferul de date
Bază de date de blocare a înregistrărilor. frânare, sau selectați caseta de selectare pentru a selecta „Read only“ de pe Maestru. În cazul în care utilizatorul are privilegiul SUPER, această casetă de validare nu funcționează.
În prezența tabelelor MyISAM face «mese de spălare»:
1. mysql @ maestru> TABELE CU flush CITIRE LOCK;
2. mysql @ maestru> SET GLOBAL READ_ONLY = ON;
Selectați „Arată statutul de Master,“ și amintiți-vă ce valori în „File“ și „poziția“:
mysql @ replica> SHOW SLAVE STATUS \ G
Fișier: mysql-bin.000003
Poziție: 98
Efectuați o groapa de baze de date, și după operație pentru a anula blocarea master:
mysql @ maestru> SET READ_ONLY GLOBAL = OFF
Transferarea dump de baze de date la un server replica, restaura-le pe toate.
Porniți procesul de replicare folosind «maestru schimbare» comandă și «începe sclav».
1. mysql @ replica> SCHIMBĂRII MASTER TO MASTER_HOST = "192.168.1.101", MASTER_USER = "replicare",
MASTER_PASSWORD = "parola". MASTER_LOG_FILE = "mysql-bin.000003", MASTE_LOG_POS = "98";
2. mysql @ replica> porni sclav;
Linii MASTER_LOG_FILE și MASTER_LOG_POS trebuie să introduceți acele valori care au fost pe Maestru.
interesant pentru noi valori care sunt afișate pe procesul de replicare.
Valori în rânduri și Exec_Master_Log_Pos Master_Log_File ar trebui să crească împreună cu Maestrul.
Punctul Seconds_Behind_Master, care arată măsura în spatele Master Replica, ar trebui să fie în mod ideal 0. Dacă acest lucru este timpul să crească, atunci știți că aveți o sarcină foarte mare pe replici.
În cazul în care linia nu are nici o Slave_IO_State și Seconds_Behind_Master vezi parametrul 0, procesul de replicare nu este pornit. Trebuie să verificați jurnalul de MySQL și elimina cauzele, apoi reporniți procesul de replicare:
mysql @ replica> porni sclav;
există un șir de caractere, cu un timp de blocare de master este durata de timp pentru care este creat groapa.
În cazul în care groapa de gunoi se face pentru o lungă perioadă de timp, puteți pune un bloc de pe pavilion expertul de înregistrare „Read-only“ pentru a păstra în poziția sa de memorie și de a opri baza de date MySQL. Apoi, copiați fișierele bazei de date pe master și replica, inclusiv comandantul din nou.
Vă puteți conecta, de asemenea, mai multe replici
Cum de a face un master Replica
În cazul în care expertul nu reușește să funcționeze, trebuie să faci urgent una dintre replici Maestru. Fie ajusta Replică precum Master, sau să încerce să-l traducă într-un mod pasiv de Master.
Fișierul de configurare MySQL pe care doriți să activați binlogov:
Pentru procesul de replicare, adăugați un utilizator:
mysql @ maestru> slave replicare GRANT ON 'testdb'. * LA 'replication'@'192.168.1.101' IDENTIFIAD PRIN "parola";
Dacă faci master pasiv, atunci replicarea va merge în același mod ca și cea a replica. Dar, spre deosebire de replici, pasiv Expertul va crea jurnalele binare.
Pentru a deveni un maestru pasiv activ, aveți nevoie pentru a finaliza replicare pe ea. Activați replicarea fostul maestru. Lock înregistrare pe maestru activ pentru a evita pierderea de date:
1. mysql @ maestru> TABELE CU flush CITIRE LOCK
2. mysql @ maestru> SET GLOBAL READ_ONLY = ON;
3. mysql @ replica> SLAVE STOP
4. mysql @ replica> SHOW MASTER STARE;
Fișier: mysql-bin.000001
Poziție: 61
mysql @ maestru> SCHIMBĂRII MASTER TO MASTER_HOST = "192.168.1.102", MASTER_USER = "replicare", MASTER_PASSWORD = "parola",
MASTER_LOG_FILE = "mysql-bin.000001", MASTER_LOG_POR = 61;
mysql @ maestru> începe să slave
Puneþi expertul precedent