PostgreSQL arriva con pg_dump, Uno strumento integrato per effettuare backup dei database. Consente agli amministratori di creare backup in diverse maniere: backup completi, incrementali o continui (localmente/a distanza).
In questa guida, mostreremo usando pg_dump Per effettuare backup dei nostri database PostgreSQL.
Prerequisiti
Per eseguire i passaggi dimostrati in questa guida, avrai bisogno dei seguenti componenti:
Inoltre, utilizzeremo anche un database PostgreSQL di esempio. Per facilità d'uso, userò PhppGadmin, Un front-end Web per PostgreSQL.
Usando pg_dump
IL pg_dump I comandi esportano un database in un file di script (contenente comandi SQL per ricostruire il database) o un file di archivio. L'obiettivo principale di questo strumento è il backup dei database. Mentre usi pg_dump, Il database sarà comunque accessibile per letture e scritture.
Notare che pg_dump Funziona con un solo database.
Se il database è stato estratto come script SQL, è possibile importare il database in qualsiasi altro database basato su SQL. Tuttavia, se è stato estratto come file di archivio, allora può essere ripristinato solo usando il pg_restore attrezzo. Una cosa interessante con pg_restore è, puoi definire quale parte del database.
Struttura del comando PG_DUMP
La struttura di comando principale di pg_dump Somiglia a questo:
1 | $ pg_dump |
Esportazione di un database (come script SQL)
Come menzionato prima, pg_dump può esportare il database in diversi formati. Per esportare il database in un file SQL, utilizzare il comando seguente:
1 | $ pg_dump |
In questo esempio, stiamo esportando il database dvdRental A backup dvdRental.SQL:
1 | $ pg_dump -u postgres dvdRental> dvdRental -backup.SQL |
Si noti che l'operazione di esportazione fallirà se l'utente stai eseguendo pg_dump non ha il permesso di leggere il database. Qui, perché Postgres è il superutente di PostgreSQL, il comando è stato eseguito correttamente.
Esportazione di un database (come archivio di catrame)
Successivamente, esporteremo il database come archivio. Il seguente comando lo esporterà in un formato catrame:
1 | $ pg_dump -u postgres -f c dvdRental> dvdRental.catrame |
Esportazione di un database (come archivio compresso)
Se stai esportando un database di grandi dimensioni, la compressione aiuterà a ridurre le dimensioni del file. Nell'esempio seguente, il database esportato verrà compresso utilizzando lo strumento GZIP:
1 | $ pg_dump -u postgres dvdRental | gzip> dvdRental.Gz |
In alternativa, possiamo usare la compressione integrata di pg_dump Per comprimere l'output:
1 | $ pg_dump -u postgres --compress = 9 dvDRENTRA.catrame |
Esportazione di un database (formato directory)
Invece di esportare il database in un singolo file, pg_dump offre la possibilità di scaricarlo in una directory.
Nel seguente esempio, stiamo esportando il database dvdRental alla directory backup dvdRental:
1 | $ pg_dump -u postgres -f d dvdRental -f dvdRental -backup/ |
Esportazione di tutti i database
Se è necessario effettuare un backup completo del Postgresql server di database, quindi puoi utilizzare pg_dumpall.
1 | $ pg_dumpall -f full_backup.SQL |
Il backup includerà tutto: Ruoli, schemi e dati. Tuttavia, pg_dumpall consente di esportare componenti specifici.
Il seguente comando esporterà solo i ruoli:
1 | $ pg_dumpall -sola -sola -u postgres> all_db_roles.SQL |
Il seguente comando esporta solo schemi:
1 | $ PG_DUMPALL -SCHEMA SOLO -U Postgres> All_DB_SCHEMA.SQL |
Il comando seguente esporta solo le definizioni di tablespace:
1 | $ pg_dumpall - -tablespaces solo -u postgres> all_db_tablespaces.SQL |
Pensieri finali
In questa guida, abbiamo esplorato vari modi di usare il pg_dump Comando per esportare database da PostgreSQL. Abbiamo esportato un database di esempio come script e archivio SQL. Usando PG_Dumpall, abbiamo anche mostrato esportazione di vari componenti di tutti i database di PostgreSQL.
PostgreSQL è un potente motore di database con tonnellate di funzionalità. La sottocategoria PostgreSQL contiene numerose guide. Ulteriori informazioni sull'elenco degli utenti, sulla caduta degli utenti, sulla ricerca fuzzy, ecc.