2 数据库管理


本章涵盖了管理 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,
  • 执行

在这里插入图片描述

在这里插入图片描述

发布了597 篇原创文章 · 获赞 301 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/105658083