|
| PostgreSQL - Storage? Fra : Stig Johansen |
Dato : 24-10-01 06:50 |
|
Hej Alle.
Jeg er ved at lure lidt på brugbarheden af PostgreSQL.
Dokumentationen er lidt sparsom, så jeg har et par spørgsmål:
Det ser ud som om, en given database fysisk ligger under et directory, er
det korrekt?
<Newbie_linux>
På de større maskiner, jeg har arbejdet med gennem tiderne, er der mulighed
for at oprette en stribe diske med samme navn (volume set).
Er der mulighed for, under Linux, at oprette noget tilsvarende?
Altså flere diske under samme 'directory'.
</Newbie_linux>
Jeg synes ikke jeg er stødt på nogen beskrivelse af Transaction logging.
Er der nogen, der kan elaborere lidt over hvordan man opbygger sin
PostgreSQL, især under hensyntagen til disaster/recovery - situationer?
--
Med venlig hilsen / Best regards
Stig Johansen
linux@w3data.dk
| |
Klaus Alexander Seis~ (24-10-2001)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 24-10-01 08:04 |
|
Stig Johansen skrev:
> Det ser ud som om, en given database fysisk ligger under et
> directory, er det korrekt?
Ja, på Debian/Linux ligger databasen i /var/lib/postgres/ og består af
en myriade af filer.
> På de større maskiner, jeg har arbejdet med gennem tiderne,
> er der mulighed for at oprette en stribe diske med samme navn
> (volume set).
> Er der mulighed for, under Linux, at oprette noget tilsvarende?
Måske er det noget à la Logical Volume Manager (LVM)? Læs selv videre
på < http://www.sistina.com/products_lvm.htm>.
// Klaus
--
><>° vandag, môre, altyd saam
| |
Mickey (24-10-2001)
| Kommentar Fra : Mickey |
Dato : 24-10-01 22:51 |
|
"Klaus Alexander Seistrup" <nospam2001oct@magnetic-ink.dk> skrev i en
meddelelse news:a58ab80b-51ea-4c19-951e-
> Ja, på Debian/Linux ligger databasen i /var/lib/postgres/ og består af
> en myriade af filer.
man kan vel selv definere hvor den skal ligge... ./postmaster -D
/sti/til/database
- mine ligger i /usr/local/pgsql/data/base
--
|-|$235-|)k - Mickey - Eko sum lapis
Advarsel :
Dette indlæg er koncentreret kommunikation.
Tilsæt diplomatiske vendinger i passende mængde.
| |
Preben Traerup (24-10-2001)
| Kommentar Fra : Preben Traerup |
Dato : 24-10-01 11:13 |
|
In article <9r5kfd$63b$1@sunsite.dk>, Stig Johansen <linux@w3data.dk> wrote:
> Hej Alle.
>
> Jeg er ved at lure lidt på brugbarheden af PostgreSQL.
> Dokumentationen er lidt sparsom, så jeg har et par spørgsmål:
>
> Det ser ud som om, en given database fysisk ligger under et directory, er
> det korrekt?
<FORBEHOLD> min postgres er ikke den allerseneste</FORBEHOLD>
Ja, og hvor den skal ligge styres på en af følgende måder
a) som argument (-d ?) i start scriptet under init.d -
som alt efter OS er linket et eller andet sted hen
b) gennem en environment parameter sat i en .rc fil i postgres brugerens
home dir
c) via default
>
> <Newbie_linux>
> På de større maskiner, jeg har arbejdet med gennem tiderne, er der mulighed
> for at oprette en stribe diske med samme navn (volume set).
> Er der mulighed for, under Linux, at oprette noget tilsvarende?
> Altså flere diske under samme 'directory'.
> </Newbie_linux>
Det kan gøres på to måder
a) Databasen placeres på raid eller LVM, jeg ved ikke hvor meget er
understøttet under Linux.
b) Der er nogle databaser, som kan kører med
mirror, dvs database programmet holder to filer i sync, som selvfølgeligt
er placeret på hver sin disk, jeg ved bare ikke on postgres kan dette -
f.eks sybase kunne (kan ?)
>
> Jeg synes ikke jeg er stødt på nogen beskrivelse af Transaction logging.
> Er der nogen, der kan elaborere lidt over hvordan man opbygger sin
> PostgreSQL, især under hensyntagen til disaster/recovery - situationer?
>
På de større systemer kan placeringen af transaktionsloggen (filen) styres,
så den kan placeres på en 3. disk eller en anden raid (partition)
Jeg ved ikke hvad postgres kan tilbyde her.
I bund og grund er det performance optimering at holde databaseprogrammel
på en disk evt sammen med os,
databasen på en anden disk
og transaktions loggen på en 3. disk
Hvordan diskene tilsluttes controllerre afhænder af type (SCSI/IDE osv)
Angående recovery, læs nogle bøger om databaser og find så det tilsvarende
i postgres... Det er et ret stort emne.
| |
Stig Johansen (24-10-2001)
| Kommentar Fra : Stig Johansen |
Dato : 24-10-01 10:45 |
|
Hej.
"Preben Traerup" <preben.traerup_spam@ted.ericsson.dk> wrote in message
news:9r5vfb$i1g$1@newstoo.ericsson.se...
> In article <9r5kfd$63b$1@sunsite.dk>, Stig Johansen <linux@w3data.dk>
wrote:
> > Hej Alle.
> >
> > Jeg synes ikke jeg er stødt på nogen beskrivelse af Transaction logging.
> > Er der nogen, der kan elaborere lidt over hvordan man opbygger sin
> > PostgreSQL, især under hensyntagen til disaster/recovery - situationer?
> >
>
> På de større systemer kan placeringen af transaktionsloggen (filen)
styres,
> så den kan placeres på en 3. disk eller en anden raid (partition)
I know.
> Jeg ved ikke hvad postgres kan tilbyde her.
Det er mit spørgsmål, anyone?
>
> I bund og grund er det performance optimering at holde databaseprogrammel
> på en disk evt sammen med os,
> databasen på en anden disk
> og transaktions loggen på en 3. disk
> Hvordan diskene tilsluttes controllerre afhænder af type (SCSI/IDE osv)
>
Det var ikke så meget ud fra et performance synspunkt, men mere om
PostgreSQL indeholder en transaktionslog.
Eksempelvis indeholder M$SQLServer en sådan, der gør det muligt at
rekonstruere sin DB op til den sidste committede transaktion.
Eksempelvis benytter Interbase sig af en anden teknik, og indeholder ikke
transaktionslog. Dermed mister man arbejde fra sidste backup.
Hvad gør man med PostgreSQL?, tager hyppig backup hen over dagen?.
mvh
Stig Johansen.
| |
Bo Lorentsen (24-10-2001)
| Kommentar Fra : Bo Lorentsen |
Dato : 24-10-01 17:07 |
|
In <9r5kfd$63b$1@sunsite.dk>, Stig Johansen wrote:
> Jeg er ved at lure lidt på brugbarheden af PostgreSQL. Dokumentationen
> er lidt sparsom, så jeg har et par spørgsmål:
Brugbarheden afhænger af dit behov, men PostgreSQL er både stabil, hurtig
og en rigtig RDBMS, og hvis man kikker efter --- ganske godt beskrevet
> Det ser ud som om, en given database fysisk ligger under et directory,
> er det korrekt?
Yeps, den er en samling af filer i et bibliotek, du kan dog have flere
forskellige databaser i forskellige biblioteker.
> På de større maskiner, jeg har arbejdet med gennem tiderne, er der
> mulighed for at oprette en stribe diske med samme navn (volume set). Er
> der mulighed for, under Linux, at oprette noget tilsvarende? Altså flere
> diske under samme 'directory'. </Newbie_linux>
Her kan jeg kun sige "raid", som helt klart er din ven. Linux har både
software,og mulighed for hardware raid (at købe du ved). Software raid
virker meget stabilt, og jeg har ikke selv oplevet skader forsaget af
software raid. De problemer jeg har hørt om i den forbindelse, kan
relateres til hardware eller manglende maskin overvågning .-)
Så altså RAID er svaret
> Jeg synes ikke jeg er stødt på nogen beskrivelse af Transaction logging.
> Er der nogen, der kan elaborere lidt over hvordan man opbygger sin
> PostgreSQL, især under hensyntagen til disaster/recovery - situationer?
Nu er jeg ikke helt med på hvad du helt presist mener med transaction
logging, men postgres ved i høj grad noget om transaktioner, og køre bla.
med et system der ligner orakles rollback segmenter en smule. Du kan tage
backup af en levende database, og stadig være sikker på at dine data (i
din backup) har beholdt deres intigritet.
Der er en ulempe, du SKAL køre en oprydning af og til for at dine date
ikke kommer til at fylde for meget og din base bliver sløv. I den kommende
7.2 vil det være muligt på en base der er i bruges til 24/7 systemer.
Håber det hjalp
/BL
| |
Tonny Sejr Kromann (02-11-2001)
| Kommentar Fra : Tonny Sejr Kromann |
Dato : 02-11-01 00:33 |
|
> <Newbie_linux>
> På de større maskiner, jeg har arbejdet med gennem tiderne, er der
mulighed
> for at oprette en stribe diske med samme navn (volume set).
> Er der mulighed for, under Linux, at oprette noget tilsvarende?
> Altså flere diske under samme 'directory'.
> </Newbie_linux>
Du kan også lave software raid, 0,1&5 giver mening.
Og du kan mounte diske på mystiske vis:
/mybigdatabase/table1 -> /dev/hda1
/mybigdatabase/table1/index1 -> /dev/hdb1
/mybigdatabase/table2 -> /dev/hdc1
/mybigdatabase/table2/index2 -> /dev/hdd1
Om det så giver mening vil jeg lade dig vurdere, men det kan bruges til at
fordele load på forskellige diske.
--
Tonny
| |
Jesper Frank Nemholt (03-11-2001)
| Kommentar Fra : Jesper Frank Nemholt |
Dato : 03-11-01 12:38 |
|
"Tonny Sejr Kromann" <tskromann@hotmail.com> wrote in message
news:9rslvk$2lbb$1@news.cybercity.dk...
> > <Newbie_linux>
> > På de større maskiner, jeg har arbejdet med gennem tiderne, er der
> mulighed
> > for at oprette en stribe diske med samme navn (volume set).
> > Er der mulighed for, under Linux, at oprette noget tilsvarende?
> > Altså flere diske under samme 'directory'.
> > </Newbie_linux>
>
> Du kan også lave software raid, 0,1&5 giver mening.
> Og du kan mounte diske på mystiske vis:
>
> /mybigdatabase/table1 -> /dev/hda1
> /mybigdatabase/table1/index1 -> /dev/hdb1
> /mybigdatabase/table2 -> /dev/hdc1
> /mybigdatabase/table2/index2 -> /dev/hdd1
>
> Om det så giver mening vil jeg lade dig vurdere, men det kan bruges til at
> fordele load på forskellige diske.
Derudover skal man også lige huske på at RAID-5 ikke lige er det mest
optimale rent performance mæssigt, især ikke hvis det laves i software på
den maskine der også kører databasen. RAID-5 tager CPU tid mens RAID-0 og
RAID-1 næsten ingenting tager.
Hvis der laves kombinerede RAID-0 og RAID-1 så husk at lave dem som striped
mirrorsets og ikke omvendt. Når der stryger en disk i et mirrored stripeset
skal hele stripesettet re-genereres hvilket tager tid og koster performance
og forlænger tiden uden mirror. Når der ryger en disk i et striped mirrorset
er det kun een disk der skal re-genereres, og performance degraderingen er
minimal.
Linux har også en volume manager hvor man kan få samme funktionalitet (well,
ikke helt...) som man ser i f.eks. Veritas Volume Manager (Sun Solaris,
HP-UX, Tru64), men jeg ved ikke lige om jeg tør bruge det på Linux endnu.
Jeg bruger selv hardware RAID på Linux og nøjes med standard filsystemer
uden LVM (XFS pt.). På mit arbejde bruger vi Veritas på Solaris og AdvFS
eller LSM (Veritas klon) på Tru64, dog primært som volume managers og ikke
til RAID (bortset fra mirror i stretched clusters & multipath maskiner).
Derudover, så tænk frem i tiden m.h.t. design af dit filsystem. Før eller
siden løber du tør for plads, og hvad så ?
Alt for ofte ender man op med et layout der ikke er optimalt m.h.t.
performance eller design fordi dem der requester storage (database folkene)
kun requester det de har brug for nu og her og ikke tænker lidt frem i
tiden.
Tidligere har jeg typisk fået requests a la "vi skal bruge 100 GB til data
og 50 GB til index. Alt i striped mirror og på individuelle diske og
controllere". 2 måneder senere kommer der en tilsvarende request fordi de er
løbet tør for plads. Havde de nu bedt om det dobbelte første gang så havde
jeg haft mulighed for at lave et renere layout.
Derfor er jeg gået over til at designe storage først, og udelukkende med
henblik på performance, design og nem administration (al storage er
konfigureret identisk så man ikke skal bruge en halv dag på at analysere en
eller anden tilfældig RAID controller).
Når databasefolkene så kommer og beder om storage får de "standardpakker"
svarende til fulde disk-størrelser i striped mirrorsets, d.v.s. summen af et
eller andet antal 9.1, 18.2 eller 36.4 GB diske som på forhånd er spejlet og
striped mest optimalt på RAID controlleren (forskellig bus, forskellig
strømforsyning etc. etc.).
Efterfølgende monitoreres I/O på disse "standardpakker", og hvis databasen
belaster dem uens enten rent diskmæssigt eller bus mæssigt, så får DBA'erne
besked på at flytte lidt rundt på deres filer så der er en ligelig fordeling
af I/O. Denne monitorering kan foretages enten fra Oracle eller fra
operativsystemet (symbel/sar på Solaris/Linux, collect/sar på Tru64). Jeg
ved ikke om PostgreSQL har funktionalitet til dette.
/Jesper
| |
|
|