ArcGIS Server에 게시 된 ESRI 파일 지오 데이터베이스를 백업하는 올바른 방법은 무엇입니까?


11

arcgis 서버 맵 서비스에 게시 된 ESRI 파일 지오 데이터베이스 (v10)가 있습니다. 서비스가 실행 중이면 fGDB가 잠 깁니다. 클린 백업을 받으려면 서비스를 중지해야합니까? 또는 arcpy 스크립트 또는 카탈로그를 통해 백업을 수행하는 방법이 있습니까? 현재 Windows robocopy를 사용하여 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


아, 나는 항상 압축이 sde 지오 데이터베이스를위한 것이라고 생각했다. 감사!
mogollon22

여러 서버를 관리하지만 중복 디스크 (RAID5, Drobo)가 있고 데이터 손실없이 하나 이상의 드라이브 장애가 발생하더라도 섀도우 또는 미러링 된 드라이브는 없습니다. 어쨌든 그 반대를 제외하고는 fgdb를 with xcopy(또는 xxcopy ) 로 복사 하고 실패를 건너 뛰고 결과를 압축합니다. 편집 세션으로 인해 기능 클래스가 잠기면 최상의 솔루션은 아니지만 섀도 / 미러 드라이브와 다르지 않습니다.
matt wilkie

2

백엔드의 FGDB에서 실행되는 여러 고 가용성 프로덕션 웹 응용 프로그램이 있습니다. FGDB는 매일 밤 새로운 데이터로 지워지고 재 구축됩니다. 업데이트 프로세스가 실행되는 동안 서비스를 중지하는 AGSSOM 을 기반으로 작성한 .NET 콘솔 앱 이 있습니다. AGSSOM을 확인하십시오. 매우 매끄 럽습니다. 다음은 현재 FGDB를 백업하기 위해 사용하는 C # 중 일부입니다.

// 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 만 사용합니다. Windows는 FGDB를 다른 폴더로 간주합니다. 챔피언처럼 작동합니다. 그런 다음 업데이트 프로세스가 완료된 후 AGSSOM 기반 애플리케이션을 사용하여 서비스를 다시 시작합니다.


이것은 매우 귀중했습니다!
mogollon22
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.