这是本年度所翻译的第7本书(第6本书Python之 AI人工智能初学者指南2019-尚未完成)。在【已完结】最好用的免费ERP系统Odoo 12开发手册中我已经表明会翻译一本PostgreSQL主题的图书。一个中、大型项目必定离不开数据库的支持,不论使用哪个数据源,得到的结果都是 MySQL 依然是业界采用率最高的数据,对比 PostgreSQL 通常也都在其两倍以上。但Alan还是决定选择PostgreSQL,有多方面的考量,首先从 SQL 层面上来讲,基本都是相通的,尤其是在基础知识和基本原理方面,所以这个角度看选谁都可以。
而 MySQL自从 Oracle 收购之后其实前景在某种程度上是不明朗的,目前新的大版号8.0采用率似乎也不高。另外 PostgreSQL 作为企业级数据库业界还是拥有良好赞誉的,且本站浏览量较高的 Odoo 系列教程使用的正是PostgreSQL,因此我选择了翻译这样一个主题。
PostgreSQL 11 Administration Cookbook
by Simon Riggs, Gianni Ciolli & Sudheer Kumar Meesala
前言
PostgreSQL是一种高级数据库服务,它在大量的平台上均可使用并且在快速成长为全球最流行的服务端数据库之一,其良好的性能、稳定性和大量的高级功能也是声名在外。PostgreSQL是最老的开源项目之一,它的使用完全免费,并且由来自全球的各个社区进行开发。重要的是,它就是好用!
PostgreSQL的一个最清楚的好处是它是开源的,这表示你任意安装、使用和发布PostgreSQL且无需支付任何费用或版权费用。此外,PostgreSQL是一个长期知名的数据库,需要很少甚至无需维护。整体而言,使用PostgreSQL的总体成本很低。
PostgreSQL 11数据库管理员指南提供你需要在PostgreSQL上管理在线生产数据库的相关知识。本书包含来自主作者和2ndQuadrant团队的PostgreSQL复制和还原的直接洞察。这个手册指南将协助操作在线数据库的手册指南,以及使用来自Java, Python, Ruby, and .NET 开发框架所开发的网页或企业软件应用的开发人员。有本书在手,管理数据库将变得 so easy。
这个实践指南给你能用问题的快速解答,并且集合了作者作为培训师、用户和PostgreSQL数据库服务的核心开发者的经验。
每个技术切面分成了若干小节来演示带有运行代码的解决方案,然后讲解其运行原理及背后的原因。本书旨在成为新用户和技术专业人员的桌面参考手册。
本书涵盖了PostgreSQL 11中所有最新的功能。很快就可以轻松且平滑地运行数据库。
本书适用人员
本书针对系统管理员、数据库管理员、架构师、开发人员及任何计划或正在运行在线生产数据库的想了解PostgreSQL 的人员。本书最适合那些拥有技术背景人员。
本书主要内容
第一章:迈出第一步,向你介绍PostgreSQL 11;讲解如何下载及安装PostgreSQL 11、连接PostgreSQL 11服务、启用服务对网络或远程用户的访问、使用图形化管理工具、使用PSQL查询和脚本工具、安全地修改密码、避免硬编码密码、使用连接服务文件和排查失败的连接。
第二章:探密数据库,演示如何识别你在使用的数据库服务器的版本,以及服务的启动时间。它有且于你定位数据库服务文件、数据库服务消息日志和数据库系统标识符。本章讲解如何在数据库服务器中列出数据库,也包含让你了解数据库中数据表数量、数据库及数据表所使用的磁盘空间、最大的表格是哪个、一个数据表包含多少行、如何在表格中估算行数以及如何理解对象依赖等小节。
第三章:数据库配置,讲解的主题有”阅读精装手册”(RTFM)、如何规划新数据库、如何在程序中修改参数、当前配置设置、非默认设置参数、如何更新参数文件、如何为指定用户组设置参数、基本服务端配置清单列表、如何添加在PostgreSQL服务端中添加外部模块以及如何在省电模式下运行服务。
第四章:服务端控制,提供有关手动启动数据库服务的信息、快速且安全地停止服务、紧急情况下停止服务、重载服务端配置文件、快速重启服务、防止新的连接、限制每个用户一个会话、将用户踢出系统。它包含有且于你选择多租户设计的小节,以及讲解如何使用多schema、给用户私有数据库、在一个系统中运行多个数据库服务及设置连接池等小节。
第五章;数据表及数据,指引你为数据库对象选择良好的名称。此外,本章讲解如何处理带有引号名称的对象、强制同名、维护多字段的相同定义、标识并删除重复行、防止重复行、为一组数据查找一个唯一的键、生成测试数据、随机样本数据、通过电子表格加载数据及通过普通文件加载数据。
第六章:访问权限,包含回收用户对表格访问权限、授权用户访问数据表、创建新用户、临时限制用户连接、删除用户但不删除他的数据、检查所有用户是否有安全密码、为指定用户授有限定的超级用户权限、审计DDL修改、审计数据修改、集成LDAP、使用SSL连接及加密敏感数据等小节。
第七章:数据库管理,包含如编写所有为成功或失败的脚本、编写在第一次错误即退出的PSQL脚本、对多张表执行动作、在数据表添加和删除字段、修改字段的数据类型、添加及删除schema、在schema之间迁移对象、添加及删除数据表空间、在数据表空间之前迁移对象、在其它的PostgreSQL数据库中访问对象及启用待更新视图等有用话题。
第八章:监控及诊断,提供对用户是否已连接、他们运行什么服务、他们是否为活跃或屏蔽、他们被谁所屏蔽、是否有任何人在使用指定表、数据表的最后使用时间、临时数据所使用的磁盘空间大小以及为什么你的查询会变慢等问题的解答。本章还演示如何调查及上报 bug、生成一个日志文件错误的每日总结报告、杀死指定会话及解析一个不确定(in-doubt)已准备的事务。
第九章:常规维护,包含有关如何控制自动化数据库维护、避免自动冻结和页面崩溃、避免事务环绕、删除老的已准备事务、提供对临时表重度用户的解决方案、识别并修复暴增数据表及索引、维护索引、查找未使用索引 、谨慎删除不想要的索引以及规划维护等小节。
第十章:性能和并发,讲解如查找慢速SQL语句、收集来自 pg_stat*视图的常规统计数据、发现什么让SQL变慢、减少返回的行数、简化复杂的SQL、不进行重写加载查询、理解为什么一些查询没有使用索引、强制查询使用索引、使用优先锁以及上报性能问题等主题。当前你还会学习到有关新的并行查询的功能。
第十一章:备份和还原,讲解备份很有必要,虽然有关这个主题只进行了简短的讲解。因此本章通过如何理解和控制崩溃恢复及如何规划备份等小节提供有关备份和还原PostgreSQL数据库有用的信息。此外,学习对一个数据库进行热逻辑备份、对所有数据库热逻辑备份、对数据表空间中的所有数据表热逻辑备份、对数据库对象定义备份、独立的热物理数据库备份、热物理备份以及持续存档。本章还包含所有数据库的还原、还原到某个时间点、还原删除或损坏数据表、还原删除或损坏数据库、还原删除或损坏数据表空间、如何提升备份/还原性能及增量/差量备份和还原等主题。
第十二章:复制和升级,讲解复制并非魔法,虽然它确实很酷。它起作用时会更酷,这是本章所要讨论的。本章涵盖复制的概念、复制的最佳实践、如何设置基于文件的日志传送复制、如何设置流日志复制、如何管理日志传送复制、如何管理热备、同步复制、如何升级到一个新的小发行版、本地大版本升级、大版本在线升级以及逻辑复制和Postgres-BDR。