本章涵盖了管理 Postgresql服务器需要了解的一些基本操作,包括角色与权限管理
database的创建、安装扩展包、数据备份与恢复等。在开始之前,请先安装好 Postgresql
及其相应的管理工具,并且要保证自己有权任意地调整和使用该套环境。
2.1配置文件
-
配置文件包含以下三个
-
postgresql. conf
-
通用设置,
- 内存分配、
- 新建database的默认存储位置、
- 服务器的IP、
- 日志位置以及许多其他
-
pg__hba.conf
- 控制服务器的访问权限,
- 允许哪些用户连接到哪个数据库,
- 允许哪些IP连接到本服务器,
- 指定连接时使用的身份验证模式。
-
pg_ident.conf
- 如果存在,
- 则系统会基于文件内容将当前登录的操作系统用户映射为一个Postgresql数据库内部用户的身份来登录
- 有些人会把操作系统的root用户映为Pg的postgres超级用户账号
- 如果安装过程中用默认配置,则上述文件位于主数据文件夹。
- 任何文本编辑器来编辑这些文件,或者在 pgadmin的 Admin Pack页面上修改,详情请参见4.2.3节。
- 如果你不确定这些文件的具体位置,以超级用户身份连接到任何
个数据库上并执行示例2-1中的査询语句即可找到。
2.1.1让配置文件生效
2.6扩展包机制
- extension是用于扩展功能的插件机制,前身称“contrib”
- 该机制体现开源界优势:
- 人们互相协作、共同开发并自由分享新的功能
- 一台Pg服务器,不是每个database都要安装全部扩展包,只当某个 database的确需要此扩展包提供的功能时オ安装
- 服务器上的所有database都要某些扩展包,
- 可新建一个模板数据库(模板数据库见2.4.1节),
- 然后在此模板数据库中预先安装好这些扩展包,
- 后续的database就能以此模板数据库为基础来创建
- 定期检査并卸载不再需要的扩展包
- 将不再需要的老扩展包保留在系统中可能会在Pg升级过程中引发问题,
- 升级后的 Postgresql中需把这些扩展包所含有的对象原地重建一遍
- 某个database中安装哪些扩展包,可连接到该database,
- 然后执行
- Postgresql服务实例中所有database安装的所有扩展包,
- WHERE installed version IS NOT NULL删掉。
- 某个database中已安装的扩展包的更多详细内容
- 或
- 显示该扩展包中包含哪些内容:
- 护展包中含各类数据库对象,
- 函数、表、数据类型、数据类型转换器、编程语言、
- 运算符
- 函数常占大部分。
2.6.1扩展包的安装
- 两步:
- 下载安装包并安装到数据库服务器上;
- 将此扩展包安装到目标 database
- 也介绍在不支持extension扩展包机制的老版本上安装contrib扩展包
步骤一:将扩展包安装到数据库服务器
- 根据操作系統的不同而有所不同。
- 先下载该扩展包的安装文件以及所依赖的库文件
- 然后分别复制到操作系统的bin和lib,
- 同时把SQL脚本文件复制到share/ extension
- (9.1版及之后)或share/contrib(9.1之前)
- 对较小的扩展包,其所需的很多库文件在Postgresql安装好以后就有了,没有的话可通过yum或 apt get postgresql- contrib获取
- 以上方式获取不到的库文件,要么自行编译,
- 要么找一下别人已经编译好的安装包,
- 要么从另一台环境完全相同的服务器上把库文件复制
- 对POSTGIS这类较大的扩展包,
- 可从你下载 Postgresql的站点下载到完整的安装包。
- 当前服务器上有哪些扩展包可用,执行
步骤二:将扩展包安装到指定的 database中
- CREATE EXTENSI0N将扩展包安装到指定的database
- 相比原来的安装方法,该新机制三大优点:
- 用户不需弄清扩展包文件存放的具体路径(share/extension);
- DROP EXTENSION方便卸载扩展包
- 支持査看当前已安装和可安装的扩展包列表。
- Postgresql安装包中已经附带了最常用的若干扩展包。
- Postgresql Extension Network站点可以下载到 Postgresql安装包中默认未附带的扩展包
- Github站点上也有很多Postgresql扩展包,
- postgresql extension”就能找到
- 仍可用psql以非交互方式安装扩展包
- 先连接到需要安装此扩展包的database,
- 执行