Когато става въпрос за архивиране и архивиране на данни, ИТ отделите често са подложени на стрес да спазват строги споразумения за ниво на обслужване, както и да предоставят по-стабилни процедури за архивиране, които биха свели до минимум времето за престой, ускорят процеса на архивиране, разходите по-малко и отговарят на строги изисквания за сигурност.
Има множество начини да направите резервно копие на MySQL база данни, но можем да разделим тези методи на две групи – логически и физически.
Логическите архиви съдържат данни, които се експортират с помощта на SQL команди и се съхраняват във файл. Това може да бъде, например, набор от SQL команди, които, когато бъдат изпълнени, ще доведат до възстановяване на съдържанието на базата данни. С някои модификации на синтаксиса на изходния файл можете да съхранявате резервното си копие в CSV файлове.
Логическите архиви са лесни за изпълнение, само с едноредовност, можете да направите резервно копие на цялата си таблица, база данни или всички бази данни на mysql в екземпляра.
За съжаление, логическите архиви имат много ограничения. Те обикновено са по-бавни от физически. Това се дължи на режийните разходи, необходими за изпълнение на SQL команди за извеждане на данните и след това за изпълнение на друг набор от SQL команди, за да се върнат данните в базата данни. Те са по-малко гъвкави, освен ако не пишете сложни работни натоварвания за архивиране, които биха включвали няколко стъпки. Не работи добре в паралелна среда, осигурява по-малко сигурност и т.н. и т.н.
Физически архиви в MySQL World
MySQL не се предлага с онлайн физическо архивиране за общностно издание. Можете да платите за Enterprise версия или да използвате инструмент на трета страна. Най-популярният инструмент на трети страни на пазара е XtraBackup. Тези, които ще сравним в тази статия в блога.
Percona XtraBackup е много популярният софтуер за горещо архивиране на MySQL/MariaDB с отворен код, който извършва неблокиращи архиви за InnoDB и XtraDB бази данни. Той попада в категорията за физическо архивиране, която се състои от точни копия на директорията с данни на MySQL и файловете под нея.
Едно от най-големите предимства на XtraBackup е, че не заключва вашата база данни по време на процеса на архивиране. За големи бази данни (100+ GB), той осигурява много по-добро време за възстановяване в сравнение с mysqldump. Процесът на възстановяване включва подготовка на MySQL данни от архивните файлове, преди да ги замените или превключите с текущата директория с данни на целевия възел.
Percona XtraBackup работи, като запомня поредния номер на журнала (LSN) при стартиране и след това копира файловете с данни на друго място. Копирането на данни отнема време и ако файловете се променят, те отразяват състоянието на базата данни в различни моменти от време. В същото време XtraBackup изпълнява фонов процес, който следи файловете в дневника на транзакциите (известен още като дневник за повторение) и копира промените от него. Това трябва да се прави непрекъснато, тъй като регистрационните файлове на транзакциите се записват по кръгова система и могат да бъдат използвани повторно след известно време. XtraBackup се нуждае от записите в дневника на транзакциите за всяка промяна на файловете с данни от началото на изпълнението.
С помощта на този инструмент можете:
- Създавайте горещи резервни копия на InnoDB, които завършват бързо и надеждно, без да поставяте на пауза вашата база данни или да добавяте натоварване към сървъра
- Правете постепенно архивиране
- Преместване на таблици между MySQL сървъри онлайн
- Лесно създавайте нови подчинени на MySQL репликация
- Предавайте поточно компресирани MySQL архиви към друг сървър
- Спестете от дисково пространство и мрежова честотна лента
MySQL Enterprise Backup предоставя горещи, онлайн, неблокиращи архиви на множество платформи. Това не е безплатен инструмент за архивиране, но предлага много функции. Стандартната цена на лиценза е $5000 (но може да варира според споразумението ви с Oracle.)
Поддържани платформи за процес на архивиране
MySQL Enterprise
Може да работи на Linux, Windows, Mac и Solaris. Важното е, че може също да съхранява резервно копие на лента, което обикновено е по-евтино решение от записа на дискове. Директното записване на лента поддържа интеграция с Veritas Netbackup, Tivoli Storage Manager и EMC NetWorker.
XtraBackup
XtraBackup може да работи само на платформата Linux, което несъмнено може да бъде запушалка за тези, които работят на Windows. Решение тук може би репликация към подчинения, работещ на Linux и стартиране на архивиране от там.
Основни разлики в процеса на архивиране
MySQL Enterprise Backup предоставя богат набор от функции и функционалности за архивиране и възстановяване, включително значителни подобрения в производителността спрямо съществуващите методи за архивиране на MySQL.
Oracle показва, че архивирането на Enterprise е дори 49 пъти по-бързо от mysqldump. Това, разбира се, може да варира в зависимост от вашите данни, но има много функции за подобряване на процеса на архивиране. Паралелното архивиране определено е една от най-големите разлики между mysqldump и Enterprise архивиране. Повишава производителността чрез многонишкова обработка. Най-интересната функция обаче е компресията.
--компресиране
Създава резервно копие в компресиран формат. За редовно архивиране, сред всички поддържани от MySQL машини за съхранение, се компресират само файлове с данни във формат InnoDB и те носят разширението .ibz след компресирането. По същия начин, за архивиране с едно изображение, само файловете с данни от формата InnoDB в резервното изображение се компресират. Двоичният регистрационен файл и релейните регистрационни файлове се компресират и записват с разширението .bz, когато са включени в компресиран архив.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Архивиране на MySQL с ClusterControl
ClusterControl ви позволява да планирате архивиране с помощта на XtraBackup и mysqldump. Той може да съхранява архивните файлове локално на възела, където е взето архивирането, или архивните файлове също могат да бъдат предавани поточно към възела на контролера и компресирани в движение. Той не поддържа архивиране на MySQL Enterprise, но с разширените функции на mysqldump и XtraBackup може да е добър вариант.
ClusterControl е всеобхватна система за управление на база данни с отворен код за потребители със смесени среди. Той предоставя разширена функционалност за управление на архивиране за MySQL или MariaDB.
С ClusterControl можете:
- Създаване на правила за архивиране
- Наблюдавайте състоянието на архивиране, изпълненията и сървърите без архивиране
- Извършване на архивиране и възстановяване (включително възстановяване в момент от време)
- Контролирайте запазването на резервно копие
- Запазване на резервни копия в хранилище в облак
- Проверка на резервните копия (пълен тест с възстановяването на самостоятелния сървър)
- Шифроване на резервни копия
- Компресиране на резервни копия
- И много други
Заключение
Като администратор на база данни трябва да се уверите, че базите данни се архивират редовно и че съответните процедури за възстановяване са налице и тествани. Както Percona XtraBackup, така и MySQL Enterprise Backup предоставят на DBA високопроизводително решение за онлайн архивиране с технология за компресиране и криптиране на данни, за да гарантират, че данните ви са защитени в случай на прекъсване или прекъсване на работа
Резервните копия трябва да се планират в съответствие с изискването за възстановяване. Загубата на данни може да бъде пълна или частична. Например, не винаги е необходимо да възстановявате всички данни. В някои случаи може просто да искате да извършите частично възстановяване, като възстановите липсващи таблици или редове. С набора от функции за достигане и двете решения биха били чудесен заместител на mysqldump, който все още е много популярен метод за архивиране. Наличието на mysqldump също е важно за частично възстановяване, при което повредените бази данни могат да бъдат коригирани чрез анализиране на съдържанието на сметището. Двоичните регистрационни файлове ни позволяват да постигнем възстановяване в даден момент, например до точно преди MySQL сървърът да изпадне.
Всичко това е за част първа, в следващата част ще тестваме производителността и на двете решения и ще изпълним някои реални сценарии за архивиране и възстановяване.