Me gustaría hacer una copia exacta (dominios, conjuntos de datos de entidades, clases de entidades, etc.) de una base de datos SDE a una geodatabase de archivos.
He probado varias posibilidades, que incluyen:
- utilizando el proceso de copia (gestión de datos)
- creando un nuevo GDB y copiando manualmente cada conjunto de datos de características desde el SDE
- exportar un documento de espacio de trabajo xml desde el SDE e importarlo al GDB
El Copy_management
proceso no parece funcionar para copiar un SDE a un GDB, ya que los tipos de datos de entrada y salida deben coincidir.
El proceso de importación de cada conjunto de datos de características en un nuevo GDB probablemente también podría automatizarse utilizando Copy_management iterando a través de cada conjunto de datos de características, aunque parece que esto podría causar problemas de una copia incompleta si hubiera un error con uno de los procesos.
Exportar e importar espacios de trabajo xml parece funcionar, aunque este proceso crea archivos increíblemente grandes cuando el proceso se utiliza en geodatabases grandes.
¿Existe una forma más directa de copiar el contenido y el esquema de un SDE a un GDB que las formas mencionadas, de manera que pueda automatizarse?
Si no, ¿hay alguna razón por la cual las posibilidades anteriores no deberían usarse en este proceso?
Respuestas:
La única forma de obtener una copia real de los datos (dominios, conjuntos de datos, relaciones, etc.) es usar el método manual de copiar y pegar dentro del catálogo. ESRI aún no nos ha dado la capacidad de transferir estos datos de ninguna otra manera con una sola operación que se puede programar fácilmente.
Tengo un proceso nocturno que copia mis dos bases de datos SDE principales en geodatabases de archivos para la continuidad de las operaciones. Esto es para que, en caso de emergencia, mi personal tenga algunos datos para trabajar hasta que mi tienda de TI pueda reconstruir mi SDE a partir de la copia de seguridad. Después de muchas pruebas y errores, he decidido que podemos vivir con las limitaciones de usar FeatureClassToFeatureClass_conversion y TableToTable_conversion para transferir nuestros datos todas las noches.
Sí, perdemos parte de la funcionalidad de la geodatabase, pero ahora se ejecutará desatendida por la noche y está lista para funcionar tan pronto como la obtenga. En mi caso, la única funcionalidad que realmente nos falta (suponiendo que opere en un modo de emergencia) es que mis clases de relación se rompen porque la conversión restablece los ObjectID que vinculan las dos tablas.
Hasta que ESRI nos brinde más opciones, tendrá que ver qué está dispuesto a sacrificar en este momento; tiempo y esfuerzo o funcionalidad?
fuente
Sé que esta publicación es un poco vieja, pero pensé que compartiría mi respuesta ya que me enfrenté al mismo problema. El siguiente script DEBE copiar todas las tablas, clases de entidad y relaciones que no estén en un conjunto de datos y también copiará sobre todos los conjuntos de datos, incluidas las clases de entidad, la topología, etc. dentro del conjunto de datos. Se saltará cualquier error durante la copia y continuará. Producirá un archivo de registro que contiene datos como el recuento de elementos de la base de datos de origen y el recuento de elementos de destino para que pueda comparar la copia y también registrará los errores que encuentre.
Tuve mucha suerte con esto. Estaba replicando una base de datos SDE en una geodatabase de archivos. Sin embargo, no he realizado pruebas exhaustivas con este script, ya que satisfizo todas mis necesidades. Lo probé usando ArcGIS 10.3. Además, una cosa a tener en cuenta, estaba en conversaciones con alguien que ha usado este script y se encontraron con un problema con un error al copiar ciertos conjuntos de datos debido a permisos incorrectos y tablas vacías.
Lemur: ¿por qué no crear sus relaciones basadas en una identificación global en lugar de la identificación del objeto? Que tus relaciones se preservarían. Si no ha creado identificaciones globales, lo recomendaría encarecidamente.
-actualizar
Agregué un poco más de lógica al código para manejar rutas de conexión de base de datos incorrectas y un mejor registro y manejo de errores:
fuente
He usado un guión similar al de Peter arriba y tuve buena suerte, aunque la suya es mejor. Una cosa para señalar que puede hacer tropezar a alguien es que si está utilizando geoprocesamiento de python de 64 bits y tiene ArcFM cargado sobre ESRI, fallará en todas las características que se han configurado para usar ArcFM o Designer con un ERROR 000260. Esto es porque tienes que usar python de 32 bits o las cosas de ArcFM no se licenciarán correctamente.
Para obtener una descripción más detallada del uso de ArcPy de 32 bits, consulte los primeros dos comentarios sobre este hilo en Exchange
https://infrastructurecommunity.schneider-electric.com/docs/DOC-2563
fuente
Si tiene privilegios de administrador, puede usar comandos simples de copiar y pegar para exportar o importar archivos SDE a la geo-base de datos y viceversa. Consulte aquí para obtener más detalles.
fuente