Question
Il peut arriver que des File Geodatabases (FGDB) entières ou des parties de celles-ci (classes d'entités) deviennent corrompues. Comment peut-on réparer les parties affectées ?
Cause
Les raisons possibles d'une FGDB corrompue sont :
- Si les modifications d'une classe d'entités ne sont pas enregistrées pendant une session d'édition
- Si la session d'édition est interrompue par un plantage de l'application
- Si une classe d'entités est enregistrée sur un lecteur réseau et qu'il y a une fluctuation de connexion au lecteur
- ...
Problème
Les symptômes suivants peuvent apparaître :
- Erreur lors de l'ouverture de la FGDB
- Erreur lors de l'ouverture de la classe d'entités (FC)
- Erreur lors de l'édition (par exemple disparition d'entrées dans la table attributaire lors du tri)
- Erreur lors de l'aperçu dans ArcCatalog
- ...
Solution
Les possibilités suivantes existent pour résoudre ces problèmes :
- Réparer : https://desktop.arcgis.com/de/arcmap/10.3/manage-data/administer-file-gdbs/compact-file-and-personal-geodatabases.htm
- Compresser / Décompresser : https://desktop.arcgis.com/de/arcmap/10.3/manage-data/administer-file-gdbs/compress-file-geodatabase-data.htm
- Récupérer : https://desktop.arcgis.com/de/arcmap/10.3/tools/data-management-toolbox/how-recover-file-geodatabase-works.htm
- Copier la base de données dans un autre type de données (Personal Geodatabase, SQL Server, Oracle
Si les possibilités ci-dessus n'apportent aucune amélioration, la possibilité suivante existe :
Option 1 : FME
- Charger la classe d'entités affectée avec FME et l'écrire dans une nouvelle FGDB.
- Contrairement à ArcCatalog, FME ne s'arrête pas en cas de fonctionnalités corrompues, mais les ignore et continue avec les autres fonctionnalités.
- L'Objectid et le Globalid ne peuvent cependant pas être conservés lors de cette exportation et sont donc modifiés. Veillez donc à ce que l'Objectid et le Globalid originaux soient écrits dans un nouveau champ séparé OID_TEMP ou GLOBALID_TEMP.
Modèle : geodatabase_file2filegdb_Copy_ORI_ID.fmw
- Copier la classe d'entités dans une base de données SQL Server
- Modifier directement dans SQL Server Management Studio l'OBJECTID et le GLOBALID avec les valeurs de OID_TEMP ou GLOBALID_TEMP, par exemple :
USE LEER ;
GO
UPDATE LEER_OWNER.AWK_ABWASSERKNOTEN
SET OBJECTID = OID_TEMP
WHERE 1=1
GO
- Recopier la classe d'entités de la base de données SQL Server dans la FGDB originale.
Option 2 : Modèle dans ArcCatalog
voir https://support.esri.com/en/Technical-Article/000021330
Modèle : Toolbox.tbx
Comme dans le cas de la méthode via FME, l'Objectid et le Globalid sont également modifiés ici. Ils doivent donc être modifiés par la suite directement dans SQL Server Management Studio.
Commentaires
0 commentaire
Cet article n'accepte pas de commentaires.