เป็นวิธีที่เหมาะสมในการสำรองฐานข้อมูลไฟล์ ESRI ที่เผยแพร่ไปยังเซิร์ฟเวอร์ ArcGIS อย่างไร


11

ฉันมีฐานข้อมูลไฟล์ ESRI (v10) ที่เผยแพร่ไปยังบริการแผนที่เซิร์ฟเวอร์ arcgis เมื่อบริการกำลังทำงานอยู่ fGDB จะถูกล็อค ฉันต้องหยุดบริการเพื่อรับข้อมูลสำรองที่สะอาดหรือไม่ หรือมีวิธีการสำรองข้อมูลผ่านสคริปต์ arcpy หรือผ่านแคตตาล็อกหรือไม่ ฉันกำลังใช้ robocopy ของ Windows เพื่อถ่ายโอน 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/

หมายเหตุ: Shadow drive มีชื่ออื่นของการทำมิเรอร์ดิสก์

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


อาฉันคิดเสมอว่าการบีบอัดนั้นใช้สำหรับฐานข้อมูลภูมิศาสตร์ ขอบคุณ!
mogollon22

ฉันจัดการเซิร์ฟเวอร์หลายเครื่องและไม่มีเซิร์ฟเวอร์ใดที่มีไดรฟ์เงาหรือมิเรอร์แม้ว่าพวกเขาจะมีดิสก์ที่ซ้ำซ้อน (RAID5, Drobo) และสามารถอยู่รอดได้ในความล้มเหลวของไดรฟ์หนึ่งตัวหรือมากกว่าโดยไม่สูญเสียข้อมูล อย่างไรก็ตามการคัดค้านนั้นฉันคัดลอก fgdb's ด้วยxcopy(หรือxxcopy ), ข้ามความล้มเหลวและจากนั้นกระชับผลลัพธ์ ไม่ใช่ทางออกที่ดีที่สุดเนื่องจากคลาสคุณลักษณะถูกล็อคเนื่องจากเซสชันการแก้ไขอาจเสียหาย แต่นั่นไม่ต่างจากไดรฟ์เงา / มิเรอร์
matt wilkie

2

เรามีเว็บแอปพลิเคชั่นที่ใช้งานสูงจำนวนมากที่ทำงานบน FGDB บนแบ็กเอนด์ FGDBs ถูกลบล้างและสร้างใหม่ด้วยข้อมูลใหม่ทุกคืน เรามี. แอปคอนโซล 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);
                    }
                }
            }

เพียงแค่ใช้ Directory.CreateDirectory และ FileInfo.CopyTo เพื่อคัดลอก FGDB - Windows จะเห็น FGDB เป็นเพียงโฟลเดอร์อื่น ทำงานเหมือนแชมป์ จากนั้นหลังจากกระบวนการอัปเดตเสร็จสมบูรณ์เราจะเริ่มให้บริการอีกครั้งโดยใช้แอปพลิเคชันที่ใช้ AGSSOM


นี่เป็นสิ่งที่มีค่าอย่างยิ่ง!
mogollon22
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.