MongoDB Restore / Snapshot Schedule - Point In Time vs. Oplog Timestamp in docs Restore a Replica Set from a Backup those restore points are available:


Snapshot
Point In Time
Oplog Timestamp


What's the differences between those restore points? I guess Snapshot is fast restore, because only copy already existing files to destination. But it takes compute and storage resources the generate every 6 hours a snapshot and it will be stored only for 3 days.

I don't understand the difference between Point In Time and Oplog Timestamp. When to choose what (advantages and disadvantages)? Point in Time is only available 24 hours back, but Oplog Timestamp since first backup (Oplog Store)?

this is our snapshotSchedule. Any improvments for generic DBaaS provider, which doesn't know individual customers? Any issues?

configureDefaultBackupOptions = true
snapshotIntervalHours = 6 //Supported values are 6, 8, 12, and 24
snapshotRetentionDays = 3 // Supported values are 1 - 5
dailySnapshotRetentionDays = 10 //Supported values are 1 - 365
weeklySnapshotRetentionWeeks = 6 //Supported values are 1 - 52.
monthlySnapshotRetentionMonths = 6 // Supported values are 1 - 36
pointInTimeWindowHours = 24
retryIntervalInSeconds = 15
maxRetryDurationInMinutes = 30
What's the differences between those restore points? I guess Snapshot is fast restore, because only copy already existing files to destination. But it takes compute and storage resources the generate every 6 hours a snapshot and it will be stored only for 3 days.


A snapshot is a full backup of your data captured at a specific interval. Restoring from a stored snapshot is the fastest option because minimal manipulation needs to be done by Ops Manager in order to provide the restore files. The snapshotIntervalHours (6 hours in your config) and snapshotRetentionDays (3 days in your config) are meant to provide more frequent restore points for recent data as compared to the archived daily/weekly/monthly snapshots. With your current configuration, restores would be possible to: stored snapshots taken on 6 hour intervals in the last 3 days, a point in time within the last 24 hours, or a daily/weekly/monthly snapshot.


  I don't understand the difference between Point In Time and Oplog Timestamp. When to choose what (advantages and disadvantages)?


These are both options for custom point-in-time snapshots, which can be time and resource intensive for Ops Manager to process. The backend processing involves restoring the nearest (older) stored snapshot and then applying the oplog changes up to the specified point in time (as marked by a date/time in seconds or an oplog timestamp). Both are limited by the available oplog history as specified in your pointInTimeWindowHours configuration (i.e. 24 hours).

The Point In Time restore point creates a custom snapshot up to the selected date and time; the Oplog Timestamp is a more precise custom snapshot which presumes you know the exact oplog timestamp you want to restore to (for example, up to and including the entry preceding an accidental collection drop).


  Any improvments for generic DBaaS provider, which doesn't know individual customers? Any issues?


It depends what level of backup/restore granularity you want to offer your customers. Increasing snapshot frequency or retention will consume more server resources, but perhaps provide more comfort for your customers. Conversely, you could reduce the snapshot frequency or retention to save on resources.

As a DBaaS provider I expect you would work standard backup &amp; licensing costs into your service model and perhaps allow customers to vary backup options based on subscription plans or premiums (for example, as MongoDB Cloud Manager does).

Note: MongoDB Ops Manager is not currently intended to be the base for a DBaaS offering and should only be used in production as part of a MongoDB Enterprise Advanced subscription (which includes commercial support for questions such as configuration, capacity planning, tuning, ...).