Replay oplog from arbitrary start time¶
You can have PBM save oplog slices without the mandatory base backup snapshot. This behavior is controlled by the pitr.oplogOnly configuration parameter:
pitr:
oplogOnly: true
You can then replay the oplog for a specific period on top of any backup: logical, physical, storage-level snapshot (like EBS-snapshot).
By replaying these oplog slices on top of a backup snapshot with the pbm oplog-replay command, you can manually restore sharded clusters and non-sharded replica sets to a specific point in time from a backup made by any tool and not only by Percona Backup for MongoDB. Plus, you reduce time, storage space, and administration efforts on making the redundant base backup snapshot.
Warning
Use the oplog replay functionality with caution, only when you are sure about the starting time from which to replay oplog.
Ways to specify time for oplog replay¶
PBM uses MongoDB’s timestamp format for oplog replay, which provides operation-level resolution. Each oplog operation is identified by (epoch, ordinal), where epoch is the Unix time in seconds and ordinal distinguishes multiple operations within the same second. The specified operation is always included in the replay.
You can define the oplog replay stop point in two ways:
-
By ISO timestamp:
Specify an end time as an ISO timestamp (for example,2025-01-02T15:00:00). Use this method when you want to include all operations that occurred until the specified second. -
By MongoDB timestamp tuple:
Specify the stop point asepoch,ordinal(e.g.,1764576382,20). PBM includes all operations up to that exact operation. Use this method when you need precise control over which specific operations within a second to include.
Oplog replay for physical backups¶
Starting with version 2.2.0, oplog replay on top of physical backups made with Percona Backup for MongoDB is done automatically as part of point-in-time recovery.
This section describes how to manually replay oplog on top of physical backups. This is useful for backups made with Percona Backup for MongoDB version 2.1.0 and earlier, where oplog apply was not automatically done by PBM.
After you restore a physical backup, do the following:
-
Stop point-in-time recovery, if enabled, to release the lock.
-
Run
pbm statusorpbm listcommands to find oplog chunks available for replay. -
Run the
pbm oplog-replaycommand and specify the--startand--endflags. See how you can specify the time.pbm oplog-replay --start="2026-01-02T15:00:00" --end="2026-01-03T15:00:00"For a fine-grained precision which exactly operations within a second to include, specify the values for the
--startand--endflags asepoch,ordinaltuples.pbm oplog-replay --end “1764576382,100” -
After the oplog replay, make a fresh backup and enable the point-in-time recovery oplog slicing.
Oplog replay for storage-level snapshots¶
This section describes how to manually replay oplog on top of snapshot backups.
After you restore a snapshot backup, do the following:
-
Start all
mongodnodes -
Start all
pbm-agents -
Run the following command to resync the backup list with the storage:
pbm config --force-resync -
Run the
pbm oplog-replaycommand and specify the--startand--endflags. Use thelast_write_timefrom the output ofpbm describe-backupas the start. See how you can specify the time.pbm oplog-replay --start="2026-01-02T15:00:00" --end="2026-01-03T15:00:00" -
Start the balancer and start
mongosnodes. -
Make a fresh backup to serve as the new base for future restores.
Created: May 21, 2026