# Löschung eines Mailkontos



## hahni (5. März 2008)

Guten Morgen!


Ich habe für einen Kunden ein Mailkonto gelöscht! Natürlich auch im Papierkorb, weil er nur eine begrenzte Anzahl an Mailkonten anlegen kann. All dies hat wunderbar funktioniert.

Allerdings konnte das gleiche Mailkonto (also gleicher Name) nicht mehr angelegt werden. Auf Datenbankebene habe ich also in der Tabelle (isp_isp_users) den entsprechenden Eintrag gelöscht!

Ich setze derzeit Version 2.2.21 ein und bei alten Versionen wurde spätestens nach dem Leeren des Papierkorbs auch der Datenbestand gelöscht. Nun meine Fragen:

1.
Ist eine Inkonsistenz zu anderen Datenbanktabellen aufgetreten, weil ich den Eintrag in "isp_isp_users" händisch gelöscht habe? Wenn ja: Welche Datenbanktabelle muss noch bereinigt werden?

2.
Ist dies ein Problem mit 2.2.21 oder vielmehr ein vermutlich temporäres Problem? Übrigens sind schon Lücken in der "isp_isp_users"-Tabelle; offensichtlich müssen die Einträge gelöscht werden, damit neue gleichnamige User angelegt werden können!

Viele Grüße

Hahni


----------



## Till (6. März 2008)

> Allerdings konnte das gleiche Mailkonto (also gleicher Name) nicht mehr angelegt werden. Auf Datenbankebene habe ich also in der Tabelle (isp_isp_users) den entsprechenden Eintrag gelöscht!


Das war schonmal schlecht, da Du damit die Konsistenz der datenbank gefährdest. Stattdessen musst Du einfach nur den papierkorb leeren!

Natürlich muss man User löschen, damit man einen gleichnamigen anlegen kann, da Usernamen immer eindeutig sein müssen. das geschieht aber wie gesagt durch leeren des Papierkorbs und niemals von Hand. Wenn Der Datensatz jetzt gelöscht ist und Du nicht mehr die interne ID des ursprünglichen datensatzes kennst, dann kann die Datenbank nicht mehr bereinigt werden.


----------



## hahni (6. März 2008)

Was meinst du mit Datenbank bereinigen? Die ID kenn ich nicht mehr, aber auffällig ist, dass da ohnehin Lücken drin waren!

Ich hatte ja versucht, den Papierkorb zu löschen! In diesem war ja auch das Mailkonto nicht mehr hinterlegt!

Offiziell war es also gelöscht! Aber der Eintrag in der Datenbank existierte noch! Folglich hätte das Konto nicht mehr neu angelegt werden können!

An welchen Stellen könnte nun die Konsistenz gefährdet sein? Welches Tool prüft die denn überhaupt?


----------



## Till (6. März 2008)

> Die ID kenn ich nicht mehr, aber auffällig ist, dass da ohnehin Lücken drin waren!


das ist normal und muss so sein. Die Lücken enstehen, wenn Du einen User korrekt über den papierkorb löscht, da die ID's nicht wieder verwendet werden (auto increment).

Wenn Du die ID nicht mehr kennst, dann kann die Datenbank nicht bereinigt werden.



> An welchen Stellen könnte nun die Konsistenz gefährdet sein?


ES kann zu Problemen beim Schreiben der Konfigurationsdateien kommen, da jetzt abhängigkeiten in den Tabellen isp_node und isp_dep ins "leere" laufen.



> Welches Tool prüft die denn überhaupt?


Die Konsistenz kann nicht mittels eines Tools überprüft werden.


----------



## hahni (6. März 2008)

Also, ich habe folgendes Vorgehen gewählt:
- Mailkonto gelöscht
- Papierkorb gelöscht
- gewartet, bis die Systemarbeiten abgeschlossen waren
- 1 min. später das Konto neu anlegen wollen

Es ging nix. Also habe ich auf dem Server nachgesehen! Die Verzeichnisse waren gelöscht, aber das Konto konnte noch immer nicht angelegt werden.

Also habe ich den Eintrag händisch gelöscht! Die ID kann ich rausfinden in einem Backup.

Aber dann müsste ich z. B. die aktuelle ID, die nun 233 ist, auf die alte (ich meine 54) umstellen. Doch dann ist die Konsistenz wieder gefährdet, weil 233 falsch belegt ist.

Ich hätte ja nicht in der Datenbank rumgefummelt, wenn der Papierkorb korrekt gelöscht worden wäre. Wie kann ich denn querprüfen, ob alles korrekt passt?


----------



## hahni (6. März 2008)

Till, kannst du mir bitte noch verraten, wie ich die beiden Tabellen "isp_node" und "isp_dep" gerade biege, wenn ich die alte ID weiss?


----------



## hahni (6. März 2008)

Huhu Till,

also:
Der Datensatz hatte früher in "isp_isp_user" die ID 54! In der Tabelle "isp_nodes" steht er noch drinnen und wurde nicht gelöscht! Gefiltert habe ich nach der "doctype_id", die ja bei Mailkonten "1014" ist und nach der doc_id="54". Den Datensatz könnte ich (falls das eben die inkonsistente Stelle in der Datenbank ist) löschen!

Bei "isp_dep" allerdings weiss ich nicht, nach was ich filtern muss! Wenn es dort "child_doc_id"=54 und "child_doctype_id"=1014 ist, hätte ich den Datensatz auch gefunden. Für den Fall, dass der Filter stimmt: muss der Eintrag dann auch gelöscht werden?

Wäre echt lieb, wenn du mir dabei behilflich sein könntest


----------



## Till (7. März 2008)

Ja, das ist beides korrekt.


----------



## hahni (7. März 2008)

Und wenn die beiden Datensätze korrekt gelöscht sind, kann man wieder von einer konsistenten Datenbank sprechen? Oder müssen noch andere Tabellen berücksichtigt werden?


----------



## Till (9. März 2008)

Ja, dann sollte alles wieder ok sein.


----------



## hahni (9. März 2008)

Besten Dank für deine Geduld


----------

