Outils pour utilisateurs

Outils du site


tips_informatiques:bases_de_donnees:postresql:postresql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tips_informatiques:bases_de_donnees:postresql:postresql [2010/06/14 15:59]
nico créée
tips_informatiques:bases_de_donnees:postresql:postresql [2010/12/09 00:00] (Version actuelle)
Ligne 28: Ligne 28:
 BEFORE DELETE ON tan_users FOR EACH ROW BEFORE DELETE ON tan_users FOR EACH ROW
  EXECUTE PROCEDURE users_clear_created_by();​  EXECUTE PROCEDURE users_clear_created_by();​
 +</​code>​
 +
 +
 +====== Restaurer un dump ======
 +
 +__Version:​__ PostgreSQL 8.4.4
 +
 +__But:​__ ​
 +
 +Restaurer une base de donnée à partir d'un fichier généré avec la commande //pg_dump//
 +
 +__Commande__:​
 +
 +<code bash>
 +sudo su - postgres -c "psql database_to_restore < /​path/​to/​database_dump.sql"​
 +</​code>​
 +
 +====== Script de backup ======
 +
 +__Version:​__ PostgreSQL 8.4.4
 +
 +__But:__ Créer un script de backup d'une base de données qui puisse être lancé automatiquement (par un cron par exemple)
 +
 +__Script__:
 +
 +Dans cet exemple, un dossier est créé pour chaque date de backup, et une rotation sur 10 jours est mise en place.
 +
 +De plus, la base de données est située sur un serveur distant.
 +
 +<code bash>
 +#!/bin/bash
 +
 +DIR=/​opt/​backups/​pgsql/​zrodn
 +DATE=$(/​bin/​date '​+%Y%m%d'​);​
 +TENDAY=$(/​bin/​date -d'10 days ago' '​+%Y%m%d'​);​
 +
 +/bin/mkdir -p $DIR/$DATE/
 +/bin/chown postgres:​postgres $DIR/$DATE/
 +su - postgres -c "/​usr/​bin/​pg_dump --host zrodn.unige.ch --username my_usename --no-password db_name | gzip -c > $DIR/​$DATE/​db_name.sql.gz"​
 +
 +rm -rf $DIR/​$TENDAY/​
 +</​code>​
 +
 +__Remarque__:​
 +
 +Le script ne contient pas de mot de passe. Cependant, un mot de passe doit exister pour se connecter à la base de données distante.
 +
 +Celui-ci est situé dans le fichier //.pgpass// de l'​utilisateur //​postgres//​ et contient des lignes de la forme suivante:
 +
 +<​code>​
 +hostname:​port:​username:​password
 +</​code>​
 +
 +Et pour connaître le dossier racine de //​postgres//:​
 +
 +<code bash>
 +sudo su postgres -c "cd; pwd"
 +</​code>​
 +
 +
 +
 +
 +
 +====== Créer un trigger pour spécifier la date d'​UPDATE ======
 +
 +
 +__Version:​__ PostgreSQL 8.4.4
 +
 +__But:__ Créer un trigger déclenché à chaque update de records qui mette à jour le champ timestamp '​modified'​
 +
 +__Script__:
 +
 +<code sql>
 +CREATE OR REPLACE FUNCTION update_modified_column()
 +  RETURNS TRIGGER AS $$
 +  BEGIN
 +    NEW.modified = now(); ​
 +    RETURN NEW;
 +  END;
 +$$ language '​plpgsql';​
 +
 +
 +CREATE TRIGGER update_documents_modtime BEFORE UPDATE
 +ON documents FOR EACH ROW EXECUTE PROCEDURE ​
 +update_modified_column();​
 </​code>​ </​code>​
tips_informatiques/bases_de_donnees/postresql/postresql.1276523986.txt.gz · Dernière modification: 2010/06/14 00:00 (modification externe)