...
Uppgradering genom ny installation med backup
Info |
---|
Den här dokumentationen är skriven i samband med att lab2 servern skall uppdatera version av PostgreSQL så exempel och beskrivning är utformade för detta För all SQL använd Dbeaver |
Gör backup på befintliga data
Anslut mot databasen med Dbeaver. Kontrollera versionen av Postgres samt vilka databaser den innehåller
...
language | sql |
---|
...
Global backup sparar hela instansens inställningar. Den är speciellt viktig för att få med användare (rollr) med dess behörighet och lösenord. Global backup bör göras som med kommando rad.
Code Block |
---|
sudo -u postgres pg_dumpall --globals-only --port 5432 > globals.sql |
Info |
---|
Den här dokumentationen är skriven i samband med att lab2 servern skall uppdatera version av PostgreSQL så exempel och beskrivning är utformade för detta För all SQL använd Dbeaver |
Gör backup på befintliga data
Anslut mot databasen med Dbeaver. Kontrollera versionen av Postgres samt vilka databaser den innehåller
Code Block | ||
---|---|---|
| ||
--Visa versionen av Postgres
select version()
/* Resulatat
PostgreSQL 9.6.24 on x86_64-pc-linux-gnu (Ubuntu 9.6.24-4.pgdg20.04+1),
compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit
*/
-- Lista databser
SELECT datname FROM pg_database;
/* Resulatat
postgres
template1
template0
lookup
nationaldata
plan
globalmap
bal
sfm
scb
document
skff
geonetwork
sk
giteadb
sive_fel
sive
weave_old
weave
*/ |
Info |
---|
Listan med databaser syns bäst i Dbeaver navigations-träd |
Börja göra en Global backup genom att högerklicka databasen postgres och välja tools>Global Backup. Skapa gärna en ny mapp t.ex. lab2_postgres_full_backup eftersom det är många backupers som ska tas.
...
Code Block | ||
---|---|---|
| ||
# Utdrag ur filen postgresql.conf # - Connection Settings - listen_addresses = '*' #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5432 # (change requires restart) max_connections = 200 # (change requires restart) |
Avinstallera
...
eventuella gamla instanser
För att avinstallera en instans av PostgreSQL används kommandot apt-get --purge remove postgresql-12
. I detta fall instans 12
...
Code Block |
---|
#installtioen sudo apt update #Installera PostgeSQL sudo apt install postgresql postgresql-contrib #Installera PostGIS version 3 på PostgreSQL 16 sudo apt install postgresql-16-postgis-3 #stoppa och startstarta postgres sudo systemctl stop postgresql.service sudo systemctl start postgresql.service |
...
Code Block | ||
---|---|---|
| ||
#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #-------------------------------------------------------------------------------- # - Connection Settings - listen_addresses = '*' #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5433 # (change requires restart) max_connections = 200 # (change requires restart) #superuser_reserved_connections = 3 # (change requires restart) |
Starta om databaserna
Code Block |
---|
#stoppa och start postgres
sudo systemctl stop postgresql.service
sudo systemctl start postgresql.service |
Skapa och återställ databaser med dess innehåll
Nu kan Dbeaver även används. Justera anslutningarna så det är åtkomst till den nya instansen.
Återställ globala den globala backupen
Det är enklast att kopiera av inställningarna från backupfilen och kör SQL script enligt nedan
Code Block | ||
---|---|---|
| ||
SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; -- ROLES CREATE ROLE gitea; ALTER ROLE gitea WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS; CREATE ROLE ikartanrw; ALTER ROLE ikartanrw WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS; ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS; ALTER SCHEMA public OWNER TO postgres; REVOKE USAGE ON SCHEMA public FROM PUBLIC; GRANT ALL ON SCHEMA public TO PUBLIC; SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; SET row_security = off # - Connection Settings - listen_addresses = '*' #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5433 # (change requires restart) max_connections = 200 # (change requires restart) #superuser_reserved_connections = 3 # (change requires restart) |
Starta om databaserna
Code Block |
---|
#stoppa och start postgres
sudo systemctl stop postgresql.service
sudo systemctl start postgresql.service |
Skapa och återställ databaser med dess innehåll
Nu kan Dbeaver även används. Justera anslutningarna så det är åtkomst till den nya instansen.
Återställ globala den globala backupen
Det är enklast att kopiera av inställningarna från backupfilen och kör SQL script enligt nedan
Code Block | ||
---|---|---|
| ||
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
-- ROLES
CREATE ROLE gitea;
ALTER ROLE gitea WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS;
CREATE ROLE ikartanrw;
ALTER ROLE ikartanrw WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS;
ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS;
ALTER SCHEMA public OWNER TO postgres;
REVOKE USAGE ON SCHEMA public FROM PUBLIC;
GRANT ALL ON SCHEMA public TO PUBLIC;
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off; |
Återställ övriga databaser
Varje databas läggs tillbaka från sin backup som togs innan installationen eller en direkt från produktionsmiljön där nattliga backuper sparas i Lab2.
För varje ny databas som ska återställas så skapas den först:
Code Block | ||
---|---|---|
| ||
-- create database bal; /* Görs bäst genom Dbeaver (högerklicka på databaser) */
-- \c bal; /* Görs bäst i Dbeaver (anslutning för script. Högst upp)
CREATE EXTENSION postgis; /* för de databaser som är spatiala */
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; /* för de databaser som är använde UUId */ |
Om databasen inte finns som en daglig backup så laddas den med Dbeaver. Högerklicka på databsen (t.ex. bal) och välj tool > restore. Välj rätt backup-fil och kör
De databaser som har daglig backup så kan pg_restore användas från lab2 servern
Code Block | ||
---|---|---|
| ||
pg_restore -h localhost -U postgres --port 5432 -W --dbname skff /opt/backups/database/2023-12-29_01-00-32-skff.backup |
Trimma databaser för prestanda
Code Block | ||
---|---|---|
| ||
svsv@lab2:/var$ vacuumdb -a -h localhost -U postgres --port 5432 -W
Password:
vacuumdb: vacuuming database "bal"
vacuumdb: vacuuming database "document"
vacuumdb: vacuuming database "geonetwork"
vacuumdb: vacuuming database "giteadb"
vacuumdb: vacuuming database "globalmap"
vacuumdb: vacuuming database "lookup"
vacuumdb: vacuuming database "nationaldata"
vacuumdb: vacuuming database "plan"
vacuumdb: vacuuming database "postgres"
vacuumdb: vacuuming database "scb"
vacuumdb: vacuuming database "sfm"
vacuumdb: vacuuming database "sive"
vacuumdb: vacuuming database "skff"
vacuumdb: vacuuming database "template1"
vacuumdb: vacuuming database "weave"
svsv@lab2:/var$
|
Nu är det dags att testa klienterna Geoserver och Weave
Under testen upptäcks att att användren ikartarw inte har fått sitt ursprungliga lösenord. Dett
a beror på att den globala backupen inte tagit med lösenord. Åtgärden är :
Code Block |
---|
alter role ikartanrw with password '*******'; |