Mam geobazę pliku ESRI (v10), która jest opublikowana w usłudze map serwerów Arcgis. Gdy usługa jest uruchomiona, fGDB jest zablokowany. Czy muszę zatrzymać usługę, aby uzyskać czystą kopię zapasową? A może istnieje sposób wykonania kopii zapasowej za pomocą skryptu arcpy lub katalogu? Obecnie używam robocopy Windows do przeniesienia fGDB na dysk zapasowy. Oto wynik pokazujący zablokowane pliki:
New File 0 Bikepaths.CFP0026.4968.5140.sr.lock
New File 0 BuildingFootprints.CFP0026.4968.5140.sr.lock
itd itd...
źródło
xcopy
(lub xxcopy ), pomijając błędy, a następnie kompaktuję wynik. Nie jest to najlepsze rozwiązanie, ponieważ klasa obiektów zablokowana z powodu sesji edycji może zostać uszkodzona, ale nie różni się to od napędu w tle / w lusterku.Mamy kilka produktywnych aplikacji internetowych, które działają na FGDB na backendie. FGDB są usuwane i przebudowywane co noc ze świeżych danych. Mamy napisaną przeze mnie aplikację konsolową .NET opartą na AGSSOM, która zatrzymuje usługi podczas procesu aktualizacji. Sprawdź AGSSOM, jest całkiem sprytny. Oto niektóre z C #, którego używam do tworzenia kopii zapasowej bieżącego FGDB, zanim go zdmuchnę:
Po prostu używa Directory.CreateDirectory i FileInfo.CopyTo, aby skopiować FGDB - Windows widzi FGDB jako kolejny folder. Działa jak mistrz. Następnie, po zakończeniu procesu aktualizacji, ponownie uruchamiamy usługi za pomocą aplikacji opartej na AGSSOM.
źródło