说来惭愧,大名鼎鼎的开源数据库PostgreSQL第一次用,由于要存储地理信息数据,也用了PostGIS插件,顺手记录下在Docker环境中的安装配置过程。
安装环境
Docker Desktop for Windows 4.10
PostgreSQL 10.19
PostGIS 10.3
1.安装PostgreSQL
拉去镜像
docker pull postgres 10.19
创建并启动容器
docker run -d --name mypostgres --restart=always -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e PGDATA=/var/lib/postgresql/data/pgdata -v /custom/mount:/var/lib/postgresql/data postgres:10.19
其中的几个参数含义如下:
–name mypostgres | 容器名称
–restart=always | 始终自动重启
-p 5432:5432 | 端口映射(主机Host端口:容器端口)
-e POSTGRES_PASSWORD=postgres | 自定义参数(密码)
-e PGDATA=/var/lib/postgresql/data/pgdata | 自定义参数(数据存储路径)
-v /custom/mount:/var/lib/postgresql/data | 路径映射
2.安装PgAdmin
docker run -p 5050:80 -e 'PGADMIN_DEFAULT_EMAIL=admin@admin.org' -e 'PGADMIN_DEFAULT_PASSWORD=admin' -d --name pgadmin4 dpage/pgadmin4
由于端口已映射到5050,使用浏览器访问http://localhost:5050,登录后连接PostgreSQL
3.安装PostGIS
这里使用在docker容器中安装PostGIS
进入postgresql容器
docker exec -it postgres bash
使用apt安装postgis,由于PostgreSQL使用的版本是10系列,所以PostGIS也使用对应版本
apt-get install postgresql-10-postgis-3 postgresql-10-postgis-3-dbgsym postgresql-10-postgis-3-scripts
使用apt-get有时会出现安装失败的问题,提示找不到对应的包或者依赖库,需要将apt先进行更新
apt update //更新apt
apt-get update //更新apt-get
此外也可以使用yum安装postgis,或者使用wget下载postgis压缩包解压运行,但都需要对组件进行安装和更新
apt install yum
apt install wget
4.数据迁移
4.1.备份数据
打开pgAdmin,在需要备份数据的数据库上右键选择“备份”,选择或输入备份文件名称,其他参数根据情况选择,点击备份开始执行。
对应的命令为:
/usr/local/pgsql-10/pg_dump --file "/var/lib/pgadmin/storage/admin_admin.org/backup-20220706" --host "192.168.199.38" --port "5432" --username "postgres" --no-password --verbose --role "postgres" --format=c --blobs --encoding "UTF8" "GISDB"
4.2.还原数据
打开pgAdmin,在需要还原数据的数据库上右键选择“还原中”,选择备份文件名称,点击还原开始执行。
对应的命令为:
/usr/local/pgsql-10/pg_restore --host "host.docker.internal" --port "5432" --username "postgres" --no-password --role "postgres" --dbname "GISDB" --verbose "/var/lib/pgadmin/storage/admin_admin.org/backup-20220706"