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、院线版源码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语句的语法高亮显示,以及在输入时的自动提示功能。即使在简单的魔天记源码测试环境下,此功能反应迅速,但在复杂场景下的表现有待进一步测试和验证。
总而言之,通过遵循上述步骤,可以轻松地在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通过高效的查询分析、重写与规划,生成最优执行计划,显著提高查询执行效率。动态规划与遗传算法等优化策略的应用,确保了查询处理的高效与灵活性。