Ако използвате реплика на MongoDB в обществена облачна среда за разумен период от време, шансовете са, че сте преживели „откат“. Звучи обезсърчително, но има лесни стъпки за възстановяване на данните ви, в случай че системата ви се върне назад.
Кога се извършва връщане назад?
Отмяна в набор от реплики на MongoDB може да се случи в следната последователност от стъпки
1. Първичният MongoDB приема записи, които все още не са репликирани на други вторични и след това се срива
2. Друг сървър става основен и приема други записи
3. Когато предишният първичен се върне отново и синхронизира отново състоянието си с мнозинството
Мога ли да предотвратя извършването на връщане назад?
Сигурен. Но както винаги идва с цена. Можете да зададете загрижеността си за писане на „МНОЖИНСТВО“. Това ще изисква всичките ви записи да са ангажирани с по-голямата част от възлите в набора от реплика, преди MongoDB да може успешно да го потвърди. Това обаче ще има драматично въздействие върху вашата производителност на запис. Така че в реалния свят добър баланс може да бъде да се използва само загриженост за запис „MJORITY“ за записвания на важни транзакционни данни
Как да възстановим данни от връщане назад?
По-долу са дадени четири лесни стъпки за възстановяване на вашите данни в случай на връщане назад
1. Намерете файловете за връщане назад
Когато възникне връщане назад, bson файловете на данните за връщане се поставят в директорията „откат“ на вашия път към данните в MongoDB. Файловете изглеждат нещо като е
<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson
2. Заредете данните от връщането в отделна база данни или сървър
Моето предпочитание е да копирам файловете за връщане на нов сървър и да използвам mongorestore, за да ги заредя в сървъра. Ето синтаксиса, който можете да използвате
mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>
3. Пресейте данните и почистете ненужните данни
В този момент, като администратор на база данни, ще трябва да използвате своята преценка, за да решите кои данни от връщането назад искате да запазите и кои вече нямат смисъл. В повечето случаи е малко вероятно просто да импортирате всички данни. Това е може би най-трудната стъпка при възстановяване на обратно.
4. Импортирайте данни в основния клъстер
Използвайте инструментите mongodump и mongorestore, за да изтеглите изчистените данни и да ги импортирате повторно във вашия оригинален производствен клъстер.
За повече информация относно операциите за връщане, моля, направете справка с официалната документация на MongoDB