Възстановяването при бедствия не завършва без подходяща система за архивиране. Когато се случи нещо лошо, данните могат да бъдат възстановени чрез използване на резервно копие, за предпочитане с най-новото. Може да искаме да избегнем възстановяването на данните, които не са актуализирани. Вероятно може да има някаква информация, която липсва със стария архив. Това е причината, поради която добрата практика за архивиране е от решаващо значение за повечето системи в днешно време.
MongoDB става все по-популярен от година на година. Има много компании, които започнаха да използват MongoDB като една от своите бази данни. Една от характеристиките и вероятно причината, поради която MongoDB е популярен, се дължи на неговата скорост и MongoDB е лесен за мащабиране. MongoDB е една от поддържаните бази данни в ClusterControl. Можете да разгръщате, импортирате, мащабирате и дори да извършвате архивиране с ClusterControl. В тази публикация в блога ще преминем през функцията за разширено архивиране за комплекта реплики на MongoDB и раздробения клъстер.
Типове архивиране на MongoDB
MongoDB поддържа както логическо, така и физическо архивиране. В допълнение към това, MongoDB поддържа и възстановяване във времето (PITR). Нека видим каква е разликата между всичките 3 вида архивиране.
Логически архив | mongodump | Тази помощна програма ще създаде двоичен експорт на съдържанието на база данни. Не само това, mongodump може да експортира данни от mongod или mongos екземпляри, може да експортира данни от самостоятелни, репликационни набори и разпределени клъстери |
Физическо архивиране | Няма | Физическото архивиране в MongoDB може да се направи само на системно ниво. Понастоящем в ClusterControl няма физическо архивиране. Начинът, по който работи физическото архивиране, е чрез създаване на моментна снимка на LVM или устройство за съхранение. |
PITR | Percona Backup за MongoDB | Percona Backup за MongoDB е наследен от и замества mongodb_consistent_backup, който вече е остарял. Това е разпределено решение с ниско въздействие за постигане на последователни архиви както за MongoDB разчленени клъстери, така и за набори от реплики. Този тип архивиране е логично, но в същото време може да действа като PITR архив. |
Сега, когато знаем каква е разликата между типа архивиране.
Управление на архивиране на MongoDB
ClusterControl ви позволява да създавате резервно копие в реално време, както и да го планирате по желания график. Едно нещо, което си струва да се спомене, в случай, че искате да планирате, ClusterControl ще използва UTC часова зона. Така че трябва да изберете точното време, което отговаря на вашата часова зона, така че графикът да работи в по-малко натовареното време.
Нека да продължим и да опитаме да използваме функцията за архивиране в ClusterControl. В допълнение към това ще прегледаме и една от разширените функции, която е да качите архива в облака. Започвайки с ClusterControl 1.9.0, MongoDB поддържа качване в облак, което ви позволява да качите резервното копие в предпочитания от вас доставчик на облачно съхранение.
Логическо архивиране на MongoDB
Нека започнем с логическото архивиране. Преди функцията за качване на архива в облака да може да се използва, трябва да го интегрирате с предпочитания от вас доставчик на облак. За нашия случай ще го интегрираме с AWS облак. За да извършите пълната интеграция на AWS, можете да следвате следните стъпки:
-
Използвайте имейл адреса и паролата на вашия акаунт в AWS, за да влезете в конзолата за управление на AWS като root потребител на акаунта на AWS .
-
На страницата IAM Dashboard изберете името на акаунта си в лентата за навигация и след това изберете Моите идентификационни данни за сигурност.
-
Ако видите предупреждение за достъп до идентификационните данни за сигурност за вашия AWS акаунт, изберете Продължи към идентификационните данни за сигурност.
-
Разгънете секцията Ключове за достъп (идентификатор на ключ за достъп и таен ключ за достъп).
-
Изберете Създаване на нов ключ за достъп. След това изберете Изтегляне на ключов файл, за да запишете идентификатора на ключа за достъп и секретния ключ за достъп във файл на вашия компютър. След като затворите диалоговия прозорец, не можете да извлечете отново този таен ключ за достъп.
Ако приемем, че вече имате готов клъстер MongoDB, ще започнем нашия процес на архивиране. Първо отидете на MongoDB cluster -> Backup -> Create Backup
На следващата страница можете да посочите дали искате да активирате криптирането или не. За криптиране ClusterControl ще използва OpenSSL за криптиране на архива, използвайки алгоритъма AES-256 CBC. Шифроването се извършва на резервния възел. Ако изберете да съхранявате архива на възела на контролера, архивните файлове се предават в криптиран формат чрез socat или netcat. Шифроването се счита за една от разширените функции за архивиране, които могат да бъдат използвани, така че в нашия случай ще активираме тази опция. Можете също така да определите периода на запазване на вашия архив на тази страница. За нашия случай ще използваме настройката по подразбиране от 31 дни.
На третата страница трябва да посочите входа за облачния доставчик , изберете/създайте кофата. Можете също да посочите запазването за вашето архивиране в облак, настройката по подразбиране е 180 дни.
След като щракнете върху бутона Създаване на архив, задачата ще започне незабавно и ще отнеме известно време в зависимост от размера на вашата база данни. В същото време архивът ще бъде качен в облачното хранилище (AWS). Може да забележите, че иконите „ключ“ и „облак“ са маркирани, след като архивирането приключи, както следва:
Сега, когато имате готов архив, за да възстановите архива, стъпката е много просто. Всичко, което трябва да направите, е да щракнете върху връзката „Възстановяване“ и да кликнете върху бутона „Край“ на страницата за възстановяване, както следва:
Архивиране на MongoDB PITR
Както споменахме по-рано, Percona Backup за MongoDB е тип PITR архивиране. Преди да можете да използвате този тип архивиране, трябва да инсталирате агента (pbm-agent) на всички възли/екземпляри на MongoDB. Преди това трябва да монтирате и споделена директория на всички възли. Да започваме!
Първо, трябва да конфигурирате NFS сървъра. За да инсталирате NFS сървър, трябва да изберете или разположите всяка виртуална машина, за нашия случай ние ще инсталираме NFS сървъра в възела ClusterControl (Centos):
[[email protected] ~]# dnf инсталира nfs-utils
След като се инсталира NFS помощната програма, можете да стартирате услугата и да я активирате при стартиране на системата:
[[email protected] ~]# # systemctl стартиране на nfs-server.service
[[email protected] ~]# # systemctl активиране на nfs-server.service
[[email protected] ~]# # състояние на systemctl nfs-server.service
Следващата стъпка е да конфигурирате /etc/exports файл, така че директорията да е достъпна от NFS клиентите:
[[email protected] ~]# vi /etc/exports
/mnt/backups 10.10.80.10(rw,sync,no_root_squash,no_subtree_check)
В клиентския възел, който е нашите възли на базата данни, трябва да инсталираме и необходимите NFS пакети:
[[email protected] ~]# dnf install nfs-utils nfs4-acl-tools
След като пакетите са инсталирани, можем да създадем директорията и да я монтираме:
[[email protected] ~]# mkdir -p /mnt/backups
[[email protected] ~]# mount -t nfs 10.10.80.10:/mnt/backups /mnt/backups
Уверете се, че сте монтирали на всички възли на базата данни, за да можем да инсталираме pbm-agent. Като се има предвид, че всички възли вече имат NFS монтирана директория, сега ще продължим да инсталираме агента. Отидете на MongoDB cluster -> Backup -> Settings -> Percona Backup
След като щракнете върху бутона Install Percona Backup, ще се появи следният екран . Тук трябва да посочите споделената директория. Отново, моля, уверете се, че директорията е монтирана във всичките ви възли на MongoDB. След като резервната директория е посочена, можете да щракнете върху бутона Инсталиране и да изчакате инсталацията да завърши.
Успешната инсталация трябва да изглежда като следната екранна снимка. Сега можем да продължим с процеса на архивиране:
За да създадете резервно копие с помощта на Percona Backup, стъпките са прости. За съжаление, не можете да използвате опцията за криптиране на архива с помощта на този метод. За да използвате функцията за качване в облака, трябва да активирате опцията, преди да изберете типа на архивиране, в противен случай вашият архив няма да бъде качен. Ще забележите, че функцията за качване ще изчезне, след като изберете „percona-backup-mongodb“.
На втората страница можете да посочите локалното задържане:
Що се отнася до последната страница, можете да посочите подробностите за облака и задържането като в предишния пример. Процесът на възстановяване е същият като в предишния пример, всичко, което трябва да направите, е да кликнете върху връзката „Възстановяване“ и да следвате стъпките на страницата за възстановяване:
Заключение
С ClusterControl можете да създадете и качите резервното си копие на MongoDB в облака. Качването в облака е една от новите и усъвършенствани функции за MongoDB, която е въведена, започвайки с ClusterControl 1.9.0, при условие че интеграцията към доставчика на облак е извършена успешно. Можете също да шифровате архива си с помощта на ClusterControl, ако искате да защитите архива си.