Mysqlbinlog - работа с двоично трупи MySQL

Mysqlbinlog - работа с MySQL двоични трупи

От версия 4.1.3 MySQL записва всички заявки, които водят до промяна на данните в регистъра на двоичен актуализация (двоично дневник). Но тази опция може да бъде изключен и по подразбиране. Включва поддръжка за двоичен ред в дневника за вход бин = MySQL-бин в конфигурационния файл (my.cnf). Трупи се поддържат и ако MySQL започва с --log-бен [= име_на_файл].

актуализация дневник обикновено се съхранява в типа на MySQL-бин файлове. tsiferki. Пример: MySQL-bin.000171. Ако настройките не са настроени на пълния път, тези файлове ще бъдат поставени в директорията, в която съхранява база данни MySQL. По подразбиране, размера на всеки файл - 1GB.

За да работите с двоични трупи трябва mysqlbinlog полезност. Тя се предлага в пакет с MySQL. Полезността обработва регистрационните файлове и показва използваем SQL кода директно на конзолата. Изход може да бъде пренасочен към файл (mysqlbinlog [опции] [log_fayly]> файл .sql), директно в MySQL (mysqlbinlog [опции] / MySQL [опции]) или зададени файл за извеждане на опциите за комунални услуги. Например:

# Mysqlbinlog -s -d db_name -r out.sql MySQL-bin.000038

В този случай, ще бъдат обработвани от MySQL-bin.000038 файл (текущата директория), изходът ще се възстанови в out.sql, ще бъдат показани само команди, свързана с база промяната в името на db_name. -s параметър, ние сме забрани сключването на допълнително натоварване.

По полезен пример:

Ето ни, наред с други неща, да се ограничи производството на заявки, които са били извършени от потребителят USER_NAME от тази дата. -t параметър разказва помощната програма, която искате да се справят, и трупи, които идват след MySQL-bin.000001 файл. Моля, имайте предвид, че ако се пренасочи изхода директно в MySQL, след това добавете пресен актуализация запис и примка дневник случи. За профилактика трябва също така да добавите параметър -D, който забранява дневника за поддръжка. Забраната ще бъде достъпно само ако сте изпълни команда от корен. Но пренасочване на изхода директно в мускулите не се препоръчва.

Останалите параметри да шпионират, както и за всяка конзола програма:

Но ако всичко е наред, за да се възстанови от сметищата не се нуждаят от нищо. Двоичен трупи са свикнали да заемат много място, не е на сървъра (наскоро погледна един от сървърите и е потресен - повече от 50 гигабайта). Ето защо, аз съветвам от време на време да зареже всички бази данни MySQL, след което се отстранява двоични трупи. За да направите това, използвайте следната команда:

# Mysqldump --flush огрев --delete-майстори-трупи --Всички-бази данни -u user_name -p> out.sql

За автоматизиране на този процес, добавете my.cnf (в секция [Mysqld]) следният ред: