Kennisbank › Databases › PostgreSQL installeren en beheren op Linux
databases gemiddeld 26 August 2026

PostgreSQL installeren en beheren op Linux

PostgreSQL installeren en beheren op Linux Dit artikel legt uit hoe u PostgreSQL 15 installeert en beheert op Debian/Ubuntu Linux, inclusief de pgvector-extensie.

PostgreSQL installeren en beheren op Linux

Dit artikel legt uit hoe u PostgreSQL 15 installeert en beheert op Debian/Ubuntu Linux, inclusief de pgvector-extensie en Docker-omgevingen, voor beheerders die werken met applicaties zoals PixelProza.

Vereisten

- Linux-server met Debian 11/12 of Ubuntu 20.04/22.04/24.04 - `sudo`-toegang tot de server - PostgreSQL 15 (specifiek voor pgvector-ondersteuning) - Optioneel: Docker en Docker Compose voor containeromgevingen - Basiskennis van de `psql`-client en SQL-commando's

Stappen

1. Installeer PostgreSQL via apt

Voer de update van de pakketbeheerder uit en installeer PostgreSQL 15 met de contrib-pakketten:

sudo apt update
sudo apt install postgresql-15 postgresql-contrib-15

De contrib-pakketten bevatten extra functionaliteit zoals `pg_dump`, `pg_restore` en ondersteuning voor geavanceerde indexen en extensies. De service start automatisch na installatie en configureert zichzelf om te starten bij het opstarten van het systeem.

2. Open de psql-prompt

De installatie maakt standaard een systeemgebruiker `postgres` aan. Schakel over naar deze gebruiker en open de database-prompt:

sudo -i -u postgres
psql

U bevindt zich nu in de PostgreSQL-shell. Verlaat deze tijdelijk met `\q` als u eerst andere commando's wilt uitvoeren.

3. Maak een database en gebruiker aan

Maak een dedicated database en gebruiker aan voor uw applicatie. Vervang `pixelproza` door de naam die uw applicatie gebruikt:

CREATE USER pixelproza WITH PASSWORD 'kies_een_sterk_wachtwoord';
CREATE DATABASE pixelproza OWNER pixelproza;
GRANT ALL PRIVILEGES ON DATABASE pixelproza TO pixelproza;

Verlaat de psql-prompt met `\q` en keer terug naar uw normale gebruiker met `exit`.

4. Installeer de pgvector-extensie

pgvector 0.5.0+ is vereist voor vectorzoekfunctionaliteit. Installeer het pakket:

sudo apt install postgresql-15-pgvector

Deze extensie voegt het type `vector` en indexmethodes zoals HNSW en IVFFLAT toe aan PostgreSQL 15.

5. Schakel pgvector in voor uw database

Open opnieuw de psql-prompt en activeer de extensie in de database:

sudo -i -u postgres
psql -U postgres -d pixelproza

Voer dan het SQL-commando uit:

CREATE EXTENSION IF NOT EXISTS vector;

Zonder deze stap kunt u geen vectorcolommen aanmaken of vectorindexen gebruiken.

6. Maak een tabel met een vector-kolom

Maak een tabel met een embedding-kolom. Dit voorbeeld toont een `knowledge_items`-tabel zoals gebruikt in PixelProza:

CREATE TABLE knowledge_items (
    id SERIAL PRIMARY KEY,
    content TEXT NOT NULL,
    embedding vector(1536)
);

De vector-dimensie (1536) moet overeenkomen met de outputdimensie van uw embedding-model.

7. Maak vector-indexen aan

Maak een HNSW-index voor snelle, accurate zoekopdrachten:

CREATE INDEX ix_knowledge_embedding_hnsw ON knowledge_items 
USING hnsw (embedding vector_cosine_ops) 
WITH (m=16, ef_construction=64);

Maak daarnaast een IVFFLAT-index voor grotere datasets:

CREATE INDEX idx_knowledge_embedding ON knowledge_items 
USING ivfflat (embedding vector_cosine_ops) 
WITH (lists=100);

HNSW biedt betere prestaties bij kleinere datasets; IVFFLAT schaalt beter bij miljoenen rijen.

8. Configureer netwerktoegang (optioneel)

Standaard luistert PostgreSQL alleen op localhost. Voor verbindingen vanaf andere hosts, bewerk het configuratiebestand:

sudo nano /etc/postgresql/15/main/postgresql.conf

Zoek de regel `#listen_addresses = 'localhost'` en wijzig deze naar:

listen_addresses = '*'

Bewerk daarna het authenticatiebestand:

sudo nano /etc/postgresql/15/main/pg_hba.conf

Voeg deze regel toe voor toegang vanaf uw applicatieserver:

host pixelproza pixelproza 192.168.1.0/24 md5

Vervang `192.168.1.0/24` door het subnet van uw applicatieservers. Start PostgreSQL opnieuw:

sudo systemctl restart postgresql

Beveiliging is hierbij cruciaal: openstaande poorten moeten worden beschermd met firewalls of netwerkisolatie.

Verificatie

Controleer of de installatie correct werkt. Maak verbinding met de database en test de vector-functionaliteit:

psql -U pixelproza -h localhost -d pixelproza

Voer dan uit:

SELECT * FROM pg_extension WHERE extname = 'vector';
SELECT * FROM knowledge_items LIMIT 1;

De eerste query moet een rij retourneren met `vector` als extensienaam. De tweede query bevestigt dat de tabel bestaat en toegankelijk is.

Veelgestelde problemen

1. Kan geen verbinding maken vanaf een andere host

Controleer of `listen_addresses` correct is ingesteld en of `pg_hba.conf` de juiste host-regel bevat. Vergeet niet om PostgreSQL opnieuw te starten na wijzigingen:

sudo systemctl restart postgresql

Test de verbinding met `psql -h -U pixelproza -d pixelproza`.

2. pgvector-extensie kan niet worden ingeschakeld

De foutmelding `extension "vector" is not available` betekent dat het pakket niet correct is geïnstalleerd. Controleer of u PostgreSQL 15 gebruikt en installeer het juiste pakket:

sudo apt install postgresql-15-pgvector

3. Vector-index wordt niet gebruikt in queries

Forceer het gebruik van de index met een expliciete hint in uw query:

SET enable_seqscan = off;
SELECT * FROM knowledge_items 
ORDER BY embedding <=> '[0.1, 0.2, ...]' 
LIMIT 10;

Controleer met `EXPLAIN` of de index daadwerkelijk wordt gebruikt.

Docker-omgevingen

In een Docker-omgeving zoals PixelProza gebruikt u de `pgvector/pgvector:pg15`-image. Deze bevat PostgreSQL 15 met pgvector voorgeïnstalleerd. Beheer de database via de containerlaag:

docker compose up -d
docker exec -it postgres-db psql -U pixelproza -d pixelproza

Logs bekijken:

docker compose logs -f pixelproza-api
docker compose logs -f postgres-db

Back-ups maken vanuit een container:

docker exec postgres-db pg_dump -U pixelproza -d pixelproza > backup.sql

Deze aanpak vereenvoudigt de installatie en schaalbaarheid, maar vereist kennis van Docker en de `docker compose.yml`-configuratie.

← Terug naar kennisbank
← Terug naar kennisbank