PostgreSQL common commands ¶
dump de database ¶
Variables bash:
::
export YESTERDAY=`(date –date ‘1 days ago’ +%F)` export THREE_DAYS=`(date –date ‘3 days ago’ +%F)` export TODAY=`(date –date ‘today’ +%F)`
date; export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; pg_dump -v -h database-staging.srv.int.eu -d db_log -U log --format=plain > ~/Documents/db_log_${TODAY}.sql; date
Utilisation du format de sortie “plain” pour pouvoir effectuer d’éventuelles substitutions comme celles-ci par exemple (passage d’un schéma public à un schéma ‘log’):
sed -i "s/^ALTER SCHEMA public OWNER TO postgres;/SET search_path = 'log';/" $1
sed -i 's/public[.]/log./g' $1
sed -i 's/Schema: public/Schema: log/g' $1
sed -i 's/REVOKE USAGE ON SCHEMA public FROM PUBLIC;/ /' $1
sed -i 's/GRANT ALL ON SCHEMA public TO PUBLIC;/ /' $1
create schema ¶
export PGPASSWORD=${PGPASSWORD_STAGING}; psql -h database-staging.srv.int.eu -d db_intranet -U intranet -c "create schema intranet ;"
Modification du search_path pour le rôle log ¶
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "ALTER ROLE log SET search_path = log,public;"
Afficher le search_path ¶
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "show search_path"
search_path
-------------
public
(1 ligne)
conninfo ¶
export PGPASSWORD=${PGPASSWORD_PRODUCTION}; psql -h database.srv.int.eu -d db_intranet -U intranet -c "\conninfo"
drds (Lists defined configuration settings) ¶
export PGPASSWORD=${PGPASSWORD_STAGING}; psql -h database-staging.srv.int.eu -d db_intranet -U intranet -c "\drds ;"
Liste des paramètres
Rôle | Base de données | Réglages
----------+-----------------+--------------------
intranet | | search_path=public
(1 ligne)
dconfig (Lists server configuration parameters and their values) ¶
export PGPASSWORD=${PGPASSWORD_STAGING}; psql -h database-staging.srv.int.eu -d db_intranet -U intranet -c "\dconfig;"
Ici on voit que database-staging.srv.int.eu est en version 14 (cluster name) .
Liste des paramètres de configuration à valeur personnalisée
Paramètre | Valeur
----------------------------+----------------------------------------
application_name | psql
client_encoding | UTF8
cluster_name | 14/main
DateStyle | ISO, DMY
default_text_search_config | pg_catalog.french
lc_collate | fr_FR.UTF-8
lc_ctype | fr_FR.UTF-8
lc_messages | fr_FR.UTF-8
lc_monetary | fr_FR.UTF-8
lc_numeric | fr_FR.UTF-8
lc_time | fr_FR.UTF-8
listen_addresses | *
log_line_prefix | %m [%p] %q%u@%d
log_timezone | Europe/Paris
max_stack_depth | 2MB
search_path | public
server_encoding | UTF8
shared_buffers | 128MB
ssl | on
ssl_cert_file | /etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key_file | /etc/ssl/private/ssl-cert-snakeoil.key
TimeZone | Europe/Paris
wal_buffers | 4MB
(23 lignes)
Import au format texte ¶
date; export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "drop schema log cascade" ; date
date; export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "create schema log" ; date
date; export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "\drds" ; date
date; export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -f ~/Documents/db_log_${TODAY}.sql; date
Alternative roles, search_path, show search_path ¶
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "ALTER ROLE log SET search_path = log;"
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "show search_path"
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "select * from log l where l.logdate >= '2022-12-18'"
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "ALTER ROLE log SET search_path = public;"
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "show search_path"
export PGPASSWORD=${PGPASSWORD_STAGING_LOG}; psql -h database-staging.srv.int.eu -d db_log -U log -c "select * from log l where l.logdate >= '2022-12-18'"