Tengo una geodatabase de archivos ESRI (v10) que se publica en un servicio de mapas del servidor arcgis. Cuando el servicio se está ejecutando, el fGDB está bloqueado. ¿Necesito detener el servicio para obtener una copia de seguridad limpia? O, ¿hay alguna forma de realizar una copia de seguridad a través de un script arcpy o mediante el Catálogo? Actualmente estoy usando Windows robocopy para transferir el fGDB a una unidad de respaldo. Aquí está la salida que muestra los archivos bloqueados:
New File 0 Bikepaths.CFP0026.4968.5140.sr.lock
New File 0 BuildingFootprints.CFP0026.4968.5140.sr.lock
etcétera etcétera...
fuente
xcopy
(o XXCOPY ), saltarse los fracasos, y luego compactar el resultado. No es la mejor solución ya que una clase de entidad bloqueada debido a que una sesión de edición podría corromperse, pero eso no es diferente de una unidad de sombra / espejo.Tenemos varias aplicaciones web de producción de alto uso que se ejecutan en FGDB en el back-end. Los FGDB se aniquilan y se reconstruyen con datos nuevos todas las noches. Tenemos una aplicación de consola .NET que escribí que se basa en AGSSOM que detiene los servicios mientras se ejecuta el proceso de actualización. Mira AGSSOM, es bastante elegante. Aquí hay algunos de los C # que uso para hacer una copia de seguridad de la FGDB actual antes de eliminarla:
Simplemente usa Directory.CreateDirectory y FileInfo.CopyTo para copiar el FGDB: Windows ve el FGDB como una carpeta más. Funciona como un campeón. Luego, una vez que se completa el proceso de actualización, comenzamos los servicios nuevamente usando la aplicación basada en AGSSOM.
fuente