Cách thích hợp để sao lưu Cơ sở dữ liệu địa lý tệp ESRI được xuất bản lên ArcGIS Server là gì?


11

Tôi có một cơ sở dữ liệu địa lý tệp ESRI (v10) được xuất bản cho một dịch vụ bản đồ máy chủ arcgis. Khi dịch vụ đang chạy, fGDB bị khóa. Tôi có cần dừng dịch vụ để có bản sao lưu sạch không? Hoặc, có cách nào để thực hiện sao lưu thông qua tập lệnh arcpy hoặc thông qua Danh mục không? Tôi hiện đang sử dụng Windows robocopy để chuyển fGDB sang ổ đĩa sao lưu. Đây là đầu ra hiển thị các tệp bị khóa:

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

Vân vân...

Câu trả lời:


4

Bất kỳ máy chủ nên có một ổ đĩa bóng. Bạn có thể sử dụng 'ổ đĩa bóng' để thu gọn cơ sở dữ liệu địa lý tệp và sẽ loại bỏ các tệp .lock và sắp xếp lại tệp theo cách hiệu quả nhất. Sau đó, bạn có thể sao lưu tập tin này lên. Đây là một vài điểm khởi đầu tốt:

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

Lưu ý: Ổ đĩa bóng có tên khác là phản chiếu đĩa

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


Ah, tôi luôn cho rằng nén là cho cơ sở dữ liệu địa lý sde. Cảm ơn!
mogollon22

Tôi quản lý một số máy chủ và không ai trong số chúng có ổ đĩa bóng hoặc nhân đôi, mặc dù chúng có ổ đĩa dự phòng (RAID5, Drobo) và có thể sống sót khi một hoặc nhiều ổ đĩa không bị mất dữ liệu. Dù sao đi nữa, tôi đã sao chép fgdb bằng xcopy(hoặc xxcopy ), bỏ qua các lỗi và sau đó thu gọn kết quả. Đây không phải là giải pháp tốt nhất vì lớp tính năng bị khóa do phiên chỉnh sửa có thể bị hỏng, nhưng điều đó không khác gì với ổ đĩa bóng / gương.
matt wilkie

2

Chúng tôi có một số ứng dụng web sản xuất sử dụng cao chạy trên FGDB trên phần phụ trợ. Các FGDB bị xóa sổ và được xây dựng lại với dữ liệu mới hàng đêm. Chúng tôi có một ứng dụng bảng điều khiển .NET mà tôi đã viết dựa trên AGSSOM để dừng các dịch vụ trong khi quá trình cập nhật chạy. Hãy xem AGSSOM, nó khá hấp dẫn. Đây là một số C # tôi sử dụng để tạo bản sao lưu của FGDB hiện tại trước khi tôi thổi bay nó:

// 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);
                    }
                }
            }

Nó chỉ sử dụng Directory.CreateDirectory và FileInfo.CopyTo để sao chép FGDB - Windows xem FGDB như một thư mục khác. Hoạt động như một nhà vô địch. Sau đó, sau khi quá trình cập nhật hoàn tất, chúng tôi bắt đầu lại các dịch vụ bằng ứng dụng dựa trên AGSSOM.


Điều này là vô cùng có giá trị!
mogollon22
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.