Automatisches Backup und Auto Vacuum

Hallo liebe PG - Community,

kurz zu meiner Person, ich bin lediglich ein User, bzw genötigt zum Admin sein. Also habe mir all mein Wissen durch rumprobiern angeeignet. Unsere Kundendatenbank nutzt die Postgredatenbank, und wir haben ständig Performanceprobleme. Da ich von der Hotline der Firma keine befriedigende Antwort bekomme, habe ich mich nun einfach mal selber auf die Suche einer Lösung gemacht.

Genutzt wird Postgre 8.1 auf einem Windows 2000 Server, P4 3000 mit 2gb ram. Leider muss ich aufgrund diverser anderer Softwarepakete noch auf Windows 2000 arbeiten.

Die Autovacuum funktion ist an, doch wurde mir von der Hotline gesagt ich solle dennoch manuell des öfteren das Vacuum / analyze anwerfen. Ich wollte nun wissen ob ich auch bedenkenlos mal ein Vacuum /full starten kann, also ob ich mir dabei ned die Datenbank zerschiesse?

Die Kundendatenbankssoftware verfügt zwar über eine Backupfunktion, allerdings muss ich die jedesmal manuell anstossen. Ich denke aber es gibt da auch eine automatisierte funktion mit der ich zumindest die postgredatenbank sichern kann, nur habe ich bisher nichts zu diesem thema gefunden.

Herzlichen Dank für eure Hilfe, sollte ich noch wichtige Daten unterschlagen haben, so bitte ich einfach noch kurz danach zu fragen, bin wie gesagt eigentlich “nur” User, aber ein interessierter.

Herzlichen Dank für eure Hilfe.

Zwischenfrage: Welche Hotline welcher Firma sagt das?

hab ich dir in ner PM geschrieben, da ich dies Firma hier nicht schlecht machen will, vermutlich liegt es einfach wieder mal am Unwissen der Hotlinemitarbeiter bzw der Firmenpolitik.

Die Hardware dürfte leistungsfähig genug sein, nur am Vacuum kann es nicht liegen, das die Datenbank so langsam ist.

Ich tippe darauf, das die Applikation reichlich schlecht programmiert ist und deshalb viel Performance verloren geht.

Aber wie genau herausfinden?
Mal schauen, was mehr belastet wird: Applikation oder Datenbank (von der CPU Usage). In das Datenbank Log schauen (ggf. Debugging aktivieren), ob dort Probleme auftreten.

Einen Blick auf folgende URLs werfen:
http://www.osdl.org/stp/
http://www.postgresql.org/docs/current/static/performance-tips.html
http://www.powerpostgresql.com/Docs


http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html
http://www.powerpostgresql.com
http://www.powerpostgresql.com/PerfList
http://www.varlena.com/varlena/GeneralBits/116.php
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html

Hier bekommt man einige gute Hinweise, wie man eine Datenbank schneller bekommt. Und vielleicht kannst du mit Hilfe von etwas Debugging auch herausfinden, ob die Applikation wirklich so langsam ist, sprich, ob sie unsinnige Anfragen stellt.

Hallo Similius,

deine manuellen Job’s kannst Du automatisieren, indem Du eine Batch-Datei schreibst und diese durch das Betriebsystem automatisch aufrufen läßt. Der DOS-Befehl hierzu lautet “at”, auf der Windows-Oberfläche nennt sich das “Geplanten Task hinzufügen”. Allerdings weiß ich nicht, ob es diese Windows-Bezeichnung auch unter Win2000 gibt.



mfg

fristo

Herzlichen Dank,

solangsam befürchte ich auch das es an der Software liegt, mit der ich die Datenbank abfrage.

Doch eine Frage ist noch offen, gibt es ne möglichkeit des automatischen zeitgesteuerten Backups der Datenbank ?

Hallo Similius,

hat sich wohl gerade überschnitten. Lies mein Beitrag.


mfg

fristo

jo hatte sich überschnitten,

leider kapier ich das ned ganz, also ich weiss noch aus Dos zeiten was ne batch datei ist nur wenn ich da nur den “at” befehl reinnehm glaub ich ned das es funktioniert ?!

würde es eigentlich reichen das komplette postgreverzeichniss einfach zu sichern, also laienhaft einfach das verzeichniss kopieren auf z.b. ne dvd ?

kann ich dies bei einem crash wieder zurückkopieren ?

nein, das wird nicht funktionieren, jedenfalls nicht ohne Vorbereitung.

Entweder, du sicherst die Datenbank mit pg_dump oder pg_dumpall oder du liest dich mal in das Kapitel PITR (Point in Time Recovery) auf der PostgreSQL Homepage ein.

Nur einfach die Dateien wegkopieren wird nicht funktionieren, da dort zu einem Zeitpunkt x vielleicht nur die halbe Transaktion drinsteht und nach dem Wiedereinspielen kein konsistenter Zustand vorhanden ist.

Hallo Similius,

In der Batch-Datei steht nur die Befehlszeile drin, die Du auch beim manuellen Starten eintippst. Mit dem at-Befehl teilst Du dem Betriebssystem mit, wann (Urzeit, Tag …) die Datei aufgerufen werden soll. Mehr nicht. Die Windows-Hilfe gibt Dir dazu detailierte Informationen. Bei mir, unter WinXP, brauch ich nur mit dem Mauszeiger auf dem Desktop klippen und F1 drücken, damit ich die Windows-Hilfe erhalte. Ob das unter Win2000 auch so funktiniert kann ich dir nicht sagen.


Kann ich Dir nicht sagen, da ich es noch nicht getestet habe. Aber vielleicht kann Dir ads dazu genauere Information geben.




mfg

fristo

Hat er ja schon.



mfg


fristo