PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

pg_dump vs pg_dumpall? quale usare per i backup del database?

Il solito processo è:

  • pg_dumpall --globals-only per ottenere utenti/ruoli/ecc
  • pg_dump -Fc per ogni database per ottenere un bel dump compresso adatto per l'uso con pg_restore .

Sì, questo tipo di schifo. Mi piacerebbe davvero insegnare pg_dump per incorporare pg_dumpall output in -Fc discariche, ma in questo momento purtroppo non sa come quindi devi farlo da solo.

Fino a PostgreSQL 11 c'era anche un brutto avvertimento con questo approccio:né pg_dump , né pg_dumpall in --globals-only la modalità scaricherà l'accesso dell'utente GRANT s su DATABASE S. Quindi dovevi praticamente estrarli dai cataloghi o filtrare un pg_dumpall . Questo è stato risolto in PostgreSQL 11; consulta le note sulla versione .

Dovresti anche conoscere i backup fisici:pg_basebackup , PgBarman e archiviazione WAL, PITR, ecc. Questi offrono un recupero molto "più fine", fino al minuto o alla singola transazione. Lo svantaggio è che occupano più spazio, sono ripristinabili solo sulla stessa versione di PostgreSQL sulla stessa piattaforma ed eseguono il backup di tutte le tabelle in tutti i database senza alcuna possibilità di escludere nulla.