<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.avdelning.se/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL%2C_kursanteckningar_Advanced_DBA</id>
	<title>PostgreSQL, kursanteckningar Advanced DBA - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.avdelning.se/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL%2C_kursanteckningar_Advanced_DBA"/>
	<link rel="alternate" type="text/html" href="https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;action=history"/>
	<updated>2026-07-11T06:03:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=174&amp;oldid=prev</id>
		<title>Linadmin: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=174&amp;oldid=prev"/>
		<updated>2026-05-11T21:53:07Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:53, 11 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Linadmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=173&amp;oldid=prev</id>
		<title>Linuxwiki&gt;Wikiadmin at 13:04, 27 March 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=173&amp;oldid=prev"/>
		<updated>2015-03-27T13:04:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:04, 27 March 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l302&quot;&gt;Line 302:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 302:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  hostssl    all     +admin     192.168.0.0./24    gss  (+admin betyder att användare är medlem i admin-grupp)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  hostssl    all     +admin     192.168.0.0./24    gss  (+admin betyder att användare är medlem i admin-grupp)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  host       all     all        0.0.0.0/0          md5  (Alla hosts med korrekt lösen)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  host       all     all        0.0.0.0/0          md5  (Alla hosts med korrekt lösen)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:PostgreSQL]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Linuxwiki&gt;Wikiadmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=172&amp;oldid=prev</id>
		<title>Linuxwiki&gt;Wikiadmin: Skapade sidan med &#039;Detta är anteckningar från PostgreSQL-kursen i Kalmar 2012-02-28--03-01  == Allmänt == Det finns inget företag som &quot;äger&quot; PostgreSQL på samma sätt som t ex MySQL. Ingen...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.avdelning.se/index.php?title=PostgreSQL,_kursanteckningar_Advanced_DBA&amp;diff=172&amp;oldid=prev"/>
		<updated>2015-02-27T14:37:28Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;Detta är anteckningar från PostgreSQL-kursen i Kalmar 2012-02-28--03-01  == Allmänt == Det finns inget företag som &amp;quot;äger&amp;quot; PostgreSQL på samma sätt som t ex MySQL. Ingen...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Detta är anteckningar från PostgreSQL-kursen i Kalmar 2012-02-28--03-01&lt;br /&gt;
&lt;br /&gt;
== Allmänt ==&lt;br /&gt;
Det finns inget företag som &amp;quot;äger&amp;quot; PostgreSQL på samma sätt som t ex MySQL. Ingen kan köpa upp PostgreSQL utan att köpa upp en massa småföretag. PostgreSQL följer BSD-licensen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Allt&amp;quot; är plugins, ett designkrav och så skall det också vara. Även replikering är ett plugin, även om det finns en &amp;quot;standardreplikeringsmetod&amp;quot;. Dessutom är grundtanken att &amp;quot;reliability comes first, performance always comes second&amp;quot; då man inte vill ha ett system där data kan förloras. Det är helt och hållet skrivet i C, kan köras på som minst 32 MB RAM och som mest 128 GB RAM med 20-24 CPUer. PostgreSQL använder inte RAW-devices utan allt lagras i filer.&lt;br /&gt;
&lt;br /&gt;
== Installation och uppgradering ==&lt;br /&gt;
Använd gärna systemets egna PostgreSQL-installationer UTOM för RedHat eller Debian/Ubuntu LTS då dessa levererar en gammal eller för gammal PostgreSQL. Man kan från http://yum.postgresql.org/ välja en bättre YUM-repository eller hämta RPM-filer direkt för att få senaste version. Välj efter denna ordning:&lt;br /&gt;
#Plattformspaket (RPM/DEB)&lt;br /&gt;
#Binärfiler (TGZ)&lt;br /&gt;
#Källkod&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uppgraderingar finns i två versioner. Minor och Major. Major är en helt ny version med uppräkning av andra versionssiffran (t ex 9.0 -&amp;gt; 9.1) och innehåller nya funktioner m.m. Minor är kritiska bugfixar och räknar upp tredje versionssiffran. Vanligtvis är det väldigt enkelt att uppgradera minorversioner.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
RPM-paketen finns i dessa varianter:&lt;br /&gt;
*postgresql91 - bas-systemet inkl klient men inte server&lt;br /&gt;
*postgresql91-server - servern&lt;br /&gt;
*postgresql91-docs - dokumentation i HTML-format. Mansidor följer med övriga paket&lt;br /&gt;
*postgresql91-libs - delade bibliotek&lt;br /&gt;
*postgresql91-devel - filer för C-utvecklare&lt;br /&gt;
*postgresql91-contrib - plugin-moduler. Rekommenderas att installera då de inte startas utan bara tar upp extra diskutrymme&lt;br /&gt;
*postgresql91-pl* - olika paket för t ex stored procedures skrivna i Perl eller annat språk&lt;br /&gt;
*postgresql91-test - Testprogramvara. Behövs ej.&lt;br /&gt;
*postgresql91-debuginfo - Verktyg för debug om man t ex kan återskapa ett fel och få mer info via dessa verktyg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Före version 9 kunde PostgreSQL enbart installeras som en version med RPM. Senare versioner möjliggör att RPM kan hantera flera olika versioner installerade.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Använd INTE GUI-installationen i Linux. Den innehåller egna libs och utgör licenskonflikt. Bland annat försvinner readline (eller vad det heter) i psql.&lt;br /&gt;
&lt;br /&gt;
== Managera PostgreSQL ==&lt;br /&gt;
PostgreSQL &amp;quot;går inte att köra som root&amp;quot; utan man använder en annan användare, t ex postgres.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pg_ctl&amp;#039;&amp;#039;&amp;#039; används för att styra PostgreSQL och använder UNIX-systemets ALLA signaler för att kommunicera med processerna. Dessa signaler har olika betydelser beroende på vilken process de kommunicerar med, så försök inte själv skicka dessa med &amp;#039;&amp;#039;&amp;#039;kill&amp;#039;&amp;#039;&amp;#039;-kommandot. &amp;#039;&amp;#039;&amp;#039;pg_ctl&amp;#039;&amp;#039;&amp;#039; körs som sagt inte som root.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pg_ctl&amp;#039;&amp;#039;&amp;#039; tar dessa argument:&lt;br /&gt;
*start - start av databasen&lt;br /&gt;
*stop -m &amp;lt;method&amp;gt;- stoppar databasen, med tillägget -m som betyder:&lt;br /&gt;
**smart (standard) väntar tills ALLA anslutningar stängts och tar ned databasen. Inga nya anslutningar tillåts under väntetiden.&lt;br /&gt;
**fast (bättre än smart) Tillåter inga nya anslutningar och stänger de befintliga. Tar ned databasen normalt med att tömma cache m.m. (vilket smart också gör).&lt;br /&gt;
**immediate (brutal) Tar ned databasen direkt utan att tömma ev. cache. Enbart för nödsituationer.&lt;br /&gt;
*restart - Stoppar och startar databasen&lt;br /&gt;
*reload - Läser om ALL konfiguration. Kontrollera i serverlog att det gick bra då processerna inte kan sända tillbaka till pg_ctl huruvida det gick eller ej.&lt;br /&gt;
*status - status&lt;br /&gt;
Dessutom kan man lägga till &amp;#039;&amp;#039;&amp;#039;-t&amp;#039;&amp;#039;&amp;#039; för att tala om hur länge kommandot ska vänta innan det anser att operationen misslyckades. Man kan t ex vänta en minut från &amp;quot;smart&amp;quot; innan man väljer &amp;quot;fast&amp;quot; vid nedstängning.&lt;br /&gt;
&lt;br /&gt;
== Anslut till databasen ==&lt;br /&gt;
Anslutningar sker antingen via&lt;br /&gt;
*Local connection (snabbast) som sker över Unix Domain Socket&lt;br /&gt;
*TCP&lt;br /&gt;
*SSL&lt;br /&gt;
&lt;br /&gt;
Local connection skapar en fil i /tmp/.s.pgsql.5432 som är portnumret för PostgreSQL. Notera att i RedHat/Ubuntu ligger denna fil i &amp;#039;&amp;#039;&amp;#039;/var/run/postgresql&amp;#039;&amp;#039;&amp;#039;. Detta funkar inte för NFS-monterade partitioner.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP connection kör på port 5432 som standard. Lyssnar enbart på localhost vilket man får ändra i pg_hba.conf och listen_addresses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;PgAdmin3&amp;#039;&amp;#039;&amp;#039; är det grafiska sättet att ansluta till PostgreSQL.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;psql&amp;#039;&amp;#039;&amp;#039; är motsvarande MySQLs klient &amp;#039;&amp;#039;&amp;#039;mysql&amp;#039;&amp;#039;&amp;#039; men med fler funktioner. Man kan skicka kommandon till PostgreSQL genom att sätta ett backslash framför kommandot, t ex \x&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Som standard ansluter &amp;#039;&amp;#039;&amp;#039;psql&amp;#039;&amp;#039;&amp;#039; med den användare man är inloggad som, vilket gör att man inte kan vara root. Vill man ansluta som annan användare anger man exv: &amp;#039;&amp;#039;&amp;#039;psql [OPTIONS] [DBNAME[USERNAME]]&amp;#039;&amp;#039;&amp;#039; eller &amp;#039;&amp;#039;&amp;#039;psql -d dbname -U username&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datatyper ==&lt;br /&gt;
Välj alltid korrekt datatyp. Spara t ex inte heltal som strängar då vissa heltal direkt mappar mot CPU-registren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Numeriska datatyper är:&lt;br /&gt;
*int4 (int) 32-bit teckensatt heltal&lt;br /&gt;
*int8 (bigint) 64-bit teckensatt heltal&lt;br /&gt;
*real - 32-bit flyttal med avrundningsfel&lt;br /&gt;
*double - 64-bit flyttal med avrundningsfel&lt;br /&gt;
*numeric/deciaml - flyttal med angiven precision. Välj mellan&lt;br /&gt;
**NUMERIC(precision,scale) - scale är antalet tecken till höger om decimal.&lt;br /&gt;
**NUMERIC(precision) - inga decimaler&lt;br /&gt;
**NUMERIC - varierande, systemet väljer själv lämpligast precision och scale.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notera att NUMERIC är långsamt då det har en del overhead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Textdatatyper är:&lt;br /&gt;
*text - oändligt antal tecken (&amp;lt; 1GB)&lt;br /&gt;
*varchar(n) - upp till n antal tecken&lt;br /&gt;
*varchar - samma som text&lt;br /&gt;
*char(n) - upp till n antal tecken där resten blir blanksteg. Dessa lagras INTE i databasen.&lt;br /&gt;
*char - Ett enda tecken. Snabbare än char(1).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tidsdatatyper:&lt;br /&gt;
*timestamp with time zone ger både datum och tid med kännedom om korrekt time zone. Detta sköter databasen själv.&lt;br /&gt;
**Från 4713 före kristus till 5874897 efter honom. För större spann finns plugin.&lt;br /&gt;
*date ger bara datum. Välj detta framför timestamp där man sätter tiden till 0.&lt;br /&gt;
*time ger bara tiden.&lt;br /&gt;
*Intervall&lt;br /&gt;
&lt;br /&gt;
Exempel:&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;set timezone=&amp;#039;Europe/Stockholm&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;select now() at time zone &amp;#039;America/Chicago&amp;#039; &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;select now() + &amp;#039;4 hours 30 minutes&amp;#039;; &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;select &amp;#039;2012-02-20 14:00&amp;#039; - now();&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
PostgreSQL har koll på tidszoner, sommar/vintertid, skottdagar m.m.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Använd inte SQL-standarden &amp;quot;time with timezone&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ytterligare datatyper:&lt;br /&gt;
*bool - nyttjar en bit, så lägg flera av dessa efter varandra för att fylla en byte&lt;br /&gt;
*inet - IP-adress i ipv4- eller ipv6-format&lt;br /&gt;
*cidr&lt;br /&gt;
*macaddr - MAC-adressformat&lt;br /&gt;
*uuid - UUID-format (som bara är annat sätt att uttrycka 128 bitar)&lt;br /&gt;
*xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Transaktioner och MVCC ==&lt;br /&gt;
Allt är transaktioner i PostgreSQL. Även en select även om det inte syns för användaren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Som standard är &amp;quot;autocommit&amp;quot; satt men vissa drivrutiner, t ex pythons, kan ändra detta utan att meddela. Detta är viktigt att kontrollera om man t ex satt den till OFF och sedan den slår över till ON utan att man egentligen ville det.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MVCC (Multi Version Concurrency Control) gör att samma rad kan existera på flera ställen samtidigt. Om flera försöker uppdatera samma rad sker olika saker beroende på vad den som hann först gör.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vacuum ==&lt;br /&gt;
När en rad uppdateras görs en kopia av den gamla med det nya värdet i. Den gamla raden ligger kvar för de som ännu inte fått tillgång till den nya raden eller har kopplat från databasen. När en gammal rad inte längre har några anslutningar mot sig anses den &amp;quot;död&amp;quot; av Vacuum som markerar området som ledigt. En ny uppdatering kan då hamna där. Finns inte plats före senaste uppdaterad rad fylls det på efter och man kan i värsta fall få jättemånga rader som borde ha slängts för länge sen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En sökning måste gå igenom ALLA dessa rader vilket kan ta lång tid om man inte fått städat på länge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Buffer Cache ==&lt;br /&gt;
Lagrar sånt som senare kan skrivas till disk. Istf att direkt jobba mot disk. För att buffer cache inte ska bli full körs en Clocksweep algorithm som räknar ned en räknare för varje block i bufferten. Om detta block sedan används räknas denna räknare upp igen. När det når noll skrivs blocket till disk.&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Konfiguration kan visas med &amp;#039;&amp;#039;&amp;#039;show &amp;lt;variable&amp;gt;;&amp;#039;&amp;#039;&amp;#039;. T ex&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;show shared_buffers;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 shared_buffers&lt;br /&gt;
 --------------&lt;br /&gt;
 24MB&lt;br /&gt;
 (1 row)&lt;br /&gt;
&lt;br /&gt;
eller &amp;#039;&amp;#039;&amp;#039;select * from pg_settings where name=&amp;#039;&amp;lt;variable&amp;gt;&amp;#039;;&amp;#039;&amp;#039;&amp;#039; som ger ett utförligare svar. I det utförligare svaret finns ett &amp;#039;&amp;#039;&amp;#039;context&amp;#039;&amp;#039;&amp;#039;fält som talar om &amp;quot;på vilken nivå&amp;quot; konfigurationen gäller.&lt;br /&gt;
*POSTMASTER = servern måste startas om för att konfig ska gälla&lt;br /&gt;
*SIGHUP = Ändras i konfigfil (ej med set-kommandot)&lt;br /&gt;
*BACKEND = Ändras i konfigfil men gäller inte de som redan är inloggade&lt;br /&gt;
*SUPERUSER = Kan ändras av superuser från psql (motsv)&lt;br /&gt;
*USER = Kan ändras från psql (motsv)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Konfig finns i filen &amp;#039;&amp;#039;&amp;#039;postgresql.conf&amp;#039;&amp;#039;&amp;#039;. Modellen är &amp;#039;&amp;#039;&amp;#039;namn = värde&amp;#039;&amp;#039;&amp;#039;. När det är ändrat, kör en &amp;#039;&amp;#039;&amp;#039;pg_ctl reload&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;och kontrollera logfilen att det blev som tänkt&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alla värden i konfigfilen finns men de flesta är bortkommenterade. OM man ändrar ett sånt värde och sedan sätter tillbaka kommentarstecknet kommer standardvärdet att gälla (utom för äldre versioner av PostgreSQL).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anslutningskonfig ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;listen_addresses&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: localhost. Lyssnar på unix sockets + 127.0.0.1 + ::1 (ipv6)&lt;br /&gt;
&lt;br /&gt;
tom: Lyssnar bara på unix sockets&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;: Lyssnar på alla IP + unix sockets&lt;br /&gt;
&lt;br /&gt;
Kommaseparerad lista med IP: Lyssnar på angivna IP + unix sockets&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Glöm inte ändra i hba.conf med&amp;#039;&amp;#039;. Ovanstående ändringar kräver omstart.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;port&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 5432&lt;br /&gt;
&lt;br /&gt;
eller TCP/IP portnummer att lyssna på&lt;br /&gt;
&lt;br /&gt;
Måste vara unik för varje server (oavsett IP) och högre än 1024.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;max_connections&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: Beror på system. Normalt 100 vilket betyder samtidiga anslutningar. Av dessa är 3 reserverade för superuser. Denna använder systemresurser, sätt ej för högt. För lågt gör dock att anslutningar inte kan ske utan bara nekas inträde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ssl&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: OFF utom för Debian/Ubuntu som ändå har &amp;quot;falska&amp;quot; certifikat. Sätt den till OFF där. Använd bara ON om man har satt vettiga certikat i systemet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;shared_buffers&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: Beror på systemet, normalt 32MB. Sätt till 1/4-1/3 av systemet men har man lite minne (&amp;lt;=1GB), sätt INTE till 1/3. Ska sällan vara över 8GB. Dessutom behöver man troligen uppdatera sysctl enligt:&lt;br /&gt;
 sysctl.conf:&lt;br /&gt;
 kernel.shmall=11111111111111 (jättehögt värde)&lt;br /&gt;
 kernel.shmmax=11111111111111 (jättehögt värde här med)&lt;br /&gt;
Detta är enbart ett tak och inte de faktiska värden som kommer att användas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;effecive_cache_size&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: Beror på systemet. Detta är bara en vägledning och avgör hur mycket filsystemscache som kommer att finnas. Låt systemet gå en stund och se vad som används, sätt detta värde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;max_prepared_transactions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 0 (äldre versioner satte denna till 5). Används för two-phase commit och ska inte användas om man inte har såna. Annars drar det onödig prestanda ur systemet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;work_mem&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 1MB. Gäller per sortering, inte per anslutning. För högt satt ger SWAPPING&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;meintenance_work_mem&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 16MB. Används för &amp;#039;&amp;#039;&amp;#039;create index, vacuum&amp;#039;&amp;#039;&amp;#039; m.m. För dedikerade DB-servrar, sätt till 512MB. Vid stora DB-jobb kan detta vara bra att öka. Autovacuum kan köra 3 samtidiga sessioner vilket då blir 3xvärdet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;fsync&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: PÅ. &amp;#039;&amp;#039;STÄNG INTE AV&amp;#039;&amp;#039;. Enda giltiga orsaken för att stänga av detta är vid laddning av mycket data då &amp;quot;inget&amp;quot; skrivs till disk. Efter att laddning är klar, ändra värdet till PÅ, starta om DB OCH server för att vara säker på att alla cachear är skrivna till disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;synchronous_commit&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: PÅ vilket är rekommenderat. Vid ev krasch kan man förlora de senaste transaktionerna men i övrigt är detta ändå atomiskt och ger prestandaförbättring.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;full_page_writes&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: PÅ. Skydd mot torn pages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;wal_buffers&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard -1 = autotune = bra. (versioner äldre än 9.1 är denna satt till 64kB. Öka till 1MB för dedikerade system). Har man stängt av synchronous_commit bör denna ökas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;checkpoint_timeout&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 300 sekunder. Hur ofta skrivs buffer cache till disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;checkpoing_segment&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 3x16 vilket är lågt. Sätt till 100x16. Betyder att cache skrivs till disk efter 100x16MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;checkpoint_warning&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 30 sekunder. 0 ger ingen varning. Bör ökas till 90-120 s. Det betyder att en varning ges om en checkpoint körs oftare än 90 sekunder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;checkpoint_completion_target&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standard: 0.5. Ökas till 0.8 för dedikerade system med bra IO. Detta styr hur lång tid en checkpoint ska ta.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Säkerhet ==&lt;br /&gt;
===Loginmetoder ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Trust&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Undvik. Det räcker med att man loggar in som rätt användare. Inget lösen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Peer&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Fungerar bara om man använder unix sockets. Det bygger på vem man är inloggad i operativsystemet som.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ident&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Lokalt på systemet: Samma som Peer. Remote: Ident-protokollet. Undvik då det inte är säkert idag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MD5-lösen&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Standardmodell, dubbelhashat. Blanda inte ihop med &amp;quot;PASSWORD&amp;quot; som lagrar i klartext på disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfig pg_hba.conf ==&lt;br /&gt;
Loginkonfig:&lt;br /&gt;
 Källa      DB      Användare  IP                 Typ&lt;br /&gt;
 local      all     all                           Peer (=Unix sockets)&lt;br /&gt;
 host       all     all        127.0.0.1/32       md5  (TCP)&lt;br /&gt;
 hostnossl  webdb   webuser    10.1.1.0/30        md5  (TCP men utan SSL)&lt;br /&gt;
 hostssl    all     +admin     192.168.0.0./24    gss  (+admin betyder att användare är medlem i admin-grupp)&lt;br /&gt;
 host       all     all        0.0.0.0/0          md5  (Alla hosts med korrekt lösen)&lt;/div&gt;</summary>
		<author><name>Linuxwiki&gt;Wikiadmin</name></author>
	</entry>
</feed>