ईएसआरआई फ़ाइल जियोडैटबेस को संग्रहीत करने का उचित तरीका क्या है जो आर्कजीस सर्वर पर प्रकाशित होता है?


11

मेरे पास एक ESRI फ़ाइल जियोडैटबेस (v10) है जो एक आर्कगिस सर्वर मैप सेवा के लिए प्रकाशित है। जब सेवा चल रही है, तो fGDB लॉक है। क्या मुझे क्लीन बैकअप पाने के लिए सेवा बंद करने की आवश्यकता है? या, वहाँ एक चापलूसी स्क्रिप्ट के माध्यम से या कैटलॉग के माध्यम से एक बैकअप प्रदर्शन करने का एक तरीका है? मैं वर्तमान में एक ड्राइव पर fGDB को स्थानांतरित करने के लिए विंडोज रोबोकॉपी का उपयोग कर रहा हूं। यहाँ आउटपुट बंद फ़ाइलों को दिखा रहा है:

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

आदि आदि...

जवाबों:


4

किसी भी सर्वर में एक छाया ड्राइव होना चाहिए। आप फ़ाइल जियोडेटाबेस को कॉम्पैक्ट करने के लिए 'शैडो ड्राइव' का उपयोग कर सकते हैं और यह .lock फ़ाइलों को हटा देगा और फ़ाइल को सबसे कुशल तरीके से री-ऑर्डर करेगा। फिर आप इस फाइल का बैकअप ले सकते हैं। यहाँ एक अच्छा युगल अच्छे शुरुआती बिंदु हैं:

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

नोट: शैडो ड्राइव में डिस्क मिररिंग का दूसरा नाम है

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


आह, मैंने हमेशा माना कि कॉम्पैक्टिंग sod geodat डेटाबेस के लिए थी। धन्यवाद!
mogollon22

मैं कई सर्वरों का प्रबंधन करता हूं और उनमें से कोई भी छाया या मिरर ड्राइव नहीं है, हालांकि उनके पास निरर्थक डिस्क (RAID5, ड्रोबो) हैं और डेटा हानि के बिना एक या अधिक ड्राइव की विफलता से बच सकते हैं। किसी भी तरह से आपत्ति है कि, मैं fgdb के साथ प्रतिलिपि xcopy(या xxcopy ), विफलताओं लंघन, और फिर परिणाम कॉम्पैक्ट। एडिट सेशन के कारण लॉक किए गए फीचर क्लास के रूप में यह सबसे अच्छा समाधान नहीं है, लेकिन यह एक छाया / दर्पण ड्राइव से अलग नहीं है।
मैट विल्की

2

हमारे पास कई उच्च उपयोग उत्पादन वेब अनुप्रयोग हैं जो बैकएंड पर FGDB पर चलते हैं। FGDB रातोंरात मिटा दिया जाता है और नए डेटा के साथ फिर से बनाया जाता है। हमारे पास एक .NET कंसोल ऐप है जो मैंने लिखा था जो AGSSOM पर आधारित है जो अपडेट प्रक्रिया को चलाने के दौरान सेवाओं को रोकता है। AGSSOM की जाँच करें, यह बहुत चालाक है। यहां कुछ C # का उपयोग मैं वर्तमान FGDB का बैकअप बनाने से पहले करता हूं ताकि मैं इसे उड़ा दूं:

// 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 को कॉपी करने के लिए सिर्फ Directory.CreateDirectory और FileInfo.CopyTo का उपयोग करता है - विंडोज FGDB को सिर्फ एक अन्य फ़ोल्डर के रूप में देखता है। चमार की तरह काम करता है। फिर, अद्यतन प्रक्रिया पूरी होने के बाद, हम AGSSOM- आधारित एप्लिकेशन का उपयोग करके फिर से सेवाएं शुरू करते हैं।


यह अत्यंत मूल्यवान था!
mogollon22
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.