《PostgreSQL 9.0性能调校》一一1.3 PostgreSQL工具

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:
+关注继续查看

本节书摘来自异步社区出版社《PostgreSQL 9.0性能调校》一书中的第1章,第1.3节,作者: 【美】Gregory Smith,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 PostgreSQL工具

如果用户习惯于数据库厂商提供的那些针对数据库本身的完整工具集,这些工具集所涵盖的范围从服务器管理到应用程序开发,那么PostgreSQL可能无法满足这部分用户的需求。与很多成功的开源项目一样,PostgreSQL视图持续专注于一些它所擅长的功能。这也就是开发社区所指的PostgreSQL核心:主要的数据库服务器,相关的工具可以作为数据库本身的一个部分进行开发。当有新的功能提出时,如果它们可能被建立和发布在“核心外”,这是首选的方式。这种方式尽可能地保持数据库核心是持续性的,也就是允许这些外部的项目发布为自己的更新,而不需要与主要的数据库发布计划进行同步。

成熟的PostgreSQL部署应该能够识别众多的各自具有其特定目的附加工具,这些都需要整合到数据库核心服务器中以形成一个完整的系统。

1.3.1 PostgreSQL contrib

用户也许没必要安装PostgreSQL核心的contrib模块部分(其命名是根据它们所存储的目录名称)。这些可选的工具与标准工具包一同发布,但在用户的系统上默认可以不进行安装。contrib代码作为PostgreSQL核心的一部分进行维护与发布,但不要求服务器进行操作。

从代码质量的角度上看,contrib模块在其测试时并没有遵守那么高的标准。主服务器包含对每个功能的深度回归分析测试,这会涉及在数量庞大的系统中去搜寻错误。可选的contrib模块并没有得到在相同级别上的测试覆盖。然而,代码本身是由同一个开发团队进行维护,其中的一些模块极其受欢迎,并且经过用户的良好测试。

查看所有可用的contrib模块的列表,请浏览http://www.postgresql.org/docs/current/static/ contrib.html。

1.发现系统中的contrib模块
检查是否安装有contrib模块的方法是去查看pgbench程序是否可用。pgbench是少数那些安装了完整程序的contrib组件工具的其中之一,而不仅仅是用户可使用的脚本。在UNIX中,检查pgbench是否安装的例子如下所示。

image

在大多数Linux系统中,如果用的是RPM或者DEB包安装的PostgreSQL,可选的postgresql- contrib包中包含所有的contrib模块以及与它相关的安装脚本。如果尚未安装相关功能的话,就需要使用yum、apt-get或者类似的机制来添加安装包。在Solaris系统中,这个包的名称为SUNWpostgr-contrib。

如果用户不能确定在其系统中PostgreSQL contrib模块安装的位置,那可以使用文件系统工具进行搜索。在许多类UNIX系统中,locatefind命令一样能够很好地达到目的。在Windows系统中,在开始菜单中可以找到文件搜索工具。例如,用户要搜索在下一章要谈到的内存分配的文件pg_ buffercache.sql,以下是在部分平台下,该文件所在的位置的说明。

RHEL和CentOS等Linux系统中,该文件的路径为:/usr/share/pgsql/contrib/pg_ buffer cache.sql
Debian或者Ubuntu等Linux系统中,该文件的路径为:/usr/share/postgresql/ version/contrib/pg_buffercache.sql
Solaris系统中该文件路径为:/usr/share/pgsql/contrib/pg_buffercache.sql
在Windows系统中,采用默认选项将会安装contrib模块,其路径为:C:\Program Files\ PostgreSQL/version/share/contrib/pg_buffercache.sql
2.从源码安装contrib模块
在一些平台下,当用户的服务器环境符合相应的先决条件,则可以使用源码安装PostgreSQL作为一种简单的练习。相关详细信息请参考:http://www.postgresql.org/docs/current/static/install-procedure.html

在构建主要服务器的代码后,用户还需要自行编译诸如pg_buffercache之类的contrib模块。以下是一个相关的实例,在该例当中假设用户的PostgreSQL目标路径为/usr/local/postgresql,并且目录source是用户放置源代码的目录(本实例不作为典型或者推荐用户使用的目录结构),如下所示。

image

在contrib目录中运行make/make install命令可以构建并安装所有的contrib模块。请注意其中的一些更广泛的源代码构建的需求。uuid-ossp模块就是一个更具挑战性的自行编译的模块实例。

3.使用contrib模块
虽然一些诸如pgbench的contrib程序可以直接执行,但那些安装在数据库中的工具大多数都是为了向其添加额外的功能。

例如,要将模块pg_buffercache安装到一个名为abc的数据库中,则要在命令行下使用如下命令。

image

用户可以使用图形化用户界面管理工具pgAdmin III替代命令行来完成工作。它是捆绑在Windows平台下的PostgreSQL工具,以替代命令行方法。具体使用方法如下。

指明用户要安装模块的数据库。
单击工具栏上的SQL图标,启动命令行编辑器。
选择 File/Open,指向 C:\ProgramFiles\PostgreSQL/version/share/contrib/pg_ buffercache.sql并打开文件。
使用绿色箭头或者Query/Execute开始执行。
使用以下的查询可以快速检测任意类型的系统中所安装的模块。

image

如果返回任意值,则表明该模块已安装。注意pg_buffercache只能由数据库超级用户安装和使用。

1.3.2 pgFoundry

PostgreSQL相关的项目的官方站点是pgFoundry:http://pgfoundry.org/

pgFoundry只是存放PostgreSQL软件的主机,除了文件分发之外还提供诸如邮件列表和错误追踪的功能。许多最流行的PostgreSQL附加程序都可以在那里找到。

Windows程序可以通过.Net和OLE访问PostgreSQL
诸如pgpool和pgBouncer之类的连接缓冲池。
诸如pgFouine、SkyTools以及pgtune之类的数据库管理工具。
尽管有时会由从事PostgreSQL核心的同一批人维护pgFoundry,但其代码质量时常会有显著变化。保持项目良好进行的一个方法是注意定期和最近的发布版本。

1.3.3 其他一些与PostgreSQL相关的软件

除了PostgreSQL核心自带的程序之外,诸如contrib模块以及pgFoundry提供的软件等,还有很多的程序能够让PostgreSQL更加易用和强大。在网络上都能找到这些资源。为需求本身选择正确的包实际上有很多选择。

本书中,很多很有用的程序都会被重点提出,用户可以尽早了解所提供的简短列表。这是构建大型开源项目的标准方法,用户可以得到一个基本的系统运行环境并随后在需要的时候去添加额外的的组件。

对那些安装任何软件都要经过审批和QA周期的企业文化来说,这样做是比较困难的。为了提高在这种环境下用户成功安装PostgreSQL的几率,在早期就引进这一概念是很重要的。在后期需要往较小的数据库核心中附加程序来添加组件,很明显在刚开始的时候不需要全部组件。`

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2天前
|
SQL 关系型数据库 MySQL
mysql的大小写对性能的影响问题
mysql的大小写对性能的影响问题
12 0
|
3天前
|
存储 SQL 关系型数据库
PolarDB-x 比mysql查询性能怎么样?速度快吗
PolarDB-x 比mysql查询性能怎么样?速度快吗
13 0
|
5天前
|
关系型数据库 MySQL 数据库
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
史上最全的MySQL性能手册(优化+SQL+并发+数据库)
|
1月前
|
SQL 关系型数据库 MySQL
MySQL 用 limit 为什么会影响性能?
一,前言 首先说明一下MySQL的版本:
|
2月前
|
缓存 关系型数据库 MySQL
MySQL索引原理与实践:优化数据库性能的有效方法3.0
全文索引,主键索引,唯一索引,覆盖索引,组合索引,普通索引,外键索引,空间索引,前缀索引,哈希索引等 在接下来MySQL索引原理与实践3.0中我会重点介绍mysql索引优化等一些方面相关的理论与实践,有小伙伴是从3.0开始看的,可以优先看一下1.0/2.0 http://t.csdnimg.cn/hHn9A
29 0
|
2月前
|
存储 关系型数据库 MySQL
MySQL索引原理与实践:优化数据库性能的有效方法1.0
MYSQL索引 全文索引,主键索引,唯一索引,覆盖索引,组合索引,普通索引
24 0
|
2月前
|
监控 关系型数据库 MySQL
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
|
2月前
|
关系型数据库 MySQL Linux
ADB MySQL湖仓版在Linux和Windows上的性能差异
ADB MySQL湖仓版在Linux和Windows上的性能差异
23 1
|
2月前
|
存储 Cloud Native 关系型数据库
MySQL优化技巧:提升数据库性能
MySQL优化技巧:提升数据库性能
19 0
|
2月前
|
监控 算法 关系型数据库
MySQL学习笔记- 刷脏页(flush)对性能的影响
MySQL学习笔记- 刷脏页(flush)对性能的影响
42 0
热门文章
最新文章
推荐文章
更多