Chcę codziennie tworzyć kopie zapasowe dla pojedynczej bazy danych mongodb, prawdopodobnie z mongodump. Aby nie utracić żadnych danych, chciałbym, aby było to przyrostowe, więc jeśli coś pójdzie nie tak w środku dnia, potrzebuję móc powtórzyć zmiany w tym dniu aż do momentu awarii po zrobieniu sklepu z mongolami.Chcesz zrobić przyrostową kopię zapasową dla mongodb. Journaling? Oplog?
Czy poprawnie rozumiem, że muszę do tego użyć oploga? A może zapisujesz odpowiedź w dzienniku? Próbowałem wykonać następujące czynności:
- Przekształcanie mojej bazy danych mongo w zestaw replik tylko jednego, tak aby tworzył oplog. (To czuje się całkiem hacky)
- Ponowne mongod z opcją --oplog
- Performing zmiany, które powinny zostać zapisane w oplog
Jednak nic się nie dostaje przechowywane w oplog. Jaki jest najlepszy sposób tworzenia takich przyrostowych kopii zapasowych? Po prostu szukam podobnego podejścia do odtwarzania mysql binlog.
Dzięki
Dzięki za wyjaśnienia, zagłębiłem się w to wczoraj i rozumiem, co musi się stać. Chcę zrobić codzienną mongodump, zapisać ją na S3, a każda godzina również zapisać mój oplog na S3. Mam dwa pytania uzupełniające, jeśli byłbyś tak miły: 1. Mój oplog jest przechowywany w lokalnej bazie danych i mam teraz dostęp do niego z powłoki Mongo. Aby utworzyć kopię zapasową oploku, czy mogę skopiować wszystkie pliki lokalne (1-N) i local.ns do s3? 2. Jaki jest najlepszy sposób na powtórne oglory? Czy mongorestore --oplogReplay wystarczy na to? Dziękuję bardzo! –
mongodump --oplog zapewnia, że wszystkie wpisy oploga utworzone podczas zrzutu mogą być odtwarzane z mongorestore --oplogReplay. Nie można użyć magazynu mongorestore --oplogReplay do ponownego odtworzenia operacji oplog, które wystąpiły po zakończeniu zrzutu. Jednym z rozwiązań, które możesz zbadać, jest zrzucanie kolekcji oplog co godzinę i użycie polecenia applyOps: http://docs.mongodb.org/manual/reference/commands/#applyOps – Jenna
To może być hacky .. ale myślę, że używanie sklepu z mongorekami --oplogReplay faktycznie działał. To, co zrobiłem, to mongorzucenie oploku, przeniesienie wynikowego "oplog.rs".bson 'to' dump/oplog.bson 'i uruchomiono mongorestore --oplogReplay. Czy to jest niebezpieczne? Jeśli tak, zdecydowanie skorzystam z techniki applyOps. –