当前位置: 首页 > article >正文

PostgreSQL 12 + PostGIS 3.4.2 完整部署+迁移+数据恢复避坑指南(新手可复制,全程无报错)

环境说明核心前提必看本次实操目标搭建可正常运行的GIS数据库环境完成跨服务器数据库拆分迁移恢复已有空间数据备份确保PostGIS空间功能、索引全部可用具体环境如下操作系统Windows适配所有Windows系统Win10/11通用本次涉及3台Windows服务器、1台Linux业务服务器PostgreSQL版本12.17稳定版适配PostGIS 3.4.2所有服务器统一版本避免迁移兼容问题PostGIS版本3.4.2针对PostgreSQL 12专用版严格匹配PG版本避免扩展安装失败数据库相关目标数据库gansueqwin用于存储GIS业务数据备份文件D:\gansueqwin_backup.dump含空间数据表、索引、约束、PostGIS相关函数服务器角色迁移场景补充67服务器原数据库服务器Windows已部署PostgreSQL 12.17PostGIS 3.4.2承载gansueqwin66业务用和gansueq40主力机用两个库32服务器新数据库服务器Windows需全新部署环境专用承载gansueqwin库仅给66服务器使用66服务器业务服务器WindowsJava GIS项目需切换数据库连接至32服务器40服务器主力业务服务器LinuxJava项目继续关联67服务器gansueq库全程不改动避免影响主力业务通用配置数据库统一账号postgres密码postgres2024减少配置复杂度可后续修改PostgreSQL默认端口5432二、全程实操步骤部署迁移恢复避坑重点标注第一部分32服务器基础环境部署PostgreSQL 12.17 PostGIS 3.4.2第一步PostgreSQL 12.17 安装基础环境避坑关键下载PostgreSQL 12.17安装包PostgreSQL官网下载链接或可信镜像安装路径选择纯英文路径本次路径D:\pushServer\postgresql避免中文路径导致后续报错。安装过程中设置postgres管理员密码务必牢记后续登录、操作都需要端口默认5432无需修改。取消勾选“Stack Builder”无需额外安装组件减少冗余避免冲突完成安装。⚠️ 避坑点安装路径绝对不能含中文、特殊字符密码建议设置简单易记如postgres2024后续可修改避免忘记密码导致无法登录这也是PostgreSQL 12部署中最易忽略的错误。第二步创建目标数据库gansueqwin安装完成后打开CMD管理员身份进入PostgreSQL的bin目录执行以下命令创建数据库并授权cd D:\pushServer\postgresql\binpsql -U postgres-- 登录后执行创建数据库命令CREATE DATABASE gansueqwin;-- 给postgres用户授予该库所有权限避免后续操作权限不足GRANT ALL PRIVILEGES ON DATABASE gansueqwin TO postgres;执行成功后会分别显示“CREATE DATABASE”和“GRANT”说明数据库创建并授权成功此步骤核心是确保postgres用户拥有完整权限避免后续PostGIS扩展安装、数据恢复时出现权限不足报错。第三步PostGIS 3.4.2 安装最易踩坑版本匹配是核心核心原则PostGIS版本必须与PostgreSQL版本严格匹配这是PostGIS 3.4.2安装的核心要点本次PostgreSQL 12.17对应PostGIS 3.4.2for PostgreSQL 12 x64可通过两种方式安装二选一推荐方式二适配迁移场景避免出现版本不兼容报错。方式一直接安装全新部署无迁移需求适用卸载错误版本若之前装错过如果之前安装过PostGIS 3.4.2for PostgreSQL 13必须先卸载控制面板→卸载程序找到带“PostgreSQL 13”的PostGIS组件右键卸载卸载后重启电脑避免残留文件导致冲突这是PostGIS扩展安装失败的常见原因之一。正确安装PostGIS 3.4.2for PostgreSQL 12运行安装包勾选以下组件严格对照避免报错✅ PostGIS Bundle核心主包必勾不勾等于未安装❌ Create spatial database不勾自动创建模板库易报错后续手动安装扩展更稳✅ Register PROJ_LIB Env Var必勾坐标转换必备不勾会导致空间功能失效✅ Register GDAL_DATA Env Var必勾栅格/矢量数据处理必备✅ Enable Key GDAL Drivers必勾支持常用GIS格式如Shapefile、TIFF❌ Enable All GDAL Drivers不勾避免冗余和安全风险✅ Allow Out-db Rasters推荐勾提升大栅格数据处理效率✅ Register SSL Bundle推荐勾生产环境远程加密连接必备安装过程中弹窗“Would you like to register PROJ_LIB...”直接点击“是(Y)”自动配置环境变量无需手动操作。方式二从67服务器复制插件迁移场景适用无需重新下载若67服务器已部署相同版本的PostGIS 3.4.2可直接复制插件文件到32服务器高效快捷步骤如下在67服务器找到PostGIS插件核心目录复制对应文件插件配置文件目录C:\Program Files\PostgreSQL\12\share\extension\复制所有以“postgis”开头的文件如postgis--3.4.2.sql、postgis.control等。动态库文件目录C:\Program Files\PostgreSQL\12\lib\复制所有以“postgis”开头的.dll文件如postgis-3.dll、postgis_topology-3.dll等。将复制的文件粘贴到32服务器对应目录32的PostgreSQL安装路径为D:\pushServer\postgresql\插件配置文件粘贴到D:\pushServer\postgresql\share\extension\覆盖原有同名文件即可。动态库文件粘贴到D:\pushServer\postgresql\lib\覆盖原有同名文件即可。重启32服务器的PostgreSQL服务按WinR输入services.msc找到postgresql-x64-12右键重启插件文件立即生效。⚠️ 避坑点版本不匹配会直接导致扩展安装失败报错“PostGIS built for PostgreSQL 13 cannot be loaded in PostgreSQL 12”这是PostGIS 3.4.2安装最易踩的坑务必确认安装包/插件文件是针对PostgreSQL 12的版本解决PostGIS扩展安装失败问题。第四步安装PostGIS扩展启用空间功能必做PostGIS安装完成后需手动给目标数据库gansueqwin安装扩展才能支持空间数据存储和查询执行以下命令cd D:\pushServer\postgresql\bin-- 安装核心空间扩展psql -U postgres -d gansueqwin -c CREATE EXTENSION postgis;-- 安装栅格数据支持扩展GIS业务必备psql -U postgres -d gansueqwin -c CREATE EXTENSION postgis_raster;-- 安装拓扑扩展可选根据业务需求psql -U postgres -d gansueqwin -c CREATE EXTENSION postgis_topology;执行成功后会显示“CREATE EXTENSION”说明扩展安装成功此步骤是启用PostGIS空间功能的关键未执行此步骤会导致后续数据恢复时GIS表无法创建。验证扩展版本确认安装正确psql -U postgres -d gansueqwin -c SELECT postgis_version();返回“3.4 USE_GEOS1 USE_PROJ1 USE_STATS1”说明PostGIS 3.4.2安装成功且与PostgreSQL 12.17兼容。第二部分跨服务器数据库迁移67→32拆分部署第五步在67服务器备份gansueqwin数据库核心备份时需包含表结构、数据、PostGIS相关函数和索引确保备份文件完整避免迁移后数据缺失这是PostgreSQL跨服务器迁移的核心前提。打开67服务器的CMD以管理员身份运行进入PostgreSQL的bin目录默认路径若自定义路径需调整cd C:\Program Files\PostgreSQL\12\bin执行备份命令直接复制无需修改输入postgres密码即可pg_dump -h 10.62.210.67 -p 5432 -U postgres -F c -b -v -f D:\gansueqwin_backup.dump gansueqwin校验备份备份完成后去D盘查看gansueqwin_backup.dump文件确认文件大小正常、无报错。第六步将备份文件传输至32服务器通过远程桌面复制、共享文件夹等方式将67服务器D盘的gansueqwin_backup.dump文件复制到32服务器的D盘根目录便于后续恢复时查找避免路径过长导致报错这是PostgreSQL数据迁移中确保备份文件可用的基础步骤。第七步32服务器重建数据库清理环境确保恢复无冲突若之前已创建gansueqwin库需先清理旧库避免残留数据冲突步骤如下此步骤可解决PostgreSQL数据库删除失败的相关问题打开32服务器的SQL Shell (psql)输入postgres密码登录切换到默认postgres库避免无法删除当前连接的库\c postgres强制断开gansueqwin库的所有连接若库已存在避免删除失败SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname gansueqwin;删除旧库若存在重建gansueqwin数据库DROP DATABASE IF EXISTS gansueqwin; CREATE DATABASE gansueqwin; -- 重新授权避免权限不足 GRANT ALL PRIVILEGES ON DATABASE gansueqwin TO postgres;切换到新创建的gansueqwin库重新安装PostGIS扩展确保扩展与库绑定\c gansueqwin; CREATE EXTENSION postgis; CREATE EXTENSION postgis_raster; CREATE EXTENSION postgis_topology

相关文章:

PostgreSQL 12 + PostGIS 3.4.2 完整部署+迁移+数据恢复避坑指南(新手可复制,全程无报错)

环境说明(核心前提,必看) 本次实操目标:搭建可正常运行的GIS数据库环境,完成跨服务器数据库拆分迁移,恢复已有空间数据备份,确保PostGIS空间功能、索引全部可用,具体环境如下&#…...

“网上很火,你却不懂的这些新梗”

01问:“展望未来”现在怎么说? 答:画大饼02问:“我的天呢”现在怎么说? 答:我勒个豆03问:“大冤种”现在怎么说? 答:家人们04问:“深情”现在怎么说&#xff…...

new AbortController()

new AbortController() 是 JavaScript 中用于‌创建一个 AbortController 实例‌的构造函数,该实例可用于‌控制或取消异步操作‌(如网络请求、事件监听、定时任务等)。...

测评 ASR 歌词生成模型

1. 测评背景与目标 业务需求: 目前有大批量的 MP3 音频需要匹配歌词。网络公开渠道能爬取到的歌词占比不足 50%,因此必须采用 ASR(自动语音识别)生成模式来补全缺口。 核心痛点: 现有的商业 API 调用成本较高&#xf…...

01-第1章-概述与快速开始

第 1 章:概述与快速开始 1.1 sfsDb 简介 sfsDb 是一款专为工业物联网(IIoT)和边缘计算场景设计的纯 Go 语言嵌入式数据库。它基于 LevelDB 构建,提供了无锁事务系统、高效索引管理、时序数据处理和加密存储等功能。 核心特性 纯…...

TCT亚洲展|金属3D打印创新产品抢先看

本届TCT亚洲展有大量创新产品亮相,有的是概念产品,有的则已经被用于最终使用。本期内容,跟随3D打印技术参考,来探索部分创新应用。气液双向散热器概念设计这款产品由漫格科技与中科祥龙联合开发,是一件基于某真实项目的…...

ST7789显示屏驱动实战指南:从基础配置到高级应用

ST7789显示屏驱动实战指南:从基础配置到高级应用 【免费下载链接】st7789py_mpy 项目地址: https://gitcode.com/gh_mirrors/st/st7789py_mpy ST7789显示屏驱动是一款专为嵌入式系统设计的高性能TFT LCD控制器解决方案,支持多种分辨率与丰富显示…...

Shell程序

Shell脚本定义:以.sh结尾的文件,用于执行特定任务脚本参数传递:执行脚本时可在命令后添加参数(如start/stop)Hadoop脚本示例:sbin/hadoop-daemon.sh start namenodeShell编程特点:简单易用,适合自动化常见操作脚本执行方式:直接运行.sh文件即可执行其中命…...

Linux 定时备份 MySQL 数据库(完整教程)

为了防止数据丢失,我们需要定时把数据备份起来。我们使用用 Linux crontab mysqldump 实现定时自动备份,包含备份、压缩、保留历史、自动清理旧文件。一、先准备备份脚本创建一个备份脚本 mysql_backup.sh,放在 /usr/local/bin/ 方便管理。#…...

微信小程序使用websocket调用大模型返回逐字显示的结果

页面展示:小程序代码: aichat.js:const config require(../../utils/config.js); Page({data: {messages: [],inputText: ,isLoading: false,scrollToId: scroll-bottom,currentStreamingId: null,isConnecting: false,isReceiving: false,socketOpen: …...

ModTheSpire终极指南:解锁《杀戮尖塔》无限可能的模组加载器

ModTheSpire终极指南:解锁《杀戮尖塔》无限可能的模组加载器 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是专为《杀戮尖塔》设计的开源模组加载器&#xff…...

剪映API技术解析:如何通过代码驱动实现视频剪辑自动化与效率革命

剪映API技术解析:如何通过代码驱动实现视频剪辑自动化与效率革命 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 在视频内容创作进入工业化生产的今天,传统手动…...

基于Matlab的Dijkstra算法与蚁群优化算法路径规划

3基于matlab的Dijkstra和蚁群优化算法路径规划 Dijkstra算法研究的是从初始点到其他每一结点的最短路径,从而得到最短路径 蚂蚁会以较大的概率优先选择信息素浓度较高的路径, 并释放一定量的信息素, 以增强该条路径上的信息素浓度&#xff0c…...

第6章 Mosquitto用户认证与访问控制

第6章 用户认证与访问控制 6.1 认证机制概览 #mermaid-svg-MTeZFweZQcx9XrLR{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:…...

TongWeb8.0支持JBoss Weld‌

JBoss Weld‌ 是 CDI(Contexts and Dependency Injection,JSR 299/346/365)的官方参考实现(RI),用于在 Java EE / Jakarta EE 应用中提供依赖注入和上下文管理功能。它不仅内置于 WildFly、GlassFish 等应用…...

如何让老旧苹果电脑重获新生:OpenCore Legacy Patcher完全指南

如何让老旧苹果电脑重获新生:OpenCore Legacy Patcher完全指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你的2008-2017年老款Mac是否因为苹…...

Git从入门到精通:原理、实战与企业级协作全攻略

Git从入门到精通:原理、实战与企业级协作全攻略 文章目录Git从入门到精通:原理、实战与企业级协作全攻略Git从入门到精通:原理、实战与企业级协作全攻略前言:为什么每个开发者都必须掌握Git?第一部分:Git初…...

WarcraftHelper:让经典魔兽争霸3在现代电脑上完美运行的终极解决方案

WarcraftHelper:让经典魔兽争霸3在现代电脑上完美运行的终极解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸…...

ComfyUI-VideoHelperSuite视频工作流技术指南:从基础操作到专业应用

ComfyUI-VideoHelperSuite视频工作流技术指南:从基础操作到专业应用 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 引言:视频处理工作流的…...

面对 AI 热潮,企业最值得优先落地的5个业务场景

这一轮 AI 热潮,很多企业都在关注,也都在问同一个问题:AI 到底该先落在哪?是做大模型应用?是上智能体?还是先做知识库、数据平台、自动化流程?看起来方向很多,但真正落到企业经营和管…...

如何判断提取的RNA是否可用?

在分子生物学实验中,RNA的质量直接决定下游实验的成败。那么,如何科学、系统地评价所提取的RNA是否合格呢?应从浓度、纯度与完整性三个维度综合判断,只有三者均达到标准,才能称为高质量RNA。一、质量评价的三项核心指标…...

本地AI聊天、交互助手(写给小白的LLM工具选型系列:第三篇)

诸神缄默不语-个人技术博文与视频目录 在这一章介绍的是,已经有了AI大模型推理服务(不管是云端API还是本地服务),想要一个像聊天框那样的界面来跟大模型聊天、或者让大模型做更复杂的工作。 本章主要考虑的功能还是AI对话&#x…...

基于COMSOL的相变模拟:石蜡、熔盐、金属等的奇妙相变之旅

基于COMSOL的相变模拟(石蜡、熔盐、金属等) 材料从完全固态转变到液态(或者液态冷却到固态),考虑液相的自然对流对相变过程的影响 材料的参数设定与融化或凝固状态相关,如图中所示最近在研究材料的相变过程…...

【最新最权威】ArcGIS ArcMap中添加在线地图-天地图(地形、矢量、影像、全球境界)的方法

1 图源介绍地理信息公共服务平台(天地图)是县级以上自然资源主管部门向社会提供各类在线地理信息公共服务、推动地理信息数据开放共享的政府网站,由国家级节点、省级(兵团)节点、市县级节点组成。在底图服务方面&#…...

技术方案:deepseek对话怎么导出PDF

在日常使用 DeepSeek 的过程中,一个让人又爱又恨的问题反复出现:回答质量很高,但想把它存下来却非常麻烦。 无论是做技术调研、写方案、做知识沉淀,还是整理学习笔记,DeepSeek 给出的答案往往信息密度大、结构清晰&am…...

Hollander Techniek借助Visual Components仿真平台,打造自动化食品包装系统

荷兰即食餐食供应商Uitgekookt(以下简称Uitgekookt)计划对其餐食包装流程进行自动化改造,亟需一套能高效、精准处理定制订单的系统。荷兰食品包装自动化集成商HT(以下简称HT)在实际搭建前,运用Visual Compo…...

商品详情API的SLA保障体系:监控告警、异常检测与自动化修复

在电商业务中,商品详情API是连接前端展示与后端数据的核心枢纽,其稳定性、可用性直接决定用户体验与业务转化——用户点击商品卡片后,若API响应延迟、数据异常或服务中断,会直接导致用户流失、订单损失。SLA(服务等级协…...

爱邦保险:全国全牌照保险经纪领航者

爱邦保险经纪有限公司(以下简称“爱邦保险”)作为一家全国性保险经纪公司,据公开的工商信息及金融监管备案显示,爱邦保险是是经江苏省人民政府同意、中国保险监督管理委员会批准设立的一家全国性全牌照保险经纪公司,具…...

OpenClaw语音控制扩展:Gemma-3-12b-it实现自然语言任务触发

OpenClaw语音控制扩展:Gemma-3-12b-it实现自然语言任务触发 1. 为什么需要语音控制自动化助手 上周五下班路上,我遇到一个典型场景:开车时收到客户紧急邮件需要立即回复,但双手离不开方向盘。这种场景让我开始思考——能否用语音…...

Ostrakon-VL终端惊艳效果:上传全景图→AI自动生成货架分区热力图

Ostrakon-VL终端惊艳效果:上传全景图→AI自动生成货架分区热力图 1. 像素特工:零售场景的AI扫描专家 在零售行业,货架陈列分析一直是个耗时费力的工作。传统方法需要人工巡视记录,不仅效率低下,还容易遗漏细节。现在…...