Mysqlbinlog - lucru cu bușteni binar MySQL

Mysqlbinlog - lucrul cu bușteni binare MySQL

Începând cu versiunea 4.1.3 MySQL înregistrează toate cererile care au ca rezultat o schimbare a datelor în jurnalul de actualizare binar (log binar). Dar această opțiune poate fi dezactivată și în mod implicit. Include suport pentru binare linie log-log bin = mysql-bin în fișierul de configurare (my.cnf). Logs sunt menținute și dacă MySQL este pornit cu --log-bin [= file_name].

actualizare jurnal este de obicei stocate în tipul de fișiere mysql bin. tsiferki. Exemplu: mysql-bin.000171. Dacă setările nu sunt setate la calea completă, aceste fișiere vor fi plasate în directorul în care magazinele de baze de date MySQL. În mod implicit, dimensiunea fiecărui fișier - 1GB.

Pentru a lucra cu jurnalele binare nevoie de utilitate mysqlbinlog. Acesta vine la pachet cu MySQL. Utilitarul procesează fișierele jurnal și afișează codul SQL utilizabil direct la consolă. Ieșire poate fi redirecționat către un fișier (mysqlbinlog [opțiuni] [log_fayly]> .sql fișier), direct în MySQL (mysqlbinlog [optiuni] / mysql [opțiuni]) sau specificați un fișier pentru ieșire la opțiunile de utilitate. De exemplu:

# Mysqlbinlog -s -d DB_Name -r out.sql mysql-bin.000038

În acest caz, vor fi procesate de fișier MySQL-bin.000038 (directorul curent), producția va recupera în out.sql, vor fi afișate numai comenzile relevante pentru schimbarea de bază în numele DB_Name. parametrul -s, am interzis încheierea de regie suplimentară.

Un exemplu mai util:

Aici suntem, printre altele, să limiteze producția de interogări care au fost efectuate de către utilizatorul USER_NAME de la acea dată. parametrul -t spune utilitatea pe care doriți să se ocupe, și jurnalele care vin după fișierul mysql-bin.000001. Vă rugăm să rețineți că, dacă redirecționați ieșirea direct în MySQL, apoi se adaugă în stare proaspătă de actualizare jurnal de înregistrare și looping se întâmplă. Pentru prevenirea ar trebui să adauge, de asemenea, un parametru D, care interzice jurnalul de întreținere. Interdicția va fi disponibilă numai dacă executați o comandă dintr-o rădăcină. Dar redirecționarea de ieșire direct în mușchi nu este recomandată.

Parametrii rămași să spioneze precum și pentru orice program de consolă:

Dar dacă totul este bine, pentru a recupera de la gropile nu au nevoie de nimic. Un jurnalele binare sunt obișnuiți să ocupe o mulțime de spațiu nu este un server (recent sa uitat la unul dintre serverele si a fost ingrozit - mai mult de 50 de gigabytes). Prin urmare, am sfătui din când în când să-și arunce toate bazele de date MySQL, urmată de îndepărtarea buștenilor binare. Pentru a face acest lucru, utilizați următoarea comandă:

# Mysqldump --flush-busteni -delete-master-bușteni --all-baze de date -u user_name -p> out.sql

Pentru a automatiza acest proces, adăugați un my.cnf (în secțiunea [mysqld]) următoarea linie: