Is there a program with which I can create daily MySQL, PostgreSQL and MariaDB backups with these requirements:

  • The first time, make a full backup.
  • The second time, only the changes since the last backup, and so on.

Only with some software or script, not PHP.


4 Answers 4


If you're using MySQL with InnoDB tables, then you could take incremental backups with Percona's xtrabackup, or talk to Oracle about enterprise licensing, which would net you MySQL Enterprise Backup.

Xtrabackup is a brilliant piece of software, but it behaves very differently from traditional MySQL backups using mysqldump, and it's worth spending some time studying and testing it before you look at rolling it into production.

If you're using MySQL with MyISAM, you're pretty much out of luck. You could perhaps do something logically, like maintain "last modified" timestamps on your tables that are maintained by triggers, but there's manual maintenance and several caveats that might make that unwise.

Recent versions of Xtrabackup should also work with MariaDB, though again you'll probably want to test this yourself.

  • Thanks, but I have noticed that this program is only for linux, and I need it for Windows Server. May 2, 2013 at 23:11
  • It looks like Oracle's backup tools are available for Windows. Alternatively, you could take mysqldump logical backups and apply the binary log (if you've got it enabled). I can flesh this answer out more if you need. May 3, 2013 at 9:20

Postgres: The write ahead log(s), WAL; it's a complimentary component of your backup strategy. It's exactly what you want.


For Postgresql on MS Windows, the Postgresql wiki has an "Automated Backup on Windows" article that may be of use.

There is also "Instant PostgreSQL Backup and Restore How-to" available from Packt that provides a good overview of the various options available using the tools that come with Postgresql. There is nothing in the booklet that can't be found on the web but they do a nice job of pulling that all together in one document and the price is very reasonable.


For MySQL and PostgreSQL you can use the Snapshot Backups in order to obtain full or incremental backups:

Some file system implementations enable “snapshots” to be taken. These provide logical copies of the file system at a given point in time, without requiring a physical copy of the entire file system. (For example, the implementation may use copy-on-write techniques so that only parts of the file system modified after the snapshot time need be copied.) It is available through third-party solutions such as Veritas, LVM, or ZFS.

Personally, for MySQL, I use the ZFS file system on FreeBSD

  • 2
    Note that this is only safe if all parts of the DB are on the same filesystem so you get a consistent snapshot. Otherwise for Pg you can use pg_start_backup with rsync per the documentation. May 3, 2013 at 7:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.