PostgreSQL è gratuito, open source e uno dei più popolari sistemi di gestione di database relazionali, che alimenta milioni di applicazioni. Se sei un amministratore di database che utilizza PostgreSQL in un ambiente di produzione, è essenziale eseguire il backup del database in modo da poter ripristinare rapidamente il sistema in caso di smarrimento del database.
In questo tutorial, ti mostreremo come eseguire il backup e il ripristino del database PostgreSQL in Linux.
Prerequisiti
- Un nuovo VPS Ubuntu 20.04 con PostgreSQL installato sulla piattaforma Atlantic.net Cloud.
- Se non hai già installato PostgreSQL, puoi consultare questo blog per scoprire come installare e configurare Postgres.
- Una password di root configurata sul tuo server.
1 – Crea un server cloud Atlantic.Net
Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 20.04 come sistema operativo con almeno 1GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 20.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
2 – Comprendere la sintassi di base di pg_dump
PostgreSQL viene fornito con utility integrate chiamate pg_dump per creare e ripristinare facilmente i backup.
La sintassi di base del comando pg_dump è mostrata di seguito:
pg_dump [OPTION]... [DBNAME]
Di seguito viene mostrata una breve spiegazione di ciascuna opzione:
-d, –dbname=DATABASENAME : Utilizzato per specificare il database di cui si desidera eseguire il backup.
-h, –host=HOSTNAME : Utilizzato per specificare il nome host del server del database.
-U, –username=USERNAME : Utilizzato per specificare il nome utente PostgreSQL.
-w, –no-password : Utilizzato per ignorare la richiesta della password.
-p, –port=PORT : Utilizzato per specificare il numero di porta del server PostgreSQL.
-W, –password : Utilizzato per forzare la richiesta della password.
–role=ROLENAME : IMPOSTA RUOLO prima del dump.
3 – Backup e ripristino di un singolo database
È possibile eseguire il backup e il ripristino di un singolo database utilizzando l'utilità pg_dump. La sintassi di base per eseguire il backup di un singolo database è mostrata di seguito:
pg_dump -d [source-database] -f [database_backup.sql]
Ad esempio, per eseguire il backup di un singolo database denominato testdb e generare un file di backup denominato testdb_backup.sql, eseguire il comando seguente:
su - postgres pg_dump -d testdb -f testdb_backup.sql
Puoi anche ripristinare un singolo database usando il comando psql. La sintassi di base per ripristinare un singolo database è mostrata di seguito:
psql -d [destination_database] -f [database_backup.sql]
Ad esempio, per ripristinare un singolo database denominato testdb da un file di backup denominato testdb_backup.sql, eseguire il comando seguente:
su - postgres psql -d testdb -f testdb_backup.sql
Dovresti ottenere il seguente output:
SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET
Se si desidera interrompere il processo di ripristino del database in caso di errore, eseguire il comando seguente:
psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql
Nota : Prima di ripristinare qualsiasi database, si consiglia di terminare tutte le connessioni a quel database e preparare il file di backup.
Backup e ripristino di tutti i database
Puoi eseguire il backup di tutti i database in PostgreSQL usando l'utilità pg_dumpall. La sintassi di base per eseguire il backup di tutti i database come mostrato di seguito:
pg_dumpall -f [alldatabase_backup.sql]
Ad esempio, per eseguire il backup di tutti i database in PostgreSQL e generare un file di backup denominato alldb_backup.sql, eseguire il comando seguente:
pg_dumpall -f alldb_backup.sql
Per ripristinare tutti i database da un file di backup denominato alldb_backup.sql, eseguire il comando seguente:
psql -f alldb_backup.sql
Backup e ripristino di una singola tabella
PostgreSQL consente anche di eseguire il backup di una singola tabella dal database specifico. Puoi ottenerlo usando la seguente sintassi:
pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]
Ad esempio, per eseguire il backup di una tabella denominata mytab dal database denominato testdb e generare un file di backup denominato testdb_mytab.sql, eseguire il comando seguente:
pg_dump -d testdb -t mytab -f testdb_mytab_backup.sql
Se desideri ripristinare questa tabella dal file di backup, esegui il comando seguente:
psql -d testdb -f testdb_mytab_backup.sql
Backup e ripristino del database compresso
Puoi anche eseguire il backup del database PostgreSQL e comprimerlo in formato .gz per ridurre le dimensioni del backup.
Per eseguire un backup del database denominato testdb e generare un file di backup compresso denominato testdb_compressed.sql.gz, eseguire il comando seguente:
pg_dump -d testdb | gzip > testdb_compressed.sql.gz
Puoi anche ripristinare il backup dal file compresso usando il seguente comando:
gunzip -c testdb_compressed.sql.gz | psql -d testdb
Conclusione
Nella guida precedente, hai appreso diversi modi per eseguire il backup e il ripristino di un database PostgreSQL per aiutarti a eseguire le operazioni di backup del database quotidiane. Inizia oggi con un database PostgreSQL sull'hosting VPS di Atlantic.Net!