PostgreSQL-funktioner och användningsfall
PostgreSQL är ett objektrelationellt databashanteringssystem (DBMS) med öppen källkod. Det är ett avancerat databashanterings- och analyssystem som huvudsakligen används för e-handelsplattformar, betalningstransaktioner och olika datalagerlösningar. Den har funnits i över 30 år och uppdateras regelbundet varje år, stöder olika SQL-funktioner som triggers, användardefinierade typer och funktioner, underfrågor, etc.
PostgreSQL är en av världens mest avancerade databaser med öppen källkod. Den är lämplig för flera produktions- och utvecklingsanvändningsfall. Det ger många fördelar såsom förbättrad partitionering och frågeprestanda (särskilt över stora datamängder), B-trädförbättringar för optimalt utrymmesutnyttjande, multi-column most common value (MCV)-statistik, vanliga tabelluttryck med frågeinfogning och kontrollsummakontroll.
Några ord om Ubuntu 20.04 på DigitalOcean
Ubuntu är ett populärt skrivbordsoperativsystem med öppen källkod. Ubuntu 20.04 innehåller många banbrytande funktioner, såsom ett verktyg för att hantera ZFS-ögonblicksbilder, en stor kärna och säkerhetsförbättringar. DigitalOcean molnplattform ger en robust infrastruktur och global tillgänglighet för att utveckla, hantera och skala applikationer i molnet. Med sina dator-, lagrings-, databaser och nätverksprodukter kan utvecklare bygga webb- och mobilapplikationer, streamingtjänster, spel, SaaS-lösningar och mer. DigitalOcean erbjuder funktioner som delat privat nätverk, ettklicks DevOps-verktyg och SSD-hårddiskar, och är ett flexibelt, säkert och enkelt val för affärskritiska lösningar.
Denna handledning ger detaljerade instruktioner om hur du installerar PostgreSQL på DigitalOcean Ubuntu 20.04. Utan vidare, låt oss komma igång!
|
Förutsättningar för att installera PostgreSQL
Innan vi dyker in i själva installationen av PostgreSQL 12 på DigitalOcean Ubuntu 20.04 måste du se till att ditt system uppfyller följande förutsättningar.
- Servern bör ha åtminstone en grundläggande UFW-brandvägg för att säkerställa att endast anslutningar till vissa tjänster är tillåtna.
- Systemet bör uppdateras för en ny serverinstans och startas om. För att göra det, använd följande kommandon:
sudo apt update && sudo apt upgrade –y
sudo reboot
Installera PostgreSQL på Ubuntu 20.04 DigitalOcean
Du kan installera PostgreSQL 12 med Ubuntu 20.04 officiella/standardförråd med hjälp av apt package manager-systemet. Innan du gör detta bör du redan ha uppdaterat serverns lokala paketindex (se förutsättningarna ovan).
Förvaret innehåller olika paket (inklusive tillägg från tredje part) som:
- postgresql-klient
- postgresql
- libpq-dev
- postgresql-server-dev
- pgadmin-paket
Installera sedan hela PostgreSQL 12-paketet tillsammans med postgresql-contrib-modulen som tillhandahåller ytterligare verktyg och funktionalitet. Detta kan installeras genom att köra följande kommando:
sudo apt install postgresql postgresql-contrib –y
Starta sedan PostgreSQL-tjänsten vid omstart av systemet genom att köra följande kommando:
sudo systemctl start postgresql
För att automatiskt starta PostgreSQL-tjänsten vid systemstart, kör:
sudo systemctl enable postgresql
Verifiera att PostgreSQL-tjänsten körs som förväntat genom att köra systemctl status postgresql:
sudo systemctl status postgresql
Detta bör returnera statusen för PostgreSQL-tjänsten och bör visa aktivt, liknande skärmdumpen nedan.
Anpassa PostgreSQL-initiering
Efter installationen kan ett databaskluster skapas med hjälp av kommandot initdb. Kommandot initdb måste köras inifrån databasanvändaren och inte från rotanvändaren. Rotanvändaren kan skapa en tom katalog som kan väljas (kommando ändra ägare) av postgres-användaren. Denna katalog kommer att innehålla data som en mall, som kopieras till alla databaser som standard. Från postgres-användaren kan följande kommando anropas med lämpligt alternativ och katalognamn.
initdb [option...] [ --pgdata | -D ] directory
Kommandot initdb kan köras som en autentiserad användare med de olika flaggorna för att skapa en db-mall i en given katalog.
Nedan finns en lista över specifika flaggor som ses i skärmdumpen ovan:
--encoding UTF8
(det kan vara vilket som helst baserat på språket).- Kodningsflaggan ställer in kodningen för databasmallen. Alla databaser som skapats med den mallen kommer också att använda samma kodningsmetod om det inte anges separat. Det finns många kodningsmetoder tillgängliga för olika språk.
--pgdata test
(denna flagga skapar en katalog som heter "test" för att lagra databasdata).- Anger katalogen där databasklustret sparar sina data.
-A peer
(detta anger den autentiseringsmetod som används i filen pg_hba.conf).- Anger standardautentiseringsmetoden för lokala användare som används i pg_hba.conf (värd och lokala linjer). initdb kommer att förfylla pg_hba.conf-poster med den angivna autentiseringsmetoden för såväl icke-replikering som replikeringsanslutningar.
-k
(använder data-checksum för att kontrollera I/O-fel)- Anger datakontrollsumman på alla datasidor för att upptäcka korruptionen i I/O-systemet. Detta saktar dock ned databasbearbetningshastigheten).
Säkra din PostgreSQL-databas
Under installationen skapas en ny användare med namnet postgres automatiskt som standard. Den här användaren har fullständiga systembehörigheter, så det är viktigt att säkra användarkontot med ett starkt lösenord.
sudo passwd postgres
Byt nu till postgres användarkonto. Användaren bör ha sudo-privilegier.
sudo su – postgres
PostgreSQL-versionen kan bekräftas genom att köra
psql -c "SELECT version();"
För att ändra lösenordet för postgres
användaranvändningskommando:
psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";
Obs:Detta lösenord gäller endast när postgres
användare ansluter till PostgreSQL över nätverket.
För att komma åt Postgres-databasen kan du logga in på PostgreSQL-databasen med:
psql postgres
Som standard kräver PostgreSQL inte lösenordsautentisering från lokala systemanvändare för att komma åt databasen. Detta kallas "peer-autentisering". Lösenordsautentisering kan dock aktiveras från pg_hba.conf
fil.
För att redigera denna pg_hba.conf
fil, använd \q
kommandot för att avsluta postgres-skalet och gå in i Linux-skalet. Redigera pg_hba.conf
inifrån Linux-skalet fil. Se till att du tar en säkerhetskopia innan du redigerar filen.
sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak
Redigera sedan filen med nanoredigerare,
nano /etc/postgresql/12/main/pg_hba.conf
Hitta den lokala raden under "Endast Unix-domänuttagsanslutningar" och ändra METHOD
attribut från peer
till md5
.
Ladda om PostgreSQL-tjänsten för att tillämpa de nya inställningarna.
sudo systemctl reload postgresql
Observera här att det finns två användare med namnet postgres; en är Linux-användaren för att ansluta och komma åt databasen, och den andra är databasanvändaren som används för att utföra administrativa roller i databasen.
Konfigurera din PostgreSQL-databas
PostgreSQL kan konfigureras manuellt för lyssningsadresser och portar genom att ändra de nödvändiga parametrarna i postgresql.conf-filen.
Som standard används PostgreSQL-porten 5432 och lyssnar på localhost. Detta kan ändras genom att redigera konfigurationsfilen.
sudo nano /etc/postgresql/12/main/postgresql.conf
Tjänsten kommer att startas om efter att du har gjort några ändringar.
sudo systemctl restart postgresql
Skapa en ny roll i PostgreSQL 12
Autentisering och auktorisering i PostgreSQL 12 sker via "roll"-konceptet. Här är roll en flexibel term som syftar på både användare och grupper.
Logga in på postgres-användaren genom att använda följande kommando:
sudo su postgres
Nya roller kan skapas interaktivt från kommandoraden med kommandot createrole –interactive. Här kommer användningen av –interactive-flaggan att skapa en prompt för namnet på den nya rollen, och om denna roll ska tilldelas superanvändarbehörigheter.
En ny användare kan skapas med en ny roll utanför användarens postgresql-skal som:
createuser –interactive
Utdata från det nya användarkommandot bör se ut ungefär så här.
Skapa och ta bort en databas i din PostgreSQL-server
I PostgreSQL 12, när en ny roll skapas, måste en ny databas med samma namn finnas eftersom rollen försöker ansluta till databasen som standard. Så som i föregående avsnitt, där användaren liam skapas, kan en databas med det namnet skapas genom att använda följande kommando:
createdb liam
Inom PostgreSQL 12 finns det flera sökvägar för att skapa databaser efter behov:
- När inloggad från postgres-kontot:
postgres@server:~$ createdb liam
- Använd
sudo
,sudo –u postgres created liam
För att radera databasen kan vi använda
dropdb liam
Öppna en Postgres-prompt med den nya rollen
En Linux-användare med samma namn som Postgres-databasen och rollen kan skapas för att logga in med ident-baserad autentisering.
En Linux-användare kan skapas (om en sådan inte redan finns) från kommandoraden genom att skriva:
sudo adduser noah
Efter att användaren har skapats kan den loggas in med följande kommando;
sudo -u noah psql
Den aktuella databasen och användarinformationen kan nås genom att använda;
\conninfo
PostgreSQL-hantering
Skapa och ta bort tabeller
SQL-kommandot CREATE TABLE
kan användas för att skapa vilken tabell som helst i en databas. En lista med kolumner och en datatyp för varje kolumn måste anges i kommandot.
CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));
Detta kommando skapar en tabell med namnet "kunder". Den första kolumnen innehåller kund-ID av typen heltal. Den andra och tredje kolumnen är av typkaraktär och kommer att innehålla kundernas för- och efternamn med en maximal längd på 80 tecken.
Den här nya tabellen kan ses genom att skriva \d
.
Tabellen kan raderas genom att skriva:
DROP TABLE customers;
Infoga, välja och ta bort data i en tabell
Data läggs till i PostgreSQL-tabellerna i form av rader. Varje rad representerar en separat uppsättning data. Data kan infogas i raden genom att använda kommandot INSERT INTO. Kommandots namn följs av "tabellnamnet" (i följande exempel, kunder), nyckelordet VALUES, en lista med värden separerade med kommatecken.
INSERT INTO customers VALUES (1, 'Owen', 'Buyer');
INSERT INTO customers VALUES (2, 'Luke', 'Seller');
Innehållet i tabellen kan ses genom att använda kommandot SELECT.
SELECT * FROM customers;
En rad kan raderas genom att använda DELETE
kommando. WHERE
nyckelord används för att välja raderna villkorligt.
DELETE FROM customers WHERE last_name = 'Seller';
För att radera alla rader, skriv:
SELECT * FROM customers;
Lägga till och släppa kolumner från en tabell
PostgreSQL 12 ger möjlighet att enkelt lägga till eller ta bort kolumner från befintliga tabeller.
ALTER TABLE
kommandot används tillsammans med ADD
nyckelord för att lägga till en kolumn i en befintlig tabell. Detta fält är tomt för de befintliga raderna i tabellen.
ALTER TABLE customers ADD branch_id int;
Samma kommando används med DROP
nyckelord för att ta bort den angivna kolumnen från tabellen.
ALTER TABLE customers DROP first_name;
Uppdatera data i en tabell
Förutom att lägga till och ta bort poster i en tabell kan vi också ändra dem. Detta kan göras genom att använda UPDATE
kommando. Vi måste specificera kolumnerna som behöver redigeras med de nya värdena.
UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';
Överväganden för produktionsmiljön
PostgreSQL 12 kan användas säkert i en produktionsmiljö. Denna databas är så stabil att man inte bör ha några problem med att implementera den i stor skala. För mer information, se vår tidigare artikel här.
Slutsats
Denna handledning visade dig hur du ställer in PostgreSQL 12 på en Ubuntu 20.04-server som körs på DigitalOcean. PostgreSQL 12 är en komplex applikation med många nya och avancerade funktioner, såsom förbättrad utrymmeshantering av standard B-trädindex och stöd för samtidig indexuppbyggnad och indexskapande. Version 12 stöder också inlined WITH-frågor och ICU-tillhandahållna kollationer, förbättrar partitionering och tillhandahåller ett pluggbart tabelllagringsgränssnitt för att skapa och använda olika metoder för tabelllagring.
Nu när du känner till grunderna för att installera och använda en PostgreSQL-server, varför inte prova ett hanterat alternativ? Med en hanterad tjänst som ScaleGrid kan du slutföra hela installations-, installations- och konfigurationsprocessen med en knapptryckning. Starta din kostnadsfria 30-dagars provperiod idag och se själv! Inget kreditkort krävs och du kan skapa din allra första databas på några minuter.
Vi har täckt grunderna för installationen här och även tillhandahållit några instruktioner för allmän databasadministration. Vi hoppas att du tyckte att den här guiden var användbar.