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 ...
随机推荐
- .NET Core3.0创建Worker Services
.NET CORE 3.0新增了Worker Services的新项目模板,可以编写长时间运行的后台服务,并且能轻松的部署成windows服务或linux守护程序.如果安装的vs2019是中文版本,W ...
- openssl生成密钥/证书
一.公钥/私钥/签名/验证签名/加密/解密/非对称加密 对称加密:用同一个密码 加密/解密 文件. 非对称加密:加密用的一个密码,解密用另外一组密码. 加密解密:公钥加密数据,然后私钥解密. 公钥 ...
- 百万年薪python之路 -- 推导式
2.1列表推导式 首先我们先看一下这样的代码,给出一个列表,通过循环,想列表中添加1~10: li = [] for i in range(1,11): li.append(i) print(li) ...
- 记录面试龙腾简合-java开发工程师经历
/** * ############ * 变强是会掉光头发的!现在的头发还是很茂盛,是该开心还是难过呢.. * ############ * / 总结下近期面试龙腾简合-java开发岗的经历.附上笔试 ...
- Texture to texture2D以及texture2D像素反转
private void SaveRenderTextureToPNG(Texture inputTex, string file) { RenderTexture temp = RenderText ...
- Linux之ELF文件初探
对比windowsPE文件与概述 在windows中可执行文件是pe文件格式,Linux中可执行文件是ELF文件,其文件格式是ELF文件格式,在Linux下的ELF文件除了可执行文件(Excutabl ...
- 怎么用Vuecli 3.0快速创建项目
一.安装 1.安装node.js,这里需要注意的是,Vue CLI 3需要 nodeJs ≥ 8.9,所以我们去中文官方下载地址:http://nodejs.cn/download/,下载最新版本即可 ...
- 前端技术之:如何在控制台将JS class实例输出为JSON格式
有一个类: class Point { constructor(x, y) { this.x = x; this.y = y; } } 如果我们在控制台中输出其实例: console.log(new ...
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 《Effective Java》 读书笔记(五)使用依赖注入取代原本的资源依赖
相信接触过Spring的同学,对于依赖注入并不陌生. 刚开始在听说这个名字的时候,一直不明白到底什么叫依赖注入,后来才发现,依赖注入一直都存在我们日常代码中,只是我们没有刻意的把它提出来,然后再取这样 ...