Apa cara yang tepat untuk membuat cadangan File ESRI Geodatabase yang dipublikasikan ke ArcGIS Server?

11

Saya memiliki file ESRI geodatabase (v10) yang diterbitkan ke layanan peta server arcgis. Saat layanan berjalan, fGDB terkunci. Apakah saya perlu menghentikan layanan untuk mendapatkan cadangan bersih? Atau, apakah ada cara untuk melakukan pencadangan melalui skrip arcpy atau melalui Katalog? Saat ini saya menggunakan robocopy Windows untuk mentransfer fGDB ke drive cadangan. Inilah output yang menunjukkan file yang terkunci:

 New File           0 Bikepaths.CFP0026.4968.5140.sr.lock
 New File           0 BuildingFootprints.CFP0026.4968.5140.sr.lock

dll, dll ...

mogollon22
sumber

Jawaban:

4

Setiap server harus memiliki shadow drive. Anda dapat menggunakan 'bayangan drive' untuk memadatkan file geodatabase dan itu akan menghapus file .lock dan memesan ulang file dengan cara yang paling efisien. Kemudian Anda dapat membuat cadangan file ini. Inilah beberapa poin awal yang baik:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/File_geodatabases_compressing_vs_compacting/003n0000007r000000/

Catatan: Shadow drive memiliki nama lain dari mirror mirroring

http://en.wikipedia.org/wiki/Disk_mirroring

Mapperz
sumber
Ah, saya selalu menganggap pemadatan adalah untuk geodatabde sde. Terima kasih!
mogollon22
Saya mengelola beberapa server dan tidak satu pun dari mereka memiliki bayangan atau drive mirror, meskipun mereka memiliki disk yang redundan (RAID5, Drobo) dan dapat bertahan dari kegagalan satu atau lebih drive tanpa kehilangan data. Terlepas dari keberatan itu, saya menyalin fgdb dengan xcopy(atau xxcopy ), melewatkan kegagalan, dan kemudian memadatkan hasilnya. Ini bukan solusi terbaik karena kelas fitur terkunci karena sesi edit bisa rusak, tapi itu tidak berbeda dari bayangan / mirror drive.
matt wilkie
2

Kami memiliki beberapa aplikasi web produksi penggunaan tinggi yang berjalan pada FGDB di backend. FGDB dihapus dan dibangun kembali dengan data segar setiap malam. Kami memiliki aplikasi .NET konsol yang saya tulis yang didasarkan pada AGSSOM yang menghentikan layanan saat proses pembaruan berjalan. Lihat AGSSOM, cukup apik. Inilah beberapa C # yang saya gunakan untuk membuat cadangan FGDB saat ini sebelum saya hancurkan:

// Only archive it FGDB already exists, if this is first run, then nothing to archive
            if (Directory.Exists(String.Concat(c.fgdbDir, @"\", kvp.Key[0], ".gdb")))
            {
                c.msg = String.Concat(Environment.NewLine, "Archiving data for ", kvp.Key[0], " - ",
                                      DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt"));
                Messaging.Log(c.msg, c.lw);
                // Create the FGDB folder in archive dir if not already there
                if (!Directory.Exists(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb")))
                {
                    Directory.CreateDirectory(String.Concat(c.fgdbArchiveDir, @"\", kvp.Key[0], ".gdb"));
                    // Now copy from clips to archive
                    foreach (FileInfo fi in source.GetFiles())
                    {
                        fi.CopyTo(System.IO.Path.Combine(target.ToString(), fi.Name), true);
                    }
                }
            }

Itu hanya menggunakan Directory.CreateDirectory dan FileInfo.CopyTo untuk menyalin FGDB - Windows melihat FGDB hanya sebagai folder lain. Bekerja seperti jagoan. Kemudian, setelah proses pembaruan selesai, kami memulai layanan lagi menggunakan aplikasi berbasis AGSSOM.

Chad Cooper
sumber
Ini sangat berharga!
mogollon22