PostgreSQL 16 markerar en betydande uppdatering i världen av databashanteringssystem. Officiellt släppt den 14 september 2023 introducerar PostgreSQL 16 många nya funktioner och förbättringar, vilket stärker sin position som en robust och mångsidig databaslösning för användare, administratörer och utvecklare.
Nedan är några av de viktigaste funktionerna i PostgreSQL 16:
- Parallelliseringsförbättringar: PostgreSQL 16 tillåter parallellisering av FULL och interna höger OUTER hash-kopplingar, vilket avsevärt förbättrar frågeprestanda.
- Replikeringsförbättringar: Den introducerar möjligheten för logisk replikering från standby-servrar och tillåter abonnenter att tillämpa stora transaktioner parallellt.
- Övervakningskapacitet: Lägga till vyn pg_stat_io möjliggör mer djupgående övervakning av I/O-statistik.
- SQL/JSON-stöd: Den här utgåvan introducerar SQL/JSON-konstruktörer och identitetsfunktioner, vilket breddar dess datahanteringsmöjligheter.
- Vakuumfrysningsprestanda: PostgreSQL 16 förbättrar prestandan för vakuumfrysning, vilket hjälper till med effektivt databasunderhåll.
- Matchning av reguljära uttryck: Matchning av reguljära uttryck för användar- och databasnamn i pg_hba.conf och användarnamn i pg_ident.conf ökar säkerheten och flexibiliteten.
Låt oss nu gå vidare till den tekniska instruktionen och fördjupa oss i installationsprocessen för PostgreSQL 16.
Förutsättningar för att installera PostgreSQL 16
För att framgångsrikt installera PostgreSQL 16 på Ubuntu, se till att du uppfyller följande krav:
Rekommenderad hårdvara och Ubuntu-versioner som stöds
Komponent | Krav |
---|---|
Processor | 1 gigahertz (GHz) eller snabbare kompatibel processor |
Bagge | 2 GB eller mer |
Disk utrymme | 512 MB hårddisk (extra diskutrymme krävs för data eller stödjande komponenter) |
Stödda versioner | Ubuntu 24.04 (Noble), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Fokal) |
Ytterligare krav
Krav | Beskrivning |
---|---|
Internet anslutning | Krävs för att ladda ner PostgreSQL 16 och framtida uppdateringar. |
Terminalkonventioner | Alla terminalkommandon bör köras som en vanlig användare med sudo privilegier. |
CLI-kommandon | Använd kommandoradsgränssnittet (CLI) för installation och inställning. |
Importera PostgreSQL APT Repository
Uppdatera Ubuntu innan PostgreSQL 16-installation
Börja med att se till att ditt Ubuntu-system är uppdaterat. Detta steg är avgörande för att upprätthålla systemstabilitet och kompatibilitet:
sudo apt update
Uppgradera sedan alla paket som är inaktuella:
sudo apt upgrade
Installera initiala paket för PostgreSQL 16
För att hjälpa dig att installera databasprogramvaran, installera följande paket:
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y
Lägg till PostgreSQL 16 APT Repository
Importera först PostgreSQL GPG-nyckeln. Det här handlar om att se till att paketen du ska installera är äkta och opåverkade:
curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
Att välja rätt PostgreSQL 16-förråd
Nu är det dags att välja lämpligt PostgreSQL 16-förråd för dina behov.
Stabilt förråd för produktion / allmänt bruk
Det stabila arkivet är ditt val för de flesta användare, särskilt i en produktionsmiljö. Den uppdateras regelbundet med stabila och säkra versioner:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list
Ögonblicksbild eller testarkiv för utvecklare
Tänk på ögonblicksbilden eller testförråden om du är i utvecklings- eller testfasen. Kom bara ihåg att dessa inte är för produktionsanvändning på grund av deras mindre stabila karaktär.
Snapshot Repository för banbrytande testning
Ta de senaste bilderna här:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Testa arkivet för de senaste funktionerna
För att testa de senaste funktionerna kommer detta kommando att ställa in dig:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list
Installera PostgreSQL 16 via terminalkommandon
Uppdatera källlistan för APT-paketindex
Efter att ha lagt till antingen det stabila eller testade PostgreSQL-förvaret är det viktigt att uppdatera din förvarskälllista. Denna åtgärd säkerställer att ditt system känner igen det nyligen tillagda PostgreSQL-förrådet:
sudo apt update
Installera PostgreSQL 16 via APT Command
Låt oss nu gå vidare till installationen av PostgreSQL 16. Detta kommando installerar både PostgreSQL-klienten och servern:
sudo apt install postgresql-client-16 postgresql-16
Verifierar PostgreSQL-installationen
När installationen är klar är det viktigt att bekräfta att PostgreSQL är korrekt installerat och körs. Detta kommando kontrollerar statusen för PostgreSQL-tjänsten:
systemctl status postgresql
Aktivera PostgreSQL 16
Om PostgreSQL inte är aktivt, använd det här kommandot för att starta PostgreSQL-tjänsten. Detta säkerställer också att PostgreSQL startar automatiskt med ditt system:
sudo systemctl enable postgresql --now
Hantera PostgreSQL 16-tjänsten
Stoppa PostgreSQL 16-servern
För att stoppa PostgreSQL-tjänsten tillfälligt, kanske för underhåll eller konfigurationsändringar, använd det här kommandot:
sudo systemctl stop postgresql
Starta PostgreSQL 16-servern
När du är redo att starta PostgreSQL-tjänsten, särskilt efter ett stopp eller initial installation, kommer det här kommandot väl till pass:
sudo systemctl start postgresql
Startar om PostgreSQL 16-servern
I scenarier där du har ändrat konfigurationer eller uppdateringar är en omstart ofta nödvändig. Detta kommando startar om PostgreSQL-tjänsten och tillämpar eventuella nya ändringar:
sudo systemctl restart postgresql
Laddar om PostgreSQL 16-servern
För att ladda om PostgreSQL-tjänsten utan att störa dess funktion, använd det här kommandot. Det är användbart när du behöver tillämpa mindre konfigurationsändringar:
sudo systemctl reload postgresql
Kontrollerar PostgreSQL 16-status
För att verifiera driftstatusen för PostgreSQL-tjänsten, inklusive om den är aktiv och körs utan problem, använd:
systemctl status postgresql
Aktiverar PostgreSQL 16 vid systemstart
Om PostgreSQL inte är inställt på att starta automatiskt, kommer detta kommando att aktivera det, vilket säkerställer att det är aktivt omedelbart och vid efterföljande systemstarter:
sudo systemctl enable postgresql --now
Grundläggande exempel på kommandon med PostgreSQL 16
Åtkomst till Postgres användarkonto
I PostgreSQL är "postgres"-användaren en standard superanvändarroll. Detta konto är avgörande för att utföra administrativa kommandon. För att byta till det här kontot, använd:
sudo -i -u postgres
Väl på kontot anger du PostgreSQL kommandoradsgränssnitt:
psql
Uppmaningen postgres=#
bekräftar din anslutning till PostgreSQL-miljön. För att avsluta skriver du helt enkelt exit
.
Snabb åtkomst till PostgreSQL utan användarväxling
För snabba operationer utan att ändra användarkontot, gå direkt åt PostgreSQL:
sudo -u postgres psql
Detta kommando är en tidsbesparare för rutinuppgifter. För att lämna det här gränssnittet, skriv exit
.
Skapa en ny PostgreSQL-användarroll
PostgreSQL:s flexibilitet tillåter superanvändare att skapa användarroller. För att skapa en ny användarroll, utfärda detta kommando:
sudo su - postgres -c "createuser <username>"
Byta ut <username>
med ditt önskade användarnamn.
Initiera en ny PostgreSQL-databas
Så här skapar du en ny databas för din användare:
sudo su - postgres -c "createdb <database_name>"
Byta ut <database_name>
med det avsedda namnet för din databas.
Tilldela användarrättigheter till en databas
Tilldela databasåtkomst på ett säkert sätt:
sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;
Ersättning <database_name>
och <username>
såsom krävs. Avsluta med att skriva exit
.
Konfigurera UFW-brandvägg för PostgreSQL 16
Installera och aktivera UFW-brandväggen
Se till att UFW (Okomplicerad brandvägg) är installerad och aktiverad på ditt system. UFW förenklar brandväggshanteringen och är avgörande för att säkra nätverkstrafik:
sudo apt install ufw
sudo ufw enable
Ställa in UFW-regler för PostgreSQL 16
PostgreSQL kommunicerar på port 5432 som standard. Det är nödvändigt att konfigurera UFW för att tillåta trafik på den här porten, särskilt när du ansluter från avlägsna platser.
Tillåter åtkomst till subnät
För att tillåta åtkomst till ett antal IP-adresser inom ett subnät, använd det här kommandot:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
Byta ut 192.168.1.0/24
med ditt specifika delnätsområde.
Tillåter individuell IP-åtkomst
För att ge åtkomst till PostgreSQL från en enda IP-adress, använd:
sudo ufw allow proto tcp from 192.168.1.0 to any port 5432
Ändra 192.168.1.0
till den IP-adress du vill tillåta.
Det här är bara grundläggande exempel. Du bör överväga att låsa alla databaser som är riktade till allmänheten så mycket som möjligt på lång sikt.
Konfigurera PostgreSQL 16
Aktivera fjärråtkomst i PostgreSQL 16
Att konfigurera PostgreSQL för att acceptera fjärranslutningar innebär justering av lyssningsadressen från det lokala standardgränssnittet.
Ändra konfigurationen för fjärråtkomst
Öppna PostgreSQL-konfigurationsfilen:
sudo nano /etc/postgresql/16/main/postgresql.conf
Ändra i avsnittet "Anslutningsinställningar". listen_addresses = 'localhost'
till dina specifika behov:
- Ersätt 'localhost' med den önskade IP-adressen för en enda IP.
- För att tillåta anslutningar på alla gränssnitt, använd
listen_addresses = '*'
.
När du har gjort ändringar, spara med CTRL+O och avsluta med CTRL+X. Starta sedan om PostgreSQL:
sudo systemctl restart postgresql
Verifiera ändringarna med:
ss -nlt | grep 5432
I utgången bör du se port 5432 aktiv.
Konfigurerar pg_hba.conf för förbättrad säkerhet
Redigera pg_hba.conf
fil för finjusterad åtkomstkontroll:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Anpassa användar- och databasåtkomst
I pg_hba.conf
, kan du ange vilka användare och databaser som kan ansluta och från vilka adresser. Här är några vanliga konfigurationer:
- Användarspecifik åtkomst: Ersätt "alla" med ett specifikt användarnamn för att begränsa åtkomsten till endast den användaren.
- Databasspecifik åtkomst: Ange en viss databas istället för att tillåta åtkomst till alla databaser.
- Adressbegränsningar: Definiera specifika IP-adresser eller intervall (t.ex.
192.168.1.0/24
) för att begränsa var anslutningar kan komma.
Välja autentiseringsmetoder
PostgreSQL stöder olika autentiseringsmetoder:
- MD5: Kräver ett lösenord och krypterar det med MD5.
- Lösenord: Använder vanlig textlösenord (mindre säkert, rekommenderas inte för produktion).
- Jämlikar: Förlitar sig på användaridentitet på OS-nivå (vanligtvis för lokala anslutningar).
- Ident: Liknar "peer", som vanligtvis används för nätverksanslutningar.
- SCRAM-SHA-256: En säkrare metod, rekommenderas över MD5 eller lösenord.
Stämma in prestanda postgresql.conf
För prestandaoptimering, överväg dessa inställningar i postgresql.conf
:
- shared_buffers: Justerar mängden minne som PostgreSQL använder för delade minnesbuffertar.
- work_mem: Ställer in minnet som används för intern sortering och hashning.
- max_anslutningar: Styr det maximala antalet samtidiga anslutningar till databasen.
Övervakning och diagnostik
Aktivera detaljerad loggning för insikter om databasprestanda och problem:
- log_statement: Ställ in på 'alla' för att logga varje SQL-sats som körs.
- log_duration: När det är aktiverat, loggar varaktigheten för varje färdig SQL-sats.
Slutsats
Vi har precis gått igenom en omfattande guide för att ställa in PostgreSQL 16 på Ubuntu, som täcker allt från installation och konfigurering av fjärråtkomst till skärpning av säkerheten med brandväggsregler. Kom ihåg att även om det är bra att ha PostgreSQL igång, ligger den verkliga nyckeln i regelbundet underhåll och säkerhetskontroller.
Användbara länkar
Här är några användbara länkar relaterade till installation av PostgreSQL 16 på Ubuntu Linux:
- PostgreSQL 16 Release Notes: Läs versionskommentarerna för PostgreSQL 16 för att lära dig om nya funktioner, förbättringar och buggfixar.
- PostgreSQL GitHub Repository: Besök det officiella PostgreSQL GitHub-förrådet för att komma åt källkoden, rapportera problem och bidra till utvecklingen.
- PostgreSQL-dokumentation: Få tillgång till den omfattande PostgreSQL-dokumentationen för detaljerade installations-, konfigurations- och användningsguider.
- PostgreSQL-gemenskap: Gå med i PostgreSQL-communityt för att få kontakt med andra användare, delta i diskussioner och få support.