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.