1.备忘36:Postgre14.3在虚拟机centos上的源码安装以及orafce插件的安装
2.PostgreSQL14基于源码安装和入门教程
3.PostgreSQL 命令行工具 - pgcli
4.PostGIS入门篇 一 PostGIS安装
5.在Linux(centos)中使用源码安装pgRouting
6.PostgreSQL源码学习笔记(6)-查询编译
备忘36:Postgre14.3在虚拟机centos上的安装以及orafce插件的安装
在虚拟机CentOS上安装PostgreSQL .3并集成Orafce插件的详细步骤如下:
首先,安装CentOS 7在VMware虚拟机上,编译选择带GUI的源码安装选项,分配2GB内存和自定义存储空间。编译
在虚拟机设置中,源码有桥接和NAT两种网络模式可供选择。编译窗口巡警源码桥接模式使虚拟机像局域网内的源码另一台物理机,而NAT模式允许虚拟机共享宿主机的编译网络连接。
对于PostgreSQL的源码安装,从官方网站下载postgresql-.3.tar.gz,编译解压到主目录。源码在编译安装前,编译确保已安装必要的源码依赖项,如readline-devel和zlib-devel(非必须,编译但影响psql的源码功能)。如果在编译时不需要这些依赖,可通过命令行添加相应参数。
安装过程中,需要创建postgres用户并设置密码,然后按照INSTALL文档进行配置和安装。安装orafce插件时,从GitHub获取源码并参照文档进行编译和安装,可能出现的 "/usr/lib/pgsql/pgxs/src/makefiles/pgxs.mk" 文件问题可能是由于缺少 PostgreSQL 开发包,确保安装了相应的开发包后重新安装。
orafce.so文件是扩展模块,安装完成后,检查其位置是否正确。还需编辑postgresql.conf和.bash_profile文件以加载orafce插件,并通过psql进行扩展加载。如果连接pgAdmin遇到问题,辅助软件下载源码可能需要调整防火墙设置,允许端口的连接。
最后,如果仍无法连接,检查LD_LIBRARY_PATH环境变量,确保orafce库路径正确,并查看是否存在试图重定义参数的错误,如'orafce.nls_data_format',需修改配置文件以解决冲突。
总的来说,安装PostgreSQL .3和orafce插件需要依次完成系统环境、依赖安装、配置文件修改和防火墙规则设置等步骤,确保每个环节都正确无误。
PostgreSQL基于源码安装和入门教程
PostgreSQL 源码安装入门教程
本文将引导您在openEuler . LTS-SP3系统上基于源码安装并配置PostgreSQL ,包括操作系统环境设置、网络配置、软件包安装、用户和数据盘创建,以及数据库的初始化、启动和管理。1.1 操作系统环境
安装openEuler后,确保系统安装了bc命令(若缺失,后续会安装)。1.2 网络配置
通过Nmcli配置网络,首先检查并设置网络接口ens的IP地址,无论是自动获取还是静态配置。1.3 更新系统与工具安装
更新软件包并安装bc、vim、jquery消消乐源码tmux和tar等工具,以支持后续操作。1.4 用户与数据盘创建
创建postgres用户和用户组,以及可能的专用数据盘,如NVMe SSD,用于提高性能。2. 安装与配置
2.1 下载与解压
以root权限下载并解压PostgreSQL 的源代码压缩包。2.2 安装与初始化
按照指导进行编译和安装,初始化数据库并设置启动参数。2.3 启动与管理
启动数据库,登录并创建必要用户、数据库和表空间。3. 开机自动启动
3.1 init.d环境
使用start-scripts中的脚本配置init.d,确保PostgreSQL在系统启动时自动运行。3.2 systemd环境
为PostgreSQL创建systemd服务文件,确保启动和管理的自动化。4. psql操作示例
展示如何使用psql进行数据库操作,包括创建数据库、模式、表和数据插入等。5. 远程连接
讲解如何配置防火墙以允许远程连接。 通过以上步骤,您将掌握PostgreSQL 的源码安装和基本管理,准备好进行数据管理和应用程序开发。PostgreSQL 命令行工具 - pgcli
pgcli,一个专为PostgreSQL设计的命令行工具,以其语法高亮和自动输入提示功能引人注目。同时,它与MySQL的淘宝源码版权投诉类似命令行工具mycli共享相似特性。
在配置环境中,centos位系统和PostgreSQL9.4数据库的部署是基础。接下来的安装流程涉及以下几个关键步骤:
首先,确保PostgreSQL已成功安装,参考指南可实现源码编译安装或利用安装包图形化安装。
其次,安装Python,为后续使用pgcli提供环境支持。可通过相关文档进行安装。
紧接着,安装Python-pip工具,用于处理依赖库的安装。尝试使用yum安装后,若未找到可用包,可指定具体地址进行安装,确保成功。
安装pgcli时,作为root用户运行pip/pip3 install pgcli可能会遇到“pg_config executable not found”的错误。解决此问题,需将PostgreSQL的bin目录添加至环境变量PATH中。
然而,在尝试使用pgcli连接PostgreSQL执行查询时,可能遇到“ImportError: libpq.so.5: cannot open shared object file: No such file or directory”的错误。为了解决这一问题,使用正确的路径运行pgcli。
在成功配置并使用pgcli后,可以直观地看到其对SQL语句的语法高亮显示,以及在输入时的自动提示功能。即使在简单的php社区软件源码测试环境下,此功能反应迅速,但在复杂场景下的表现有待进一步测试和验证。
总而言之,通过遵循上述步骤,可以轻松地在PostgreSQL系统中集成和使用pgcli工具,提升数据库操作的效率与体验。
PostGIS入门篇 一 PostGIS安装
本文将引导你入门PostGIS的安装过程,首先从安装PostgreSQL 1.1.1版本开始,升级gcc是必要的步骤。
首先,下载并解压新的gcc压缩文件,然后安装gcc依赖,指定安装路径,并配置环境变量。确保已移除低版本的yum安装,以避免因库版本不匹配的错误。接着,为在数据库中使用uuid,可能需要安装相关库(PostgreSQL 版本之后自带uuid无需安装)。
继续进行用户创建,然后通过PG源码编译安装,注意设置文件权限。数据库安装完成后,尽管可以本地连接,但为了允许远程访问,需要调整$PGDATA中的pg_hba.conf和postgresql.conf中的参数,具体细节请参考其他相关资源。
接下来,我们将安装PostGIS 3.1,它依赖geos、proj、gdal、libxml、json-c、protobuf。若需三维功能,请安装sfcgal,路网分析则需pgrouting。先安装proj 6.3.2,确保其与高版本sqlite兼容。
随后依次安装gdal、jsonc、libxml2,以及protobuf和protobuf-c。sfcgal的三维功能需要cmake编译,同时预先编译boost和cgal,以避免编译时的库查找问题。编译sfcgal后,pgrouting可单独安装,后续会单独介绍。
在安装PostGIS前,别忘了配置ld.so.conf,然后进行postgis的安装。可能会遇到如lsqt3未找到的错误,这时需要解决。最后,安装验证通过,标志着PostGIS的安装顺利完成。
在Linux(centos)中使用源码安装pgRouting
在Linux(centos)环境下使用源码安装pgRouting前,请先确保已阅读并安装了PostgreSQL和PostGIS。
本文将介绍如何安装pgRouting 2.6.3版本,其源码包可从以下地址下载:
github.com/pgRouting/pg...
一、解压pgRouting源码包
将下载的源码包pgrouting-2.6.3.tar.gz复制到/usr/local/src目录,并执行解压操作:
解压完成后,将生成一个名为pgrouting-2.6.3的目录。
二、配置PostgreSQL环境变量
编辑/etc/profile文件,添加以下内容:
保存并退出,然后使profile配置文件立即生效:
三、编译源代码
进入pgrouting-2.6.3目录,创建build新文件夹,并进入该文件夹:
使用cmake指令编译源代码,指定pgRouting安装路径为/usr/local/pgrouting-2.6.3:
执行make编译源代码,然后使用make install安装pgrouting-2.6.3:
为避免pgrouting找不到CGAL动态库,将CGAL动态库路径添加到ld.so.conf文件中:
编辑/etc/ld.so.conf,添加路径:
使ld.so.conf文件立即生效:
至此,pgrouting-2.6.3已成功安装。
四、测试安装
切换到postgres用户,启动PostgreSQL数据库(若未启动则启动),进入psql:
连接test数据库(可创建任意名称的数据库),创建pgrouting插件:
查看test数据库中现有的所有插件,可以发现已成功安装了postgis和pgrouting插件。
PostgreSQL源码学习笔记(6)-查询编译
查询模块是数据库与用户进行交互的模块,允许用户使用结构化查询语言(SQL)或其它高级语言在高层次上表达查询任务,并将用户的查询命令转化成数据库上的操作序列并执行。查询处理分为查询编译与查询执行两个阶段:
当PostgreSQL的后台进程Postgres接收到查询命令后,首先传递到查询分析模块,进行词法,语法与语义分析。用户的查询命令,如SELECT,CREATE TABLE等,会被构建为原始解析树,然后交给查询重写模块。查询重写模块根据解析树及参数执行解析分析及规则重写,得到查询树,最后输入计划模块得到计划树。
整个查询编译的函数调用流程包括查询分析、查询重写与计划生成三个阶段。查询分析涉及词法分析、语法分析与语义分析,分别由Lex与Yacc工具完成。词法分析识别输入的SQL命令中的模式,语法分析找出这些模式的组合,形成解析树。出于与用户交互的考虑,语义分析与重写放在另一个函数处理,以避免在输入语句时立即执行事务操作。Lex与Yacc是词法与语法分析工具,分别通过正则表达式解析与语法结构定义,生成用于分析的C语言代码。
查询分析由pg_parse_query函数与pg_analyze_and_rewrite函数完成。pg_parse_query处理词法与语法分析,而语义分析与重写在pg_analyze_and_rewrite函数中进行。语义分析需要访问数据库系统表,以检查命令中的表或字段是否存在,以及聚合函数的适用性。
查询重写核心在于规则系统,存储在pg_rewrite系统表中。规则系统由一系列重写规则组成,包括创建规则、删除规则以及利用规则进行查询重写三个操作。规则系统提供定义、删除规则以及利用规则优化查询的功能。PG中实现多种查询优化策略,包括谓语下滑、WHERE语句合并等,通过动态规划与遗传算法选择代价最小的执行方案。
查询规划的总体过程包括预处理、生成路径和生成计划三个阶段。预处理阶段消除冗余条件、减少递归层数与简化路径生成。提升子链接与子查询是预处理中的关键步骤,通过将子查询提升至与父查询相同的优化等级,提高查询效率。提升子链接与子查询的函数包括pull_up_sublinks与pull_up_subqueries。
在路径生成阶段,优化器检查MIN/MAX聚集函数的存在与索引条件,生成通过索引扫描获得最大值或最小值的路径。表达式预处理由preprocess_expression函数完成,包括目标链表、WHERE语句、HAVING谓语等的处理。HAVING子句的提升或保留取决于是否包含聚集条件。删除冗余信息以优化路径生成。
生成路径的入口函数query_planner负责找到从一组基本表到最终连接表的最高效路径。路径生成算法包括动态规划与遗传算法,分别解决路径选择与状态传递问题。路径生成流程涉及make_one_rel函数,最终生成最优路径并转换为执行计划。
在得到最优路径后,优化器根据路径生成对应的执行计划。创建计划的入口函数create_plan提供顺序扫描、采样扫描、索引扫描与TID扫描等计划生成。整理计划树函数set_plan_references负责最后的细节调整,优化执行器执行效率。代价估算考虑磁盘I/O与CPU时间,根据统计信息与查询条件估计路径代价。
查询编译与规划是数据库性能的关键环节。PostgreSQL通过高效的查询分析、重写与规划,生成最优执行计划,显著提高查询执行效率。动态规划与遗传算法等优化策略的应用,确保了查询处理的高效与灵活性。