Thanks. Yes, I had seen that in the docs but I got the impression that the deltas referred to there were at the granularity of whole files. For example, let's say backup 1 contains files A, B and C. If B is then modified then, during the next backup rsync might only /transfer/ the deltas needed to change B to B1 e.g. "replace line 5 with [new content]". I got the impression that those deltas would be used to create B1 though, and that both complete files (B and B1) would be stored in the pool as whole files. The deltas referred to in the docs would then be how to get from one /backup/ to another e.g. "Delete file B, insert file B1" (or vice versa, depending on whether it's BackupPC V3 or V4).

So that's the way I interpreted it, but I'm very new to this so I may have got the wrong end of the stick completely. If anyone could confirm or correct my understanding, I'd appreciate it either way.

Thanks for the comments on mysqldump, I'll take a look at those options.

SteveR.

On 20/11/2018 14:05, Mike Hughes wrote:

Hi Steve,

It looks like they are stored using reverse deltas. Maybe you’ve already seen this from the V4.0 documentation:

  * Backups are stored as "reverse deltas" - the most recent backup is
    always filled and older backups are reconstituted by merging all
    the deltas starting with the nearest future filled backup and
    working backwards.

This is the opposite of V3 where incrementals are stored as "forward deltas" to a prior backup (typically the last full backup or prior lower-level incremental backup, or the last full in the case of rsync).

  * Since the most recent backup is filled, viewing/restoring that
    backup (which is the most common backup used) doesn't require
    merging any deltas from other backups.
  * The concepts of incr/full backups and unfilled/filled storage are
    decoupled. The most recent backup is always filled. By default,
    for the remaining backups, full backups are filled and incremental
    backups are unfilled, but that is configurable.

Additionally these tips might help apply deltas to the files and reduce transfer bandwidth:

MySQL dump has an option  ‘--order-by-primary’ which sorts before/while dumping the database. Useful if you’re trying to limit the amount to be rsync’ed. You’ll need to evaluate the usefulness of this based on db design.

If you’re compressing your database look into the “--rsyncable” option available in the package pigz.

*From:* Steve Richards <b...@boxersoft.com>
*Sent:* Tuesday, November 20, 2018 04:34
*To:* backuppc-users@lists.sourceforge.net
*Subject:* [BackupPC-users] Large files with small changes

I think some backup programs are able to store just the changes ("deltas") in a file when making incrementals. Am I right in thinking that BackupPC doesn't do this, and would instead store the whole of each changed file as separate entries in the pool?

Reason for asking is that I want to implement a backup strategy for databases, which is likely to involve multi-megabyte SQL files that differ only slightly from day to day. I'm trying to decide how best to handle them.



_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/
_______________________________________________
BackupPC-users mailing list
BackupPC-users@lists.sourceforge.net
List:    https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki:    http://backuppc.wiki.sourceforge.net
Project: http://backuppc.sourceforge.net/

Reply via email to