In the previous section, you have learned about pg_dump and pg_restore, which are two vital programs when it comes to creating backups. The thing is: pg_dump creates database dumps - it works on the database level. If you want to backup 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...