PostgreSQL实战
基于PostgreSQL10编写,重点介绍SQL高级特性、并行查询、分区表、物理复制、逻辑复制、备份恢复、高可用、性能优化、PostGIS等,涵盖大量实战用例。
基本信息


编辑推荐
中国开源软件推进联盟PostgreSQL分会特聘专家撰写,国内多位开源数据库专家鼎力推荐。
基于PostgreSQL 10 编写,重点介绍SQL高级特性、并行查询、分区表、物理复制、逻辑复制、备份恢复、高可用、性能优化、PostGIS等,涵盖大量实战用例。
PostgreSQL实战
谭峰张文升编著
内容简介
计算机书籍
本书由数据库专业开发人员撰写,系统介绍PostgreSQL10的丰富特性,及其在生产实践运维中的技巧,全书分为基础篇、核心篇、进阶篇,共18章。基础篇包括第1~4章,主要介绍PostgreSQL基础知识,例如安装与配置、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括第5-9章,主要介绍PostgreSQL核心内容,例如体系结构、并行查询、事务与并发控制、分区表等;进阶篇包括第10~18章,主要介绍PostgreSQL高级内容,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、扩展模块、Oracle数据库迁移PostgreSQL实战、PostGIS等。
作译者
张文升 中国开源软件推进联盟PostgreSQL分会核心成员之一。常年活跃于PostgreSQL、MySQL、Redis等开源技术社区,坚持推动PostgreSQL在中国地区的发展,多次参与组织PostgreSQL全国用户大会。近年来致力于推动PostgreSQL在互联网企业的应用以及企业PostgreSQL培训与技术支持。
目录
前言
基 础 篇
第1章 安装与配置基础2
1.1 初识PostgreSQL2
1.1.1 PostgreSQL的特点3
1.1.2 许可3
1.1.3 邮件列表和讨论区3
1.2 安装PostgreSQL3
1.2.1 通过yum源安装4
1.2.2 通过源码编译安装5
1.2.3 设置一个软链接7
1.3 客户端程序和服务器程序8
1.3.1 客户端程序8
1.3.2 服务器程序11
1.4 创建数据库实例11
1.4.1 创建操作系统用户11
1.4.2 创建数据目录12
1.4.3 初始化数据目录13
1.5 启动和停止数据库服务器14
前言
笔者从2010年开始从事PostgreSQL DBA工作,在PostgreSQL数据库运维工程中积累了一些经验,因此想系统编写一本PostgreSQL书籍,一方面总结自己在PostgreSQL数据库运维方面的经验,另一方面希望对PostgreSQL从业者有所帮助,同时希望给PostgreSQL在国内的发展贡献一份力量;本书的另一位作者张文升拥有丰富的PostgreSQL运维经验,目前就职于探探科技任首席PostgreSQL DBA,他的加入极大地丰富了此书的内容。
近几年PostgreSQL在国内得到较快的发展,平安科技、去哪儿网、探探科技、斯凯网络等公司都在逐步使用PostgreSQL,目前阿里云、腾讯云、华为云等主流云服务提供商也提供了基于PostgreSQL数据库的云服务,相信PostgreSQL在国内将有更广阔的发展。
本书主要内容
本书系统介绍PostgreSQL的丰富特性,以及生产实践运维中的技巧,全书分为基础篇、核心篇、进阶篇。基础篇包括第1~4章,主要介绍PostgreSQL基础知识,例如安装与配置、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括第5~9章,主要介绍PostgreSQL核心内容,例如体系结构、并行查询、事务与并发控制、分区表等;进阶篇包括第10~18章,主要介绍PostgreSQL进阶内容,相比前两篇进阶篇的难度有一定程度增加,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、扩展模块、Oracle数据库迁移PostgreSQL实战、PostGIS等。本书18章主要内容如下。
第1章:介绍PostgreSQL起源、安装、数据库实例创建、数据库配置、数据库的启动和停止等。
第2章:介绍psql命令行客户端工具的使用和特性,例如psql元命令、psql导入导出数据、使用psql执行脚本、psql的亮点功能等。
第3章:介绍PostgreSQL各种数据类型,包括字符类型、时间/日期类型、布尔类型、网络地址类型、数组类型、范围类型、json/jsonb类型等;同时介绍了数据类型相关函数、操作符、数据类型转换。
第4章:主要介绍PostgreSQL支持的一些高级SQL特性,例如WITH查询、批量插入、RETURNING返回DML修改的数据、UPSERT、数据抽样、聚合函数、窗口函数等。
第5章:简单介绍PostgreSQL的逻辑结构和物理结构,以及PostgreSQL的守护进程、服务进程和辅助进程。
第6章:介绍PostgreSQL并行查询相关配置与应用,以及多表关联中并行的使用。
第7章:介绍事务的基本概念、性质和事务隔离级别,以及PostgreSQL多版本并发控制的原理和机制。
第8章:介绍传统分区表和内置分区表的部署、分区维护和性能测试。
第9章:介绍PostgreSQL的NoSQL特性,以及PostgreSQL全文检索。
第10章:简单介绍了服务器硬件、操作系统配置对性能的影响,介绍了一些常用的Linux性能监控工具,并着重介绍了对性能影响较大的几个方面,以及性能优化方案。
第11章:着重介绍PostgreSQL内置的测试工具pgbench,以及如何使用pgbench的内置脚本和自定义脚本进行基准测试。
第12章:主要介绍PostgreSQL物理复制和逻辑复制,并结合笔者在数据库维护过程中的实践经验分享了三个典型的流复制维护生产案例。
第13章:重点介绍PostgreSQL物理备份、增量备份,同时演示了数据库恢复的几种场景。
第14章:介绍两种高可用方案,一种是基于Pgpool-II和异步流复制的高可用方案,另一种是基于Keepalived和异步流复制的高可用方案。
第15章:介绍PostgreSQL版本命名规则、支撑策略、历史版本演进,介绍了小版本升级,最后重点介绍了大版本升级的三种方式。
序言
谭峰是PG用户会最早的成员之一,2011年我们在一次小聚会中,与另外6位志同道合的小伙伴决定一同成立 PG用户会以促进中国PostgreSQL的应用及发展。同年,在暨南大学我们举行了第一屇 “Postgres中国用户大会(大象会)”。
张文升曾经是我的同僚,在共事的短短2年里,我们东征西伐,带着对PostgreSQL的热爱与执着,将PostgreSQL部署到了民航、金融、制造、交通等行业,多少个不眠之夜依然历历在目。
自2011年PostgreSQL中国用户会成立以来,我们持续推动PostgreSQL在中国的应用,并促进与全球PostgreSQL社区的互动。7年来我们邀请了众多业界大拿来到中国进行技术分享,他们包括:
社区核心Leader:Bruce Momjian、Oleg Bartunov、Simon Riggs、Magnus Hagander
Postgres-XC Leader:铃木幸一
Postgres-XL Leader:Mason Sharp
PGPool Leader:石井达夫
PGStrom Leader:海外浩平……
同时,就职于阿里、腾讯、瀚高、探探、平安科技等企业的多位中国PostgreSQL专家也积极参加到海外的社区大会并进行主题分享,已经开始形成全球交流态势。我们都有一个共同的名字:PGer,我们是一群随时愿意与你进行PostgreSQL经验分享的志愿者,我们爱大象,我们爱PostgreSQL。
回到本书,本书基于最新的PostgreSQL 10进行编写,重点在于通过实际操作为读者全方位解读PostgreSQL的强大能力。从安装配置、连接使用、数据管理、体系架构,到NoSQL操作、性能优化、集群部署、分布式、分片、地理信息,面面俱到。
如果你是一位 PostgreSQL 的初学者,建议你可以先参考其他入门类PostgreSQL书籍,夯实基础;在工作过程中,按企业及业务的需求,再参考本书各个章节来解决实际问题,本书中的实际操作演示将大大缩短参考官方文档进行摸索的时间。当然在两位作者的精心编排下,本书所规划的学习路线,也正适合有一定PostgreSQL基础的人自行学习及提高,为日后的数据库管理工作做好准备。
本书绝对是一本值得存放于身旁的PostgreSQL参考书,特别是性能分析、集群、分片、地理信息等高技术含量的章节,可以作为日常工作的有效参考。
最后,在此祝愿本书读者开卷有益,也期待看到更多 PostgreSQL 作品在中国面世,PostgreSQL的发展离不开每一位 PGer 的贡献。
中国开源软件推进联盟Postgres分会会长
Postgres中国用户会2015-2018屇主席
萧少聪
2018年4月25日
媒体评论
——萧少聪,中国开源软件推进联盟Postgres分会会长,Postgres中国用户会2015-2018屇主席
Francs和文升都是我的好朋友,是非常铁杆的PGer,有非常丰富的PG实战经验,本书是他们多年经验的沉淀,为他们的分享精神喝彩。作为已有一定PostgreSQL经验的读者,本书是一个非常好的指引。作为老铁,相信本书定会有令人耳目一新的地方。
——Digoal
本书内容安排独特,避开同类图书的常规内容框架,从PostgreSQL的有用特性深入展开,显示出作者匠心。写书非易事,能深夜奋笔疾书、能上心布局谋篇者,其所出之品凝聚作者们多年行业一线经验和心血,当有其所值。
——李海翔,那海蓝蓝
在开源数据库领域,PostgreSQL跟MySQL可谓一时瑜亮,相得益彰。张文升是我的好朋友和前同事,他有多年PostgreSQL的实战经验,同时他是一个追求卓越、一丝不苟的技术极客,相信本书的出版,会对PostgreSQL的技术普及起到重要作用。
——周彦伟,极数云舟CEO、《MySQL运维内参》作者、中国MySQL用户组主席
如果MySQL闭源,中国将会怎样?在中兴事件炒得沸沸扬扬的今天,PostgreSQL中国社区的两位先锋张文升和谭峰联合出击,继续在中国推广世界上功能最强大的开源数据库PostgreSQL!两位一直都战斗在第一线,分享出多年的心血和积淀!内容值得期待!
——赵振平,太阳塔科技创始人,《oracle数据库精讲与疑难解析》作者
本书的两位作者谭峰、张文升是PostgreSQL中国社区的资深PGer,他们在PostgreSQL数据库领域有丰富的实践经验,相信不管是初学者还是有一定PostgreSQL经验的DBA,读了这本书,都会有很大收获。
——唐成,《PostgreSQL修炼之道:从小工到专家》作者
近几年国内PostgreSQL用户群体日益壮大,产生了对PostgreSQL的开发和运维人员的大量需求。本书从PostgreSQL实践出发,深入介绍了PostgreSQL数据库主要特性,内容详实,是PostgreSQL从业者值得一读的好书。
——彭煜玮(博士),武汉大学计算机学院副教授,《PostgreSQL数据库内核分析》作者