kingbase安装gis扩展及迁移数据

远程连接设置

fins / -name sys_hba.conf

找到sys_hba文件,将加密方式改为trust(否则无法远程连接,我使用navicat连接数据库,提示无法连接,问金仓技术人员,说是工具暂时不支持sm3/sm4,需要把sm3/sm4全改为trust,然后重启数据库)。

数据库重启

切换kingbase用户

su kingbase

完整的停止命令

/usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl -D /usr/local/kingbase/data/ stop

完整的启动命令

/usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl -D /usr/local/kingbase/data/ start


其中

-D前面是数据库安装路径

/usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/bin/sys_ctl

-D后面是数据路径

/usr/local/kingbase/data/


安装gis扩展

根据官方解释,人大金仓数据库和gis扩展有严格的版本关系,如果需要安装gis扩展,直接通过官方渠道获取扩展文件,建议不要浪费时间折腾自己)

官方提供的gis扩展包有bin,lib,share/extension三个目录

将gis扩展文件拷贝至数据库依赖目录下

cp -r /home/kingbasesoft/postgis-3.1.2/bin/* /usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/bin

注:将/home/kingbasesoft/postgis-3.1.2/bin/目录下的所有文件拷贝至/usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/bin目录下。

拷贝完成后,重启数据库。然后开始创建GIS扩展。然后出现了以下问题。

提示undefundefined symbol: GEOSUnaryUnionPrec

经过检查发现,当电脑上有多个geos版本时,需要给kingbase做一下环境变量配置,否则在创建gis扩展的时候会出现无法创建扩展的情况。

通过设置环境变量指定使用的geos版本(推荐):

单独设置kingbase用户环境变量LD_LIBRARY_PATH指定使用跟数据库PostGIS版本匹配的geos:

在.bashrc或者.bash_profile,添加以下环境变量保存退出

vim .bash_profile

将以下内容添加到环境变量配置文件中(记得后面的路径根据自己的安装路径进行调整)。

export LD_LIBRARY_PATH=/usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/lib

添加LD_LIBRARY_PATH环境变量后执行以下命令:

source .bash_profile


--然后登录数据库再次执行

--此时执行以下命令创建成功

CREATE EXTENSION postgis;

CREATE EXTENSION postgis_topology;

CREATE EXTENSION postgis_sfcgal;

CREATE EXTENSION fuzzystrmatch;

CREATE EXTENSION address_standardizer;

CREATE EXTENSION address_standardizer_data_us;

CREATE EXTENSION postgis_tiger_geocoder;


如果还提示无法创建gis扩展:

到安装目录查一下postpis-3.so的链接位置是否正确

1、进入依赖目录

cd /usr/local/kingbase/KESRealPro/V008R006C008B0014/Server/lib

2、ldd依赖文件

ldd postgis-3.so

根据控制台面板显示,链接成功。但是仍然无法创建gis扩展。

因为可以确定设置完环境变量之后,也做了重载配置操作。

所以只能放大招了,重启服务器,有时候重启服务器真的能解决80%的问题,还是那句不要折腾自己。

果然重启了服务器后,再创建gis扩展,成功。


数据迁移

可以使用pgsql自带的pg.dump命令行工具,进行数据的备份。

参考资料如下:pg数据库迁移进人大金仓 (volcengine.com)

pg_dump -U username -h hostname -p port dbname > dbname.sql


username :源数据库用户名

hostname :源数据库访问地址

port:源数据库端口

dbname:源数据库名称

dbname.sql:生成的备份文件名称


数据备份操作步骤:

到pg_pg_dump目录下,打开控制台,如下图。

然后输入备份命令:pg_dump -U postgres -h 127.0.0.1 -p 5432 zlsk_pro_shgymy > zlsk_pro_shgymy.sql

在控制台输入口令,即数据库密码。完成备份。此处没有提示。当有新的命令行即备份完毕。此时可以到pgsql的安装目录下查看是否生成自定义的备份文件。

比如示例中的备份文件被我命名为zlsk_pro_shgymy.sql。此时如果pgsql的安装目录下有zlsk_pro_shgymy.sql文件,即备份成功。


然后到kingbase安装目录找到数据库开发管理工具

一般在安装目录的ClientTools/guitools/KStudio/KStudio下:

然后通过图形化界面做数据恢复操作:

1、选择逻辑还原右边出现数据库还原界面;

2、点击浏览按钮,在服务器上选择数据库备份文件。备份文件有dmp和sql两种格式,根据自己的备份文件格式自主在右下角的下拉框筛选;

3、选择想要恢复的目标数据库,

4、点击右下角还原按钮进行还原;



5、使用qgis验证备份的数据库是否为空间数据库。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容