It's a good idea to take a backup from a slave as long as you make sure the slave is consistent with the master. Usually a regular pt-table-checksum
job gives you a good level of confidence.
Yes, you can create clones from a backup taken from the slave. Just make sure you add --slave-info
option so xtrabackup records the binary log position. You can use it in CHANGE MASTER
when setting up a new slave.
At TwinDB we decided to go with differential backups. It's when you take a full copy on Sunday and each other day you save the difference between Sunday and the current day. That has some benefits:
Faster recovery time. You need to prepare the full copy and only one incremental copy.
Lower probability of failure. If you have a chain of incremental copies every copy must be good otherwise you can't restore. With differential backups there is only one copy to apply on top of the full copy. So it's less likely to fail.
In most of cases total size of backup copies is still reasonable. But of course with incremental copies save more space.
Between daily backup jobs it makes sense to store binary logs. So you can do point in time recovery and recovery time can be reasonable.