Sommaire / Guides / PostgreSQL

PostgreSQLTM sur un VPS: installer, régler, sauvegarder

Une installation PostgreSQLTM par dĂ©faut est adaptĂ©e Ă  un poste de travail des annĂ©es 1990. Sur une VPS de 2 Ă  8 Go, quelques rĂ©glages changent tout — voici la version courte, avec des nombres rĂ©els.

1. Installation

apt update && apt install -y postgresql postgresql-contrib
systemctl enable --now postgresql
sudo -u postgres psql -c "SELECT version();"

Ubuntu navires PostgreSQL 16 sur 24.04. Cette version est assez moderne pour tout ce que vous pourriez exécuter.

2. Créer une base de données et un utilisateur

sudo -u postgres psql <<'SQL'
CREATE USER app WITH PASSWORD 'strong-password';
CREATE DATABASE appdb OWNER app;
SQL
psql "postgresql://app:strong-password@localhost/appdb" -c "SELECT 1;"

N'utilisez jamais le superutilisateur postgres dans une application. Un utilisateur par application, une base de données par projet.

3. Tune pour votre RAM

Modifier /etc/postgresql/16/main/postgresql.conf et définir les valeurs en fonction de la taille du serveur :

Réglage2 Go VPS4 Go VPS8 Go VPS
buffers partagés512Mo1 Go2 Go
cache effective1 Go2,5 Go5 Go
message de travail16Mo32 Mo48 Mo
d'entretien128 Mo256 Mo512Mo
max connections50100150
systemctl restart postgresql
sudo -u postgres psql -c "SHOW shared_buffers;"

Si votre application ouvre des centaines de connexions, placez PgBoncer devant au lieu de lever max connections — chaque connexion coĂ»te de la mĂ©moire.

4. Les décharges quotidiennes avec rotation

cat > /usr/local/bin/pg-dump-all <<'EOF'
#!/bin/sh
set -e
DIR=/var/backups/postgres
mkdir -p "$DIR"
sudo -u postgres pg_dumpall --globals-only > "$DIR/globals.sql"
for db in $(sudo -u postgres psql -Atc "SELECT datname FROM pg_database WHERE datistemplate = false"); do
  sudo -u postgres pg_dump -Fc "$db" > "$DIR/$db.dump"
done
find "$DIR" -type f -mtime +7 -delete
EOF
chmod +x /usr/local/bin/pg-dump-all

Ajouter Ă  cron avec crontab -e:

30 3 * * * /usr/local/bin/pg-dump-all

Les dĂ©charges sont des instantanĂ©s cohĂ©rents; les copies de fichiers d'un rĂ©pertoire de donnĂ©es en direct ne le sont pas. Puis expĂ©diez les dĂ©charges hors site — notre Guide rĂ©siste couvre cette partie.

5. Restaurer une décharge

sudo -u postgres createdb appdb_restore
sudo -u postgres pg_restore -d appdb_restore /var/backups/postgres/appdb.dump

Réponses rapides

Puis-je ouvrir PostgreSQLTM Ă  Internet ?

Mieux vaut pas. Gardez-le sur localhost et laissez l'application lui parler directement, ou utilisez un tunnel SSH. Si vous devez l'exposer, n'autoriser que votre IP dans le pare-feu et demander TLS.

Quel plan ai-je besoin pour PostgreSQLTM?

2 GB RAM est parfait pour le développement et les petites applications, 4 GB est confortable pour un site de production, et 8 GB gÚre une base de données occupée avec cache. Le stockage NVMe compte plus que des noyaux supplémentaires ici.

Comment puis-je vĂ©rifier quelles requĂȘtes sont lentes?

Activer l'extension pg stat statements et trier par temps moyen. Il montre habituellement un ou deux index manquants qui expliquent la plupart de la charge.

Une base de données de production confortable commence à Buran-2, 13/mois.

Autres