pg_restore examples

Sauvegarde du schéma (–clean –if-exists –schema-only)

pg_dump -U USER --clean --if-exists --schema-only --create -f /opt/USER/scripts/db.dump_schema_only.sql db_XXX

Sauvegarde des données (–clean –if-exists –schema-only)

pg_dump -U USER --data-only --inserts --column-inserts  -f /opt/USER/scripts/db.dump_data_only.sql db_XXX

Autre exemple

#export postgre en local
pg_dump -U USER --format=custom db_XXX > /root/scripts/output_backup/db_XXX_$(date +%F).sql
pg_dump -U USER --format=custom db_USER > /root/scripts/output_backup/db_USER_$(date +%F).sql

#export mysql en local
mysqldump -u root db_id3_programs > /root/scripts/output_backup/db_id3_programs_$(date +%F).sql


#export pour le staging
pg_restore -h X.X.X.X -p AAAA -d db_XXX -U USER --if-exists -c /root/scripts/output_backup/db_XXX_$(date +%F).sql
pg_restore -h X.X.X.X -p AAAA -d db_USER -U USER --if-exists -c /root/scripts/output_backup/db_USER_$(date +%F).sql

#delete files older than 5 days
cd /root/scripts/output_backup/
find . -type f -mtime +5 -exec rm -f {} \;

cat /root/scripts/backup_db.bash

Prérequis

  • existence de la base db_intranet:

    CREATE DATABASE db_intranet WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'fr_FR.utf8' LC_CTYPE = 'fr_FR.utf8';
    
  • existence du role intranet:

    CREATE ROLE intranet;
    ALTER ROLE intranet WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS;
    ALTER ROLE intranet WITH LOGIN PASSWORD 'password';
    
#!/bin/bash

#export postgre en local
pg_dump -U intranet --format=custom db_intranet > /root/scripts/output_backup/db_intranet_$(date +%F).sql

#export pour le staging
pg_restore -h x.y.z.t -p 5432 -U intranet -d db_intranet -c /root/scripts/output_backup/db_intranet_$(date +%F).sql

#delete files older than 5 days
cd /root/scripts/output_backup/
find . -type f -mtime +5 -exec rm -f {} \;

restore example

pg_restore -d db_intranet -U intranet --if-exists -c db_intranet.sql
pvergain@pvergain-MS-7721 psql -d db_intranet -U intranet
L'affichage étendu est utilisé automatiquement.
L'affichage de null est « ¤ ».
Le style de ligne est unicode.
Le style de bordure Unicode est « single ».
Le style de ligne Unicode est « single ».
Le style d'en-tête Unicode est « double ».
SET
psql (12.2 (Ubuntu 12.2-2.pgdg18.04+1))
Saisissez « help » pour l'aide.

intranet@db_intranet=#  \dt
                          Liste des relations
 Schéma │                  Nom                   │ Type  │ Propriétaire
════════╪════════════════════════════════════════╪═══════╪══════════════
 public │ article                                │ table │ intranet
 public │ article_achat                          │ table │ intranet