ArcGIS Serverに公開されているESRIファイルジオデータベースをバックアップする適切な方法は何ですか?


11

arcgisサーバーマップサービスに公開されるESRIファイルジオデータベース(v10)があります。サービスが実行されているとき、fGDBはロックされています。クリーンなバックアップを取得するには、サービスを停止する必要がありますか?または、arcpyスクリプトまたはカタログを使用してバックアップを実行する方法はありますか?現在、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/

注:シャドウドライブには、ディスクミラーリングの別名があります

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


ああ、私は常に圧縮がsdeジオデータベース用であると想定していました。ありがとう!
mogollon22

複数のサーバーを管理していますが、いずれにもシャドウドライブまたはミラードライブはありませんが、それらには冗長ディスク(RAID5、Drobo)があり、1つ以上のドライブの障害にデータ損失なしで耐えることができます。とにかくその異議はさておき、fgdbをwith xcopy(またはxxcopy)でコピーし、失敗をスキップして、結果を圧縮します。編集セッションが破損する可能性があるため、フィーチャクラスがロックされているため、これは最適なソリューションではありませんが、シャドウ/ミラードライブと違いはありません。
マットウィルキー

2

バックエンドのFGDBで実行される、使用率の高い運用Webアプリケーションがいくつかあります。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);
                    }
                }
            }

Directory.CreateDirectoryとFileInfo.CopyToを使用してFGDBをコピーするだけです-WindowsはFGDBを単なる別のフォルダーと見なします。チャンピオンのように機能します。次に、更新プロセスが完了した後、AGSSOMベースのアプリケーションを使用してサービスを再度開始します。


これは非常に貴重でした!
mogollon22
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.