十一月 3, 2024
PostgreSQL 管理涵盖最重要的 PostgreSQL 数据库服务器管理活动。
第 1 节. 管理数据库
在本节中,您将学习如何在 PostgreSQL 中管理数据库,包括创建数据库、修改现有数据库特性和删除数据库。
- 创建数据库 – 使用
CREATE DATABASE
语句创建一个新数据库。 - 更改数据库 – 使用
ALTER DATABASE
语句修改现有数据库的特性。 - 重命名数据库 – 将数据库名称更改为新名称。
- 删除数据库 – 使用
DROP DATABASE
语句永久删除数据库。 - 复制数据库 – 将数据库复制到数据库服务器内或从服务器复制到另一个服务器。
- 获取数据库对象大小 – 向您介绍各种方便的函数来获取数据库、表和索引的大小。
第 2 节. 管理模式
- 模式 – 介绍模式概念,并解释模式搜索路径在 PostgreSQL 中的工作原理。
- 创建模式 – 向您展示如何在数据库中创建新模式。
- 更改模式 – 重命名模式或更改模式的所有者。
- 删除模式 – 从数据库中删除一个或多个模式及其对象。
第 3 节. 管理表空间
PostgreSQL 表空间允许您控制数据在文件系统中的存储方式。表空间在许多情况下非常有用,例如管理大型表和提高数据库性能。
- 何时使用表空间? – 了解表空间在 PostgreSQL 中何时有用。
- 创建表空间 – 向您介绍 PostgreSQL 表空间,并展示如何通过
CREATE TABLESPACE
语句创建表空间。 - 更改表空间 – 向您展示如何使用
ALTER TABLESPACE
语句重命名、更改表空间所有者以及设置表空间参数。 - 移动表空间 – 了解如何在 PostgreSQL 中移动表空间。
- 删除表空间 – 了解如何使用
DROP TABLESPACE
语句删除表空间。 - 使用临时表空间 – 了解如何使用临时表空间、何时以及为什么使用它。
第 4 节. 角色和权限
PostgreSQL 将帐户表示为角色。可以登录的角色称为登录角色或用户。包含其他角色的角色称为组角色。在本节中,您将学习如何有效地管理角色和组。
- 创建角色 – 向您介绍角色概念,并展示如何使用
CREATE ROLE
语句创建角色和组。 - 授权 – 展示如何向角色授予数据库对象的权限。
- 撤销权限 – 指导您撤销给角色授予的数据库对象权限。
- 使用角色和权限进行授权 – 向您介绍如何使用 PostgreSQL 中的角色和权限进行授权。
- 分配权限 – 展示如何在 PostgreSQL 中分配权限。
- 更改角色 – 展示如何使用
ALTER ROLE
语句修改角色属性、重命名角色以及设置配置参数。 - 删除角色 – 了解如何删除角色,尤其是具有依赖对象的角色。
- 角色成员资格 – 了解如何创建组角色以更好地管理角色成员资格。
- 切换角色 – 展示如何使用
SET ROLE
语句,临时更改数据库会话中的当前角色。 - CURRENT_USER – 了解如何获取当前登录的用户,并向您展示 current_user 和 session_user之间的区别。
- 列出用户角色 – 向您展示如何列出 PostgreSQL 服务器上的所有角色。
- 管理超级用户 – 向您介绍如何管理 PostgreSQL 中的超级用户。
- 行级安全性 – 向您展示如何使用行级安全性(RLS),来限制基于条件的查询返回的行。
- 列级安全性 – 向您展示如何启用列级安全性,来控制对表中各个列的访问。
第 5 节. 安全管理
- 配置 SSL 通信加密 – 向您介绍如何在 PostgreSQL 中使用 SSL 设置通信数据加密。
- 启用 SSL 证书认证 – 向您介绍如何在 PostgreSQL 中启用 SSL 证书身份验证。
- 记录审计日志 – 向您介绍如何在 PostgreSQL 中设置审计日志记录。
- 密码强度检查 – 向您介绍如何在 PostgreSQL 中检查密码强度。
- 防范 SQL 注入攻击 – 向您介绍如何保护 PostgreSQL 免受 SQL 注入攻击。
第 6 节. 备份和恢复数据库
本节向您展示如何使用 PostgreSQL 的各种备份和恢复工具,包括pg_dump
、pg_dumpall
、psql
、pg_restore
、pg_basebackup
和pgAdmin
,来备份和恢复数据库。
- 使用 pg_dump 备份数据库 – 向您介绍使用 PostgreSQL 备份工具备份数据库的实用方法,包括
pg_dump
和pg_dumpall
。 - 恢复一个 pg_dump 备份的数据库 – 向您展示使用
psql
和pg_restore
工具恢复 PostgreSQL 数据库的各种方法。 - 使用 pg_basebackup 备份数据库实例 – 向您介绍如何使用
pg_basebackup
备份您的数据库实例。 - 恢复一个 pg_basebackup 生成的备份 – 向您展示如何恢复一个
pg_basebackup
生成的备份。 - 自动备份数据库 – 向您介绍如何自动化 PostgreSQL 的备份过程。
- 启用 WAL 归档 – 向您介绍如何在 PostgreSQL 中启用 WAL 归档。
- 设置 WAL 归档命令 – 向您介绍如何在 PostgreSQL 中设置 WAL 归档命令。
第 7 节. 复制技术
复制是实现高可用性的最重要方面之一。数据库服务器上的任何意外故障都可能导致应用程序或业务停机。因此,配置复制是正确的做法,可以确保在发生灾难时可以选择执行故障转移。
- 设置流复制 – 指导您设置流复制部署。
- 设置逻辑复制 – 指导您设置逻辑复制部署。
- 使用 pg_rewind 重新同步已降级的主机 – 向您介绍,对于从复制集群中分离出来的原主服务器,如何将其作为备用服务器快速重新添加到集群中。
- 使用 repmgr 实现自动故障转移 – 指导您设置和配置 repmgr,以实现自动故障转移。
- 使用 Logstash 将数据同步到 Elasticsearch – 指导您设置 Logstash,让 Elasticsearch 与 PostgreSQL 数据库保持同步。
第 8 节. PostgreSQL 技巧
- 重置密码 – 向您展示如何重置忘记的 postgres 用户密码。
- psql 命令 – 为您提供最常用的 psql 命令,帮助您更快、更有效地从 PostgreSQL 查询数据。
- 查看表结构 – 获取特定表的信息。
- 查看数据库 – 列出当前数据库服务器中的所有数据库。
- 列出表 – 显示当前数据库中的所有表。
- 移动 pg_wal 目录 – 将存储 WAL 段的 pg_wal 目录,移动到其他磁盘或更快的磁盘。
- 重置累积的统计信息 – 向您介绍 pg_stat_reset 函数的作用、何时会发生统计信息的重置,以及它对 PostgreSQL 数据库的影响。
- 检查 PostgreSQL 版本 – 向您介绍在系统上检查 PostgreSQL 版本的各种方法。
- 以最短的停机时间启用数据校验和 – 向您介绍如何在 PostgreSQL 中,以最短的停机时间启用数据校验和。
- 使用 Linux cgroup2 控制资源消耗 – 向您介绍如何使用 Linux cgroup2,控制 PostgreSQL 服务器上的资源消耗。