If you need a logical backup then pg_dump is the right tool; as noted before but with better options to improve performance. For backups; I would recommend physical backups which there are many solutions for. I have personally used snapshots and believe that is the best solution. It is the fastest and best solution to meet recovery time objective (RTO). For example, I’m able to make a backup of a multi-terabyte database in under a second and multiple backups are cheap. This allows me to do a backup of the system every 6 hours. The most expensive part of a database restore is going to be applying the WAL files when doing a point in time recovery (PITR). This means that at most, I would only have to apply around 6 hours of WAL files; which can still take a long time given a high volume system. In my opinion snapshots are the best solution but it will depend on your infrastructure and requires knowledge of the infrastructure and setting it up correctly. If I could not use snapshots; I would look into either pgBackRest or pgBarman. |