RPM 软件包安装
RPM 是一种软件包格式,它最早是由 Red Hat 开发和发布,并广泛使用于 Red Hat Linux 的发行版及其衍生版本,如:CentOS Linux,Oracle Linux。Redrock Postgres 提供了 RPM 格式的软件包,您可以在 Red Hat 和 CentOS 上面下载进行安装。
使用您的root
帐户登录到主机,并运行以下命令来查询已安装的软件包,确保没有安装过 postgresql 相关的软件包:
# rpm -qa | grep postgresql
下载 Linux 的 RPM 软件包,并执行以下命令进行安装:
# tar xf redrock-<version>.linux.x86_64-rpm.tar.gz
# cd redrock-<version>.linux.x86_64-rpm
# rpm -ivh redrock-libs-<version>.x86_64.rpm
# rpm -ivh redrock-client-<version>.x86_64.rpm
# rpm -ivh redrock-server-<version>.x86_64.rpm
在上面的命令中,version 的值表示 Redrock Postgres 的版本号,例如:2.2-1
您还可以根据您的需要安装其他软件包。
表 1. Redrock Postgres RPM 软件包
包名称 | 概述 |
---|---|
redrock-client |
主要客户端和库以及文档 |
redrock-server |
服务器可执行文件和数据文件 |
redrock-libs |
客户端共享库 |
redrock-docs |
额外的文档,例如教程文件 |
redrock-contrib |
插件汇总以及选定的二进制文件 |
redrock-plscheme |
PL/Scheme 过程语言 |
使用 RPM 软件包的标准安装 Redrock Postgres 会导致在系统目录下创建文件和资源,如下表所示。
表 2. Redrock Postgres 安装布局
文件或资源 | 位置 |
---|---|
可执行文件 | /usr/pgsql-12/bin |
程序库 | /usr/pgsql-12/lib |
服务端和插件文档 | /usr/pgsql-12/doc |
数据 | /var/lib/pgsql/12/data |
模板和其他共享数据 | /usr/pgsql-12/share |
安装还会在系统上创建一个名为postgres
的用户和一个名为postgres
的组。
安装软件包后,需要初始化和配置数据库。
PostgreSQL 数据目录包含数据库的所有数据文件。环境变量PGDATA
用于指定数据目录路径。
默认数据目录为:/var/lib/pgsql/12/data
如果不想使用默认的数据目录,可以进入到一个自定义的挂载目录(例如:/u01),然后创建一个postgres
用户为拥有者的文件夹pgdata
:
# cd /u01
# mkdir pgdata
# chown postgres:postgres pgdata
然后,编辑 postgresql 服务:
# systemctl edit postgresql.service
进入到自定义的数据目录,该目录应该具有主机中大部分的可用磁盘空间,复制该目录路径并粘贴到服务文件中:
[Service]
Environment=PGDATA=/u01/pgdata
执行类似如下的命令,在PGDATA
中初始化数据库:
# /usr/pgsql-12/bin/postgresql-setup initdb
如果您希望 PostgreSQL 在操作系统开机启动时自动运行,请执行以下操作:
# systemctl enable postgresql.service
要控制数据库服务,请使用:
# systemctl <command> postgresql.service
其中的 command 可以为:
- enable : 启用开机启动
- start : 启动数据库
- stop : 停止数据库
- restart : 重启数据库; 主要用于重要参数的变更生效
- reload : 在数据库运行过程中更新配置参数
例如,要启动数据库服务,请使用:
# systemctl start postgresql.service
修改数据目录下的pg_hba.conf
文件,以定义从网络中其他主机访问 PostgreSQL 服务器使用的访问控制策略,修改 IPv4 网络访问控制策略:从本机地址 127.0.0.1 更改为接受所有主机访问请求。找到下面行:
# IPv4 local connections:
host all all 127.0.0.1/32 md5
并将其更改为:
# IPv4 local connections:
host all all 0.0.0.0/0 md5
修改数据目录下的postgresql.conf
文件,通过取消注释以下参数行并设置参数值为 * 而不是 localhost 来允许来自所有主机的访问连接:
listen_addresses = '*'
重启数据库服务以更新配置参数:
# systemctl restart postgresql.service
在生产环境中,还应设置 TLS 安全通信,并且应考虑配置数据复制或基于快照的备份。有关这些配置,请参阅 PostgreSQL 在线文档。