梯子

PostGIS创建备份恢复ArcGIS创建备份恢复

PostGIS

创建

安装就不必介绍了,windows下使用安装工具Application Stack Builder,选择空间扩展PostGIS即可自动安装

然后新建库后,在库中执行以下语句创建控件扩展

CREATE EXTENSION postgis

也可以创建数据库时选择postgis的模板库创建

create database postgisdb template postgis_template;

新建数据库后添加postgis扩展后会发现库内public模式下函数序列触发器等都会增加一些postgis相关功能
然后就可以通过PostGIS Shapefile and DBF Loader工具导入shp数据

备份

postgersql的备份恢复主要有

  1. 增量备份和基于时间点恢复(RITR)
  2. pg_dump和pg_dumpall进行转储,从SQL转储文件恢复
  3. 文件系统级别备份

这里我们使用简单,容易掌握的pg_dump命令,一般在安装目录bin下
pg_dump备份单库,不导出角色和表空间相关信息

pg_dump -h localhost -U postgres postgisdb > D:\backup\postgisdb.bak

有一些参数选项可以参考(很多,具体不列了,执行help可以查看到)

pg_dump --help
恢复

恢复可以使用psql

psql -h localhost -U postgres -d postgisdb2 < D:\backup\postgisdb.bak

恢复时可以指定不同的数据库,如果pg_dump时-C创建数据库,那也可以不用先新建数据库

postgis库的恢复备份还是挺简单的,所有的东西都在public下

ArcGIS

创建

ArcGIS要连接到postgresql,需要将postgresql安装目录lib下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll 和 ssleay32.dll拷贝到ArcGIS Desktop的安装目录bin下
将ArcGIS Desktop目录DatabaseSupport\PostgreSQL下的st_geometry.dll拷贝到postgresql的lib下

使用ArcGIS工具箱中Create Enterprise Geodatabase工具创建SDE,完事后会在创建一个sde登陆角色并在库中创建一个sde模式,包含诸多函数序列管理表等。(注意:ArcGIS虽然可以在系统库postgres中创建SDE扩展,然并连不上,ArcGIS不允许连接访问系统数据库

然后ArcGIS可以连接该数据库,并且进行空间数据管理操作。(注意:默认ArcGIS创建空间数据,只能创建在和登陆用户同名的模式下

备份

我们可以向上面PostGIS备份恢复一样,直接备份整个库

恢复

如果恢复至同名数据库,像上面恢复是没有问题的
但如果数据库改名了,则会有惊喜发生,ArcGIS管理空间报底层gdb_release之类的错误,同样的问题不止恢复库时,修改数据库名称也不像其他库那么随心所欲,以含SDE扩展的库为模板创建新库也会有问题

ArcGIS SDE未见文档介绍内部结构逻辑,只能猜测大概,或不准确,愿闻其详

ArcSDE空间数据创建时会在SDE管理表里注册相关信息,比如空间参考,列啊,表的唯一标识等,便于它做数据管理、版本控制

修改库名后,ArcSDE管理就出问题,主要是一些注册项,安装SDE时也会把该库的信息注册到SDE管理表中去,所以新库名,它就不认识了

如果修改了库名,我们找到以下表

select * from sde.gdb_items
you need modify : name physicalname path etc... update sde.sde_table_registry set database_name='testdb';
update sde.sde_column_registry set database_name='testdb';
update sde.sde_geometry_columns set f_table_catalog='testdb';
update sde.sde_raster_columns set database_name='testdb';
update sde.sde_layers set database_name='testdb';

然后就一切正常

当然我们建议不轻易改库名

这就是商业软件,足够强大不够灵活,封装和灵活总会互相博弈

PostgreSQL空间数据库创建备份恢复(PostGIS vs ArcGIS)的更多相关文章

  1. 通过arcgis在PostgreSQL中创建企业级地理数据库

    部署环境: Win7 64位旗舰版 软件版本: PostgreSQL-9.1.3-2-windows-x64 Postgis-pg91x64-setup-2.0.6-1 Arcgis 10.1 SP1 ...

  2. GitLab备份的创建与恢复

    使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: gitlab-rake gitlab:backup:create使 ...

  3. postgis 赋予postgresql空间数据库的能力

    安装: Windows:postgresql的bin目录下:运行stackbuilder,一步一步按照提示来就行了 Ubuntu: apt-get install postgresql-9.3-pos ...

  4. postgresql 和 mysql 数据库备份恢复以及时区问题

    概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...

  5. KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份

    案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...

  6. postgresql 热备与恢复

    一. PostgreSQL热备份的过程一般为: 数据库中执行:pg_start_backup() ; 然后使用操作系统的tar或 cp命令拷贝 PostgreSQL数据文件. 数据库中执行:pg_st ...

  7. Gitlab安装与备份恢复

    GitHub是2008年由Ruby on Rails编写而成,与业界闻名的Github类似;但要将代码上传到GitHub上面,而且将项目设为私有还要收费.GitLab是一个用于仓库管理系统的开源项目, ...

  8. Centos7安装gitlab11 学习笔记之备份恢复及邮箱配置

    一.备份 修改配置文件 vim /etc/gitlab/gitlab.rb 默认路径为 # gitlab_rails['backup_path'] = "/var/opt/gitlab/ba ...

  9. Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复

    定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...

随机推荐

  1. AppBoxFuture: 服务模型的在线调试与性能监测

      框架内的服务模型(ServiceModel)用于处理各类业务逻辑(如最简单的CRUD操作),在设计时以类似于伪代码的形式存在,发布时后端会通过Roslyn转换并编译为运行时代码.为了方便开发者作者 ...

  2. Python之文件的使用

    文件概述 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接 ...

  3. 近万字案例:Rancher + VMware PKS实现全球数百站点K8S集群管理

    Sovereign Systems是一家成立于2007年的技术咨询公司,帮助客户将传统数据中心技术和应用程序转换为更高效的.基于云的技术平台,以更好地应对业务挑战.曾连续3年提名CRN,并且在2012 ...

  4. vue系列---响应式原理实现及Observer源码解析(一)

    _ 阅读目录 一. 什么是响应式? 二:如何侦测数据的变化? 2.1 Object.defineProperty() 侦测对象属性值变化 2.2 如何侦测数组的索引值的变化 2.3 如何监听数组内容的 ...

  5. 基础安全术语科普(三)——RAT

    什么是RAT? RAT 即 Remote Access Tools (远程管理工具或远程访问工具)的缩写.通俗点说就是木马病毒. RAT 分为两部分——客户端 与 服务端. RAT的工作原理? 服务端 ...

  6. <编译原理 - 函数绘图语言解释器(1)词法分析器 - python>

    <编译原理 - 函数绘图语言解释器(1)词法分析器 - python> 背景 编译原理上机实现一个对函数绘图语言的解释器 - 用除C外的不同种语言实现 解释器分为三个实现块: 词法分析器: ...

  7. JAVA NIO udp 实现 群转发

    场景很简单,就是多个客户端通过udp,连接到服务器(其实是无连接的,就是服务器保存了客户端的ip信息).然后通过udp协议先服务器发送消息,然后服务器在通过udp转发在各个客服端. 这个是不是 观察者 ...

  8. 使用webpack命令打包时,报错TypeError: Cannot read property 'presetToOptions' of undefined的解决办法

    我只安装了webpack,没有安装webpack-cli,第一次输入webpack打包时,提示 One CLI for webpack must be installed. These are rec ...

  9. Linux 提示符格式及颜色

    # 提示符颜色配置: 颜色  黑   红  绿  黄  青   紫  蓝  白 字体  30  31  32  33 34  35  36  37 背景  40  41  42  43 44  45 ...

  10. 谁说程序员不懂浪漫?用Python每天自动给女朋友免费发短信

    前言 之前发过一篇文章,用 Python 制作的给父母天气预报提醒的小工具天气变冷了,给父母制作一个天气提醒小助手,这篇文章我同步到博客上之后,有读者在评论区留言,对于部分微信没有网页版接口,导致无法 ...