zoukankan      html  css  js  c++  java
  • sde自动备份到文件gdb

    本方法原理是使用python(以下简称py)调用arcmap的gp,在上再用bat调用py的方式实现。优点是能应用于所有数据库类型(包括pg,oracle等)的sde库

    环境:arcmap 10.4,pg版sde

    本文以备份以下sde要素类,备份到本地D: est1文件夹下面的gdb,备份时间间隔是每天一次

     

    备份脚本是py语言,以下提供模板:

    模板开始————————————————————————————

    #coding:utf-8

    # Import arcpy module

    import arcpy

    import datetime

    # 备份本地文件gdb的文件夹路径

    bak_gdb_path = "D:\test1"

    # 备份本地文件gdb的文件名(不要带.gdb)

    bak_gdb_name="bak_xxx"

    # 获取当天日期并按指定格式输出(本例每天备份所有精确到天,有需要按其他格式输出当前时间可以自行搜索py的日期时间输出方式)

    today=datetime.date.today()

    formatted_today=today.strftime('%Y%m%d')

    # 最终的gdb文件名

    bak_gdb_name_final=bak_gdb_name+"_"+formatted_today

    # Process: 创建文件地理数据库

    arcpy.CreateFileGDB_management(bak_gdb_path, bak_gdb_name_final, "CURRENT")

    # 复制要素类(就是把sde的要素类复制到gdb,用这种方法实现备份),每复制一个要素类一行,要复制多个要素类,可以通过excel或者文本编辑器替换等当时批量按格式修改

    # 参数1:sde的要素类路径,路径格式可以在arcmap使用导出导入等功能看

    # 参数2:复制到gdb的路径,一般不用改

    arcpy.FeatureClassToGeodatabase_conversion("数据库连接\连接到sde_demo.sde\sde_demo.sde.datasde_demo.sde.SDE_DEMO_POLYGON", bak_gdb_path+"\"+bak_gdb_name_final+".gdb")

    模板结束————————————————————————————

    在任意目录,新建一个py文件(本例文件名是test21.py),把模板内容复制进去,然后开始按实际修改,以下说明要改的

    输出的本地文件位置

     

      

    一般不用改

     

      

    主要改参数1,有个问题是如何确定要导的sde要素类的“路径”?以及在需要导出多个要素类时如何快速生成?随便找个要打开要素类的gp,加载要素类后都会变成要素类的路径,批量执行gp还能获取到多个(换行版的),并且结合excel,记事本的文本替换等批量处理字符的处理方式

     

      

    到此py文件编辑完毕,然后是手动调用测试和自动运行

    调用py文件用到arcmap自带的python(arcmap安装时自带py,而且这里也必须用这个自带的,而不能自己装原版的py)

    PS:arcmap自带py有个标志是安装目录下有个ArcGIS10.4(名称根据ArcGIS版本而不同)文件夹

     

      

    cmd到py安装目录的这一个文件夹

     

      

    cmd执行命令:python D: est1 est21.py,其中后面的文件路径要按实际改

    执行成功的样子

      

    然后看看备份的gdb是否生成,数据是否复制正确

    到此说明py脚本是正常的,然后开始配置定时执行

    首先在备份脚本的py文件的文件夹下新建bat文件,本例名为test21.bat

     

    内容如下:

    前面一段是arcgis自带py的python.exe的位置,后面就是备份脚本的py文件的位置

     

     "C:Python27ArcGIS10.4python" D:arcpy_test est1.py

    然后开始新建定时任务,定时执行使用windows的定时任务(也可以用jenkins的定时执行),这个大家应该比较熟悉,在mysql自动备份也有用到,下面也只说明关键位置

    自动执行的内容就是上面新建的bat文件

     

      

    到此自动任务配置完毕,注意自动任务执行有可能执行失败或者出现其他问题(手动执行成功不代表自动执行就一定成功),后续要观察一两次真正成功后才算真的成功

  • 相关阅读:
    刚开发的游戏《天黑请闭眼》
    用手机控制服务器
    专业网站打包/解包asp工具(E文精装版本)!
    令我爱慕的女子(转自7di.net)
    8088 汇编速查手册
    Asp调用函数是否会影响性能?
    文档管理器
    ubuntu install xxx.deb
    Java线程池的原理及几类线程池的介绍
    ubuntu download file path
  • 原文地址:https://www.cnblogs.com/cannel/p/11503231.html
Copyright © 2011-2022 走看看