PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : datenbank abgeschossen



supersucker
27-05-2005, 01:05
Hi,

ich hab ne ca. 20 GB grosse postgresql-db v.7.4.1, die möchte ich nun löschen um sie neueinzuspielen, weil die berechneten daten in ihr falsch sind, und die db ausserdem komplett hängt nach diversen dilettantischen operationen auf ihr meinerseits.....

mit hängen meine ich: die datenbank ist zwar am start, ich kann also mit z.b. psql zur datenbank verbinden, aber ansonsten kann ich nichts mehr machen, also kein insert, kein select, kein delete, wenn ich beispielsweise nur einen einzigen datensatz einfügen möchte, klappt das schon nicht mehr.
ich krieg aber auch von der datenbank keine fehlermeldung, die abfrage wird abgesetzt und dann tut sich nichts mehr auf der konsole und ich breche dann ab mit strg + c.... (ach ja, und bitte fragt mich nicht wie ich es geschafft hab die db in den zustand zu bringen, das wüsst ich selber gerne..)

nun hab ich folgendes problem:

wenn ich sowas mache wie




drop table fragment


tut sich nichts, es sieht also seit stunden so aus:

fraglib=> drop table fragment;

und der cursor blinkt munter vor sich hin......

nun weiss ich nicht ob sich:
1. einfach überhaupt gar nichts tut , weil die db, wie schon gesagt sich in leicht zersaustem zustand befindet
2. oder ob sich deshalb nichts tut, weil einfach so viele daten zu löschen sind, hab seit ungefähr 10 stunden die drop-operation laufen und es müssen ca. 20 gigabyte gelöscht werden

deshalb nun meine fragen:

1. was meint ihr dazu? kann die drop-operation wirklich so lange dauern?
2. gibt es bei postgresql irgendeine möglichkeit den status einer operation zu sehen? also kann man sich irgendwie anzeigen lassen wie weit er mit dieser drop-operation ist bzw. ob die db überhaupt was tut?
3. wenn die datenbank wirklich so hängt, dass sie nicht mal mehr das drop ausführen kann, kann ich die db irgendwie zwingen die
tabelle zu löschen OHNE einfach die db von der festplatte manuell zu löschen und den server neu zu installieren?

danke im voraus für alle tips!

elrond
27-05-2005, 08:36
1. was meint ihr dazu? kann die drop-operation wirklich so lange dauern?
2. gibt es bei postgresql irgendeine möglichkeit den status einer operation zu sehen? also kann man sich irgendwie anzeigen lassen wie weit er mit dieser drop-operation ist bzw. ob die db überhaupt was tut?
3. wenn die datenbank wirklich so hängt, dass sie nicht mal mehr das drop ausführen kann, kann ich die db irgendwie zwingen die
tabelle zu löschen OHNE einfach die db von der festplatte manuell zu löschen und den server neu zu installieren?

danke im voraus für alle tips!

1. nein, das drop table darf definitiv nicht so lange dauern, da dabei nicht einzelne Datensäze enfernt werden sondern die gesamte Tabelle
2. ps ax|grep postgr - leider weiß ich sonst auch nichts zum monitoring
3. hast du mal versucht die Datenbank zu restarten? Wenn das läuft könnte vacuumdb dein freund sein... Das vacuum der db wird voraussichtlich eine ganze weile laufen, aber mit ein wenig glück ist die db hinterher wieder ansprechbar. Zum Löschen der gesamten Db kannst du "dropdb <dbname>" verwenden.

viel erfolg!

mwanaheri
27-05-2005, 09:45
Monitoring bietet in bescheidenem Umfang auch pgaccess unter dem Menüpunkt "server"