Handling global data
In the previous sections, you have learned about pg_dump
and pg_restore
, which are two vital programs when it comes to creating backups. The thing is, pg_dum
p creates database dumps—it works on the database level. If you want to back up an entire instance, you have to use pg_dumpall
or dump all the databases separately. Before we dig into that, it makes sense to see how pg_dumpall
works:
pg_dumpall > /tmp/all.sql
pg_dumpall
will connect to one database after the other and send stuff to standard out, where you can process it with Unix. pg_dumpall
can be used just like pg_dump
. However, it has some downsides. It does not support a custom or directory format and therefore does not offer multicore support-you will be stuck with one thread.
However, there is more to pg_dumpall
. Keep in mind that users live on the instance level. If you create a normal database dump, you will get all the permissions, but you won't get all the CREATE USER
statements. Those globals
are not included...