Arka uçta FGDB'lerde çalışan birçok yüksek kullanımlı üretim web uygulamamız var. FGDB'ler silinir ve her gece yeni verilerle yeniden oluşturulur. Güncelleme işlemi devam ederken hizmetleri durduran AGSSOM tabanlı bir .NET konsol uygulamamız var . AGSSOM'a bakın, oldukça kaygan. İşte o FFDB onu uçurmadan önce bir yedek yapmak için kullandığım C # bazıları:
// 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);
}
}
}
FGDB'yi kopyalamak için sadece Directory.CreateDirectory ve FileInfo.CopyTo kullanır - Windows FGDB'yi başka bir klasör olarak görür. Bir şampiyon gibi çalışır. Ardından, güncelleme işlemi tamamlandıktan sonra AGSSOM tabanlı uygulamayı kullanarak hizmetleri yeniden başlatırız.