Verzeichnisbaum Posteingangsordner Zarafa wiederherstellen Resetting mailbox IPM Tree

Status
Für weitere Antworten geschlossen.

OhneAhnung

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
300
Punkte für Reaktionen
0
Punkte
22
Hallo Leute,
ich habe hier ein ernstes Problem vorliegen, welches bereits unter https://www.synology-forum.de/showthread.html?101996-Zarafa-Webapp-und-Zarafa-Webaccess-zeigen-meine-Ornder-nicht-mehr-an%21 andiskutiert wurde. Damals war noch nicht ganz klar, was die Ursache für das Fehlen meiner Posteingangsbox unter Zarafa war. Mitllerweile weiß ich mehr, auch Dank einiger Leute hier in der Community.


System:

  • Ich betreibe noch Zarafa 0.5.5 (Zarafa Version: 7.1.8) mit Z-Pull-Vmail Zarafa Tool 1.1 sowie Z-Push-Zarafa-Tool 2.2.13.3 und Connection Client (7.2.1-51976.msi) zu Outlook 2013 (32bit) und Python 2.7.9


Ausgangssituation:
  • Unter Outlook 2013 (32bit) lässt sich plötzlich meine Posteingangsordner nicht mehr erreichen, nachem ich versucht habe unter Outlook einen Kalnder zu integrieren. Outlook lässt sich darauf nicht mehr starten.
  • Erst nach Neuinstalltion des Connection Clients (7.2.1-51976.msi) ist Outlook wieder zu starten, allerdings wird das Zaraf-Konto nicht angezeigt.
  • Darauf gehe ich per Webapp/Webaccess direkt auf der DS auf Zarafa und kann ebefalls den Posteigangsordner nicht mehr finden. Termine werden jedoch angezeigt, Kontakte nicht.
  • Es bricht Panik aus, weil etwa 16GB existenzielle Daten nicht mehr zugänglich sind.
  • Meine Sicherung ist aus verschiedenen Gründen etwa 1 Jahr alt und nicht mehr aktuell.
  • Handyzugang funktioniert allerdings noch für Kalender und Email (Aufgaben und Notizen noch nicht vollständig überprüft).

Fehler1.jpg

Vermutung:
Der Posteingangsordner des Zarafnutzers wird nicht angezeigt, weil sich der IPM Subtree Entry zerlegt hat.


Lösungsmöglichkeit:

#!/usr/bin/python -u
#

from MAPI import *
from MAPI.Util import *
import sys

if len(sys.argv) < 2:
sys.exit('Usage: %s username' % sys.argv[0])

s = OpenECSession(sys.argv[1], '', 'file:///var/run/zarafa')
st = GetDefaultStore(s)
subtreeid = st.GetProps([PR_IPM_SUBTREE_ENTRYID], 0)[0].Value

openroot = st.OpenEntry(None, None, 0)
table = openroot.GetHierarchyTable(0)
table.SetColumns([PR_DISPLAY_NAME, PR_ENTRYID], 0)

while True:
rows = table.QueryRows(20, 0) # Get 20 folders under the root

if len(rows) == 0: # No results, die
break

for row in rows: # Run through the array
if row[0].Value == "IPM_SUBTREE": # Find IPM_SUBTREE
eid = row[1].Value # Value of IPM_SUBTREE
if subtreeid == eid: # Both match, nothing to fix
print 'Result: IPM_SUBTREE_ENTRYID already matches IPM_SUBTREE!'
print 'IPM_SUBTREE_ENTRYID: ' + subtreeid.encode('hex') + '\nIPM_SUBTREE: ' + eid.encode('hex')
elif len(eid) < 2: # Check to ensure the proper ID is actually given
print 'Result: Invalid IPM_SUBTREE entryid found, aborting...'
else: # Broken, fix it
print 'Result: Setting PR_IPM_SUBTREE_ENTRYID to IPM_SUBTREE'
print 'PR_IPM_SUBTREE_ENTRYID current value: ' + subtreeid.encode('hex')
st.SetProps([SPropValue(PR_IPM_SUBTREE_ENTRYID, eid)]) # Set the proper ENTRYID
print 'PR_IPM_SUBTREE_ENTRYID set to: ' + subtreeid.encode('hex')

  • Skript habe ich unter volume1/@appstore/Zarafa/phpmapi/fixipm.py erstellt und Mapi Treiber über pip-Befehl installiert.
  • Nach Start des Python-Skripts mittels (python fixipm.py nutzername) kam die Fehlermeldung, dass das Modul MAPI nicht gefunden werden kann (File "fixipm.py", line 4, in <module> from MAPI import *)).
  • Trotz mehrerer Versuche kein Erfolg und vorerst Abbruch.
  • Hinweis eines Freundes: Das Skript ist sehr alt (2012) und die Schreibweise MAPI müsste heute mapi lauten. Zudem gibt es vermutlich noch andere Änderungen, die am Skript eingepflegt werden müssten.


Fragen:
  1. Wer kann Hilfestellung zum Gesamtproblem geben?
  2. Warum läuft es noch per Handy, aber nicht mehr per Computer?
  3. Wo sitzt der Fehler? In der Datenbank oder in einer Verbindungsebene zwischen Zarafa und Maria DB?
  4. Wenn ich die Datenbank so sichere wie sie jetzt ist, könnte sich das Problem lösen lassen, wenn ich die Sicherung auf ein neues System unter Zarafa4Home einspiele oder wird der Fehler mit übertragen?
  5. Wer weiß, ob die Groß- und Kleinschreibung tatsächlich ein Problem sein könnte?
  6. Wer sieht noch weiteren Veränderungsbedarf am Skript und konkret welchen?

Angebot:
  • Wer unterstützt mich per Fernwartung über Teamviewer 14 und Telefon bei der Wiederherstellung meines Zarafa. Biete 40 Euro/Stunde per paypal mit Anzahlung vorab für eine Stunde.
  • Ziele sind dabei: Rettung der Datenbank und/oder Wiederherstellung des Systems, so dass ich die Daten über Outlook per pst-Datei sichern kann.
  • Zeit ab Samstag möglich

Es ist wirklich dringend für mich... Grüße
OhneAhnung
 
Zuletzt bearbeitet:

OhneAhnung

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
300
Punkte für Reaktionen
0
Punkte
22
Ok...ich sitze hier mit Freunden und arbeite am o.g. Problem. Wir benötigen das Paket python-zarafa für Zarafa 7.1. für den ARM CPU: MARVELL Kirkwood 88F6282

Wo können wir das finden?
 
Zuletzt bearbeitet:

fbartels

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
284
Punkte für Reaktionen
2
Punkte
24
für den ARM CPU: MARVELL Kirkwood 88F6282

Zu der Zeit habe ich die Synology Aktivitäten hier noch nicht so richtig verfolgt. Wenn es dieses Paket aber irgendwo für arm gibt, dann nur in Julians alten Paketen. Eventuell lohnt es sich hier im Subforum mal nach Python oder "ipm subtree" zu suchen.

Der einfachste Weg wird aber mit sicherheit sein Kopano (oder eventuell auch ein altes Zarafa) einmal auf einer x86-64 vm zu installieren und dann darüber mit der Installation auf der Synology zu kommunizieren. Ich denke hierfür sollte auch schon ein einfacher Docker Container ausreichen. Dieses Image enthält 7.1 Pakete, selbst ausprobiert habe ich es aber nicht: https://hub.docker.com/r/leckerbeef/zarafabase/tags
 

FricklerAtHome

Benutzer
Mitglied seit
01. Okt 2017
Beiträge
583
Punkte für Reaktionen
42
Punkte
54
Glück Auf

ich hoffe Ihr seit weiter gekommen. Ansonsten kann ich mich eigentlich nur fbartels anschließen. Versucht zeitgleich zu eurem System eine weitere Zarafa / Kopano Installation aufzubauen.
Das geht wie fbartels beschrieben hat mit einer x86-64 VM.
Dazu gibt es einen Weg über eine Kopano Installation aus zb. Univention (oder einem anderen fertigen VM Image mit Kopano) mittels VMware / HyperV oder sonstigem. Wollt Ihr eine Synology Z4H Installation nachahmen gibt es noch einen "inoffiziellen" Weg. Dazu braucht ihr eine Synology VM. Offiziell geht das als Docker oder VMM Abbild in einer echten Synology. Auf einem PC wäre eine Synology VM mittels "Xpenology" möglich.
Ansonsten habt ihr vielleicht nicht die Zeit, aber eine Regel ( die Andy+ auch richtig immer zitiert ) lautet: Ist die mariaDB intakt läßt sich alles wiederherstellen. Also arbeitet bitte zunächst immer mit einem Double dieser DB.

meine Erfahrungen sind bisher: Ist die Datenbank "save" läßt sich auch mit mehr oder weniger Mühe Zarafa/Kopano wiederherstellen. Deine bisherige Version hat ja auch die E-Mail Anlagen noch in der Datenbank gespeichert. Da sollte nichts verloren sein wenn die DB läuft.

Ansonsten und verzeih die harten Worte: "Kein Backup? ------ Kein Mitleid! (Zitat: offizieller Rucksack der c'T)" Bisher (als Vermutung) hast du ja auf die frei zugängliche und kostenlose Fähigkeit deiner Synology genutzt um (deinem Preisvorschlag zu Hilfe folgend) kommerzielle Erfolge zu haben.

Das können wir auf deinem Stand in diesem Forum nicht beheben.

--- Immer ein Licht bei der Nacht

der Frickler@Home
 

OhneAhnung

Benutzer
Mitglied seit
04. Apr 2012
Beiträge
300
Punkte für Reaktionen
0
Punkte
22
Also, das Problem wurde mittels Skript für Maria DB auf phpadmin wie folgt durch Freunde gelöst:

Anleitung:

1. Einloggen auf der zarafa datanbank

2. Tabelle stores öffnen und hierachy_id [HIERACHYID_PARENT] für den betreffenden Nutzer raussuchen

3. SELECT auf die Tabelle properties durchühren: SELECT hierachyid FROM `properties` WHERE `tag` = 12289 AND val_string='IPM_SUBTREE'

4. Die Tabelle hierachy öffnen
4.1. In dieser werden abhängigkeiten in der Form id -> parent dargestellt. z.B.: (ID:10, PARENT: 9) --> 10 ist unterelement von 9 4.2. Die kleinste ID[HIERACHYID_CHILD] raussuchen, welche von unserem abgefragten HIERACHYID_PARENT abhängt.

5. SQL Befehl ausführen: SELECT pro.val_binary FROM indexedproperties WHERE hierachyid='[HIERACHYID_CHILD]' AND tag=4095 5.1. Den angezeigten Binärwert[BIN] herunterladen, im HEX Editor öffnen und als Hexadezimalwert kopieren 6. Folgenden SQL Befehl ausführen:



UPDATE
properties
SET val_binary=X'[BIN]'
WHERE
hierarchyid=[HIERACHYID_PARENT] AND tag=13792

Das Statement, was wir bei dir zur Reparatur verwendet haben:
UPDATE
properties as pro
SET pro.val_binary=X'0000000047C500D2CE474F34986D30A450CD16E60100000003000000BFA9ADFA7DE84F4899F17B72F077C9CF00000000'
WHERE
hierarchyid=9 AND tag=13792




Danach lief wieder alles und der Verzeichnisbaum war wiederhergestellt. Vielleicht hilft das anderen Betroffenen weiter. Würde mich sehr freuen.

Grüße
OhneAhnung
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.021
Punkte für Reaktionen
320
Punkte
189
Du hattest guten Beistand, ich hätte das nicht hinbekommen ... *DAUMEN HOCH*

Ich denke, einen besonderen Rat brauchst Du nicht mehr, lege Backups an, insbesondere von der Datenbank. Ob es mit Zarafa JD bereits ein Backupscript gab, weiss ich nicht recht, leider sind alle mir bislang bekannten Scripts im Zusammenhang mit Zarafa oder Kopano ohne GUI usw. Ich habe die auch getestet, insbesondere das von Tosoboso erstellte, legt eine Backupdatei im Dateisystem an, das finde ich noch ganz gut und überschaubar. Trotzdem bin ich da eher ein visueller Mensch und arbeite gerne mit GUI´s und verwende daher bereits seit langem mit dem Servertool Sypex Dumper, was mit einer angepassten Version auch unter PHP 7.2 funktioniert. Daraus lassen sich Scripts generieren, die dann in die crontab eingebunden werden können und damit automatische Backups möglich sind. Hast Du da eher den Bezug zum Computer und hast Windows im Einsatz, geht natürlich auch Workbench oder HeidiSQL.

Was möchtest Du ansonsten nun machen? Möchtest Du nun umsteigen auf Z4H oder K4S? Das erstere geht mit der DS411 allerdings nicht (bzw. wäre mit einer präparierten SPK zu testen). Das zweite geht nur mit DSM 6 und das empfehle ich Dir auf der DS411 nicht, die wird spürbar langsamer usw.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat