PostgreSQL空间数据库创建备份恢复(PostGIS vs 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的备份恢复主要有
- 增量备份和基于时间点恢复(RITR)
- pg_dump和pg_dumpall进行转储,从SQL转储文件恢复
- 文件系统级别备份
这里我们使用简单,容易掌握的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)的更多相关文章
- 通过arcgis在PostgreSQL中创建企业级地理数据库
部署环境: Win7 64位旗舰版 软件版本: PostgreSQL-9.1.3-2-windows-x64 Postgis-pg91x64-setup-2.0.6-1 Arcgis 10.1 SP1 ...
- GitLab备份的创建与恢复
使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份: gitlab-rake gitlab:backup:create使 ...
- postgis 赋予postgresql空间数据库的能力
安装: Windows:postgresql的bin目录下:运行stackbuilder,一步一步按照提示来就行了 Ubuntu: apt-get install postgresql-9.3-pos ...
- postgresql 和 mysql 数据库备份恢复以及时区问题
概要 postgesql 12 备份/恢复脚本 时区设置 mysql 5.6 备份/恢复脚本 时区设置 概要 postgresql 和 mysql 是最常用的 2 种开源关系数据库, 很多项目也会优先 ...
- KingbaseES V8R6备份恢复案例之---同一数据库创建不同stanza备份
案例说明: 在生产环境,有的应用需要调用数据库的sys_rman做备份,为了区分数据库自身的sys_rman备份和应用的备份,可以使用不同的stanza name创建备份.本案例介绍了,如何在King ...
- postgresql 热备与恢复
一. PostgreSQL热备份的过程一般为: 数据库中执行:pg_start_backup() ; 然后使用操作系统的tar或 cp命令拷贝 PostgreSQL数据文件. 数据库中执行:pg_st ...
- Gitlab安装与备份恢复
GitHub是2008年由Ruby on Rails编写而成,与业界闻名的Github类似;但要将代码上传到GitHub上面,而且将项目设为私有还要收费.GitLab是一个用于仓库管理系统的开源项目, ...
- Centos7安装gitlab11 学习笔记之备份恢复及邮箱配置
一.备份 修改配置文件 vim /etc/gitlab/gitlab.rb 默认路径为 # gitlab_rails['backup_path'] = "/var/opt/gitlab/ba ...
- Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复
定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...
随机推荐
- java集合之HashSet哈希SET基础
hashSet实现set接口.serializable.cloneable接口.不允许有重复值,但可以null,不保证与插入顺序一致. HashSet迭代的时间与HashSet实例的大小(元素的数量) ...
- RAW网络编程
LWIP提供了三种的可以被应用程序直接调用的接口API: (1) 低水平的,基于内核/回调函数的API(后面称 RAW API) 适用于数据量不大,没有os的MCU (2) ...
- python学习-语言概述(一)
1.python的特点 python是一种面向对象.解释型.弱类型的脚本语言,它也是一种功能强大而完善的通用型语言. 解释性语言的特点:速度慢:源代码加密困难:跨平台:
- 1.7.3.1版本ride乱码的解决方法
现象: 解决方式: 修改文件\Python36\Lib\site-packages\robotide\contrib\testrunner\testrunner.py 将latin1修改为mbcs 然 ...
- jhipster入门
环境: 阿里云linux /////////////////////////////////////////////////////////////////////yum install java-1 ...
- Mysql数据库(十一)事务与锁机制
一.事务机制 1.事务的概念 事务是指一组互相依赖的操作单元的集合,用来保证对数据库的正确修改,保持数据的完整性,如果一个事务的某个单元操作失败,将取消本次事务的全部操作. 比如将A账户的资金转入B账 ...
- (二)与animation播放对比
animation播放动画 1.播放默认动画 直接将动画拖入动画对象animation组件的animation变量中,然后加入如下代码既可以播放(此处采用toggle控制动画的播放) public A ...
- Google Tensorflow 迁移学习 Inception-v3
附上代码加数据地址 https://github.com/Liuyubao/transfer-learning ,欢迎参考. 一.Inception-V3模型 1.1 详细了解模型可参考以下论文: [ ...
- 11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警 sendEmail是一个轻量 ...
- 【XSY2344】K-th String
Description Alice有 n(n≤26) 张牌,牌上分别标有前 n 个英文小写字母.例如,如果 n=3 ,则Alice有3张牌,分别标有"a", "b&quo ...