[QGIS-DE] Antwort: PostgreSQL: Fehler beim Restore

Marcus Abram marcus.abram at krzn.de
Mi Mai 7 07:00:44 PDT 2025


Hallo zusammen,

vielen Dank für die Rückmeldungen.

In der Tat ist es so, dass in der Ausgangs-DB die Erweiterung ArcSDE 
installiert ist, während in der Ziel-DB die Erweiterung PostGIS 
installiert ist.
Die Fehler beim Import sind dadurch entstanden, dass im Schema public die 
Tabelle sde_spatial_references erwartet wird. Wird diese vor Einspielung 
der Datensicherung importiert, treten die Fehler nicht auf, die Tabellen 
werden vollständig gefüllt.

Nun stoße ich jedoch auf das nächste Problem: Die Geometriespalten sind 
anders definiert, als PostGIS es erwartet. Die Daten aus der ArcSDE sind 
vom Datentyp st_geometry, während PostGIS-Layer den Datentyp geometry 
sowie jeweils den richtigen Geometrietype z.B. LineString erwartet. Es ist 
nun nicht möglich hier einfach den Typ zu ändern.

Offenbar verfügt GDAL aber über einen ArcSDE-Treiber. Ich versuche nun auf 
diesem Weg weiterzukommen. Es sollte damit ja möglich sein mit QGIS auf 
die ArcSDE zuzugreifen und dann in PostGIS zu exportieren, hoffentlich mit 
dann richtiger SRID.


Viele Grüße
Marcus




Von:    "Karsten Vennemann" <karsten at terragis.net>
An:     "Marcus Abram" <marcus.abram at krzn.de>
Kopie:  qgis-de at lists.osgeo.org, BenjaminGabriel.Klusz at krzn.de, 
Julia.Meyering at krzn.de
Datum:  06.05.2025 16:13
Betreff:        [EXTERN] Re: [QGIS-DE] PostgreSQL: Fehler beim Restore



Hallo Markus,
ich habe zwar nichts ganz Ähnliches gemacht, aber beim kurzen Ansehen der 
Fehlermeldungen scheint es mir, als ob beim Datenbank-Dump etwas mit der 
Kartenprojektion (also in PostGIS: dem SRID) zwischen der Definition in 
der Tabelle und den einzuspielenden Daten nicht übereinstimmt oder nicht 
konsistent ist.
PostGIS prüfen
Als Erstes würde ich allerdings prüfen, ob PostGIS installiert und in der 
Datenbank verfügbar ist:
Im pgAdmin-Query-Fenster:
SELECT postgis_version();

Wenn dabei nichts gefunden wird, müsst ihr PostGIS als Erweiterung 
hinzufügen:
CREATE EXTENSION IF NOT EXISTS postgis;

Wenn das einen Fehler auslöst, ist PostGIS vermutlich nicht auf der 
Maschine / Server installiert. Wenn danach die abfrage SELECT 
postgis_version();
geht würde ich den import nochmals (in eine frische DB) starten uns sehen 
ob das allein schon das problem war... 

SRID-Probleme analysieren
Wenn das nichts hilft, wäre es hilfreich, in der leeren Tabelle 
nachzusehen, wie die Geometriespalte definiert ist (laut Fehlermeldung ist 
das die Spalte shape). In der Fehlermeldung sieht man, dass dort SRIDs wie 
4 oder 2 auftauchen – die nicht gültig sind – sowie SRID 25832, was eine 
gültige Projektion ist:

ETRS89 / UTM Zone 32N (EPSG:25832) – das ist eine Standardprojektion der 
deutschen Vermessungsämter.
Ohne weitere Details kann ich nicht genau sagen, woher das kommt, aber 
offenbar ist die SRID-Angabe inkonsistent:
fl_pet → SRID 4 (ungültig)
archiv_strflaechen → SRID 25832 (scheint korrekt, aber ihr bekommt dennoch 
Fehler)
pt_baum → SRID 2 (ebenfalls ungültig)
Auffällig ist, dass selbst bei einer scheinbar korrekten SRID (25832) ein 
Fehler auftritt.

Deshalb würde ich eine einfache SQL-Abfrage ausführen, um zu testen, ob 
SRID 25832 in eurer PostGIS-Installation grundsätzlich funktioniert. 
SELECT ST_AsText(
  ST_SetSRID(
    ST_GeomFromWKB(  
decode('0106000020E86400000100000001030000000100000006000000703D0AD7543E2141EC51B8FECC6F544100000080583E2141E27A142ECD6F5441F8285C0F5D3E214114AE47F1CC6F544150B81E855E3E2141285C8F82CC6F544148E17A94573E21417A14AE27CC6F5441703D0AD7543E2141EC51B8FECC6F5441', 
'hex')
    ), 25832
  )
);

Diese Abfrage prüft, ob PostGIS Geometrien mit SRID 25832 korrekt 
verarbeiten kann.
Wenn das funktioniert, ist PostGIS korrekt installiert und die SRID 25832 
verfügbar. Falls nicht, liegt evtl. ein Problem mit der Installation, der 
spatial_ref_sys-Tabelle oder inkompatiblen PROJ-Versionen vor.SRID-Eintrag 
prüfen
Du kannst auch gezielt prüfen, ob SRID 25832 in der Tabelle 
spatial_ref_sys eingetragen ist:

SELECT srid, auth_name, auth_srid, srtext, proj4text 
FROM public.spatial_ref_sys 
WHERE srid = 25832;

Wenn dieser Eintrag fehlt, ist die Tabelle nicht korrekt befüllt. Dann 
würde ich empfehlen, PostGIS nochmals zu deinstallieren und neu zu 
installieren.
Wenn ihr nicht an den kompletten alphanumerischen WKB-String aus dem Dump 
herankommt, könnt ihr vorübergehend das Datenbank-Logging aktivieren, um 
bei einem erneuten Importversuch in den PostgreSQL-Logs umfangreiche 
Fehlermeldungen zu sehene und die kompletet SQL befehle aka copy befehle 
zu sehen ...
Oder einfach den oben genannten Test-Query laufen lassen – das zeigt 
zumindest, ob eure SRIDs grundsätzlich funktionieren.
Viel Erfolg bei der Fehlersuche! 
Viele Grüße Karsten

On 5/6/2025 15:01, Marcus Abram via QGIS-DE wrote:
Hallo zusammen, 

wir haben eine PostgreSQL-DB, in der sich Daten befinden, die mit ArcMap 
erstellt worden sind. Diese sind gesichert und per Restore in eine weitere 
PostgreSQL eingespielt worden, auf die dann mit QGIS zugegriffen werden 
soll. 
Leider werden zahlreiche Tabellen bzw. Layer nicht gefüllt. Es werden zwar 
die Schemen, Tabellendefinitionen und Berechtigungen übernommen, aber die 
Datensätze der meisten Tabellen sind leer. Es handelt sich jetzt also 
nicht direkt um ein QGIS-Problem, sondern um ein DB-Problem, erzeugt durch 
wahrscheinlich einige fehlerhafte Datensätze aus ArcMap, vielleicht hat 
dennoch jemand bereits ein ähnliches Problem gehabt und weiß Rat. 

Hier noch ein Auszug der Fehlermeldungen, die beim Restore ausgeworfen 
werden:

pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR: 
 ESRI: error getting spatial references for srid = 4: 
KONTEXT:  COPY fl_pet, line 1, column shape: 
"CB000000110000000800100004000000AF02000001100004AEADE5AACEC0DE08B4C9D5E0FEE69119CFAC9BD401B0D2F5D602..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »archiv_strflaechen«: 
ERROR:  ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY archiv_strflaechen, line 1, column shape: 
"DA0000002A00000008001000E8640000BE020000011000049096CC8E9503B6F2D49C9009B865F64A889401E28601948201F8..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR: 
 ESRI: error getting spatial references for srid = 4: 
KONTEXT:  COPY strflaechen, line 1, column shape: 
"54000000050000000800100004000000380000000110000490C8D2C4B5C1D7088AAD82E6F5C08D19F0D1A1D807A8B4F89206..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR: 
 ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY strflaechen, line 1, column shape: 
"760000001100000008001000E86400009A01000001100004A4FF8CAF9503969EEF8290098480038A4BD09304969712FCD70B..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_po«: ERROR:  ESRI: 
error getting spatial references for srid = 25832: 
KONTEXT:  COPY fl_po, line 1, column shape: 
"590000000700000008001000E86400003D00000001110004AEB8BAC19603B691A6FB9009DEC48901D0A229A9A929F8855DEB..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR: 
 ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY strflaechen, line 1, column geom: 
"B20000001C00000008001000E86400009602000001100004B5DDE2889603A1E0E8919209E420A23EC311AF20DE1DCB108F1C..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »pt_baum«: ERROR: 
 ESRI: error getting spatial references for srid = 2: 
KONTEXT:  COPY pt_baum, line 1, column geometry2: 
"2D000000010000000100040002000000110000000101000098F6B497960395FBD8E1900980A8D6B90756000000"
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR: 
 ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY strflaechen, line 1, column shape: 
"900100003E00000008001000E8640000B40500000110000487B2B7EC9503B6D8F5809209D0FB0382E602D0FB0383E602D0FB..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR: 
 ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY fl_pet, line 1, column shape: 
"3E0000000500000008001000E8640000220000000110000491BFFAF495039E8A878D9009B5E408CEC8028B30B8A401F4E408..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strflaechen«: ERROR: 
 ESRI: error getting spatial references for srid = 4: 
KONTEXT:  COPY strflaechen, line 1, column shape: 
"96020000420000000800100004000000BA090000011000049BDCBE89E1DDDC08B290ABE0F5FD9319C6C791E20392DADEF103..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_po«: ERROR:  ESRI: 
error getting spatial references for srid = 4: 
KONTEXT:  COPY fl_po, line 1, column shape: 
"B40000000F000000080010000400000098020000011000049BADCFEF85EAD70886E5A3BFA5D88D19CEFEB0EC03C8B1F78D01..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR: 
 ESRI: error getting spatial references for srid = 25832: 
KONTEXT:  COPY fl_pet, line 1, column shape: 
"5F0000000E00000008001000E86400008301000001100004A5DAE3ED960394A3E6A49309A86FAD1280658048AF16A255F220..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »strabschnitte«: 
ERROR:  ESRI: error getting spatial references for srid = 4: 
KONTEXT:  COPY strabschnitte, line 1, column shape: 
"860000000A00000004000C0004000000AA010000010000009AA8E1C1E1DFD7089AFFD68C8CE98C1991C4B4F13C8A84C48C4A..."
pg_restore: Fehler: COPY fehlgeschlagen für Tabelle »fl_pet«: ERROR: 
 ESRI: error getting spatial references for srid = 4: 

usw. 


Viele Grüße
Marcus

_______________________________________________
QGIS-DE mailing list
QGIS-DE at lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-de

-- 
Karsten Vennemann
Terra GIS LTD 
2119 Boyer Ave E 
Seattle, WA 98112
Tel ++1 206 905 1711
www.terragis.net



-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.osgeo.org/pipermail/qgis-de/attachments/20250507/99f8c367/attachment-0001.htm>


Mehr Informationen über die Mailingliste QGIS-DE