I'll answer this at a high level for you. The two backup methods work at different levels. An RMAN
backup is a physical backup and a Data Pump backup is a logical backup.
A database dump using expdp
is a 1-time export of one or more database schemas. It backs up DDL (table structures, views, synonyms, stored procedures, packages, etc), plus data.
An RMAN
backup is a point-in-time backup of an entire database (for the purposes of this question). It backs up the physical blocks that make up the database (data files, control file, archive logs etc) and, in combination with the database archive logs, allows point in time recovery options.
In the event of a complete database loss an RMAN
backup can be used to restore the complete database. However, a data dump taken using expdp
would need a new database creating before the data could be imported using impdp
.
For a hobbyist Oracle XE database (that may not be in archivelog mode), backups using expdp
will probably suffice.
The Oracle Documentation covers this far better than I could ever explain. Oracle® Database Concepts - Backup and Recovery
Operations and issues on slaves will not impact the Master. I dont't understand your concept of "the master -> slave replication running every 5 minutes". All transactions on Master will immediatelty be replicate on slaves.
If your tables are InnoDB, your dump will not lock any tables (with the option --single-transaction) so you can have normal activity on master and slave too.
To backup your slave you can also stop the replication, shutdown your MySQL (Slave) and copy your datafiles or use a hot backup solution like Percona XtraBackup.
Max.
Best Answer
The dump process happens in 3 phases:
Everything happening until end of phase 2 are contained in the dump. But the changes performed during phase 3 will be missing. Of course phase 3 is pretty fast, so the chances are that you'll not be missing anything. You can check the state of your transaction log after the dump. If anthing is in there, then you know these transactions are not in the dump.
But of course transactions happening afterwards will not be in the dump either so I guess it's not much of an issue.
If your concern is that you dump multiple databases and the dumps might be out of sync, you should consider using quiesce database.