一、国产化系统说明
国产化系统迁移,使用BCLinux,版本8.2,安装关系型数据库PostgreSQL16存储空间数据数据,安装PostGIS14空间数据库。
二、安装部署
配置yum源
首先配置yum源,在系统/etc/yum.repo.d目录下创建文件gis.repo,当然gis可以随意命名。
文件内容为:
[gis]
name=gis
baseurl=file:///mnt/Postgres
enable=1
gpgcheck=0
其中baseurl为yum包的地址,也可以为远程端地址,ps:
[AppStream]
name=BC-Linux-8.2 AppStream
baseurl=http://mirrors.bclinux.org/bclinux/el8.2/AppStream/$basearch/os/
gpgcheck=0
enabled=1
本地yum源配置需要安装createrepo命令,在baseurl配置的路径下执行:createrepo .
(注意:命令后有个点)
createrepo命令安装需要拓展3个包,分别是:
1.drpm-0.4.1-1.el8.x86_64.rpm
2.createrepo_c-libs-0.15.1-2.el8.x86_64.rpm
3.createrepo_c-0.15.1-2.el8.x86_64.rpm
分别通过rpm -ivh *.rpm安装,*为包名。
成功后进入 /mnt/Postgres目录,执行 createrepo .
创建本地repodata文件夹及repomd.xml
执行 yum clean all 与 yum makecache 命令来清除缓存与建立缓存
安装PostGreSQL
- 执行命令安装postgresql:
yum -y install postgresql16 postgresql16-server postgresql16-contrib
- 初始化数据库(以下路径为默认安装路径):
cd /usr/pgsql-16/bin
postgresql-16-setup initdb
- 启动数据库:
systemctl enable postgresql-16
systemctl start postgresql-16
systemctl stop postgresql-16
- 配置用户:
passwd postgres --修改postgres密码******
su postgres
- 修改配置,配置pg_hba.conf与postgresql.conf监听:
(1)找到/var/lib/pgsql/16/data下pg_hba.conf,修改其内容
host all all 127.0.0.1/32 ident
增加host all all 0.0.0.0/0 trust
(2) 修改/var/lib/pgsql/14/data下postgresql.conf,监听地址为*,端口为5432
(3)重启postgresql-16服务
- 切换到root账户,重启服务
systemctl restart postgresql-16
安装PostGIS
- 执行命令安装postgis:
yum -y install postgis34_16 postgis34_16-client
- 创建数据库:
su postgres
psql
create user sde with password '*******';
CREATE DATABASE postgis OWNER sde;
grant all privileges on database postgis to sde;
- 切换postgis,安装PostGis拓展:
\c postgis
SELECT postgis_full_version(); --验证是否安装成功
- 创建视图:
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
(ps:在服务端执行CREATE EXTENSION fuzzystrmatch;可能会报错,换在远程客户端执行就可以通过了)
数据迁移
执行shell脚本进行迁移
先决条件:网络通畅
1.先导出:
pg_dump -U postgres -h 对端ip -p 5432 -d postgis --if-exists -c -F c -b -v -f postgis.dmp
2.导入:
pg_restore -U postgres -d postgis postgis.dmp
可以写成.sh执行脚本,直接运行
卸载
yum remove postgresql*
rpm -qa | grep postgresql
三、问题说明
执行安装包以及创建本地yum源报错少包时,需要复制缺少的包名或文件到rpm搜索实际归属的包,到实际的镜像源地址中下载。
序号 | 镜像源/网站 | Url |
1 | Rpm查询网站 | http://www.rpmfind.net/linux/rpm2html/search.php?query=lyx-fonts&submit=Search+...&system=&arch= |
2 | 阿里云AppStream | https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/?spm=a2c6h.25603864.0.0.43b755dfX5cJ8a |
3 | 阿里云PowerTools | https://mirrors.aliyun.com/centos/8-stream/PowerTools/x86_64/os/Packages/?spm=a2c6h.25603864.0.0.2b6f64b6Hi6dYZ |
4 | 阿里云BaseOS | https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/?spm=a2c6h.25603864.0.0.41513293DBnVWB |
5 | 阿里云Epel | https://mirrors.aliyun.com/epel/8/Everything/x86_64/Packages/l/?spm=a2c6h.25603864.0.0.45ce34e2jswbpp |
6 | 阿里云centos-vault旧版 | http://mirrors.aliyun.com/centos-vault/8.2.2004/AppStream/x86_64/os/Packages/?spm=a2c6h.25603864.0.0.26485483ibo9T5 |