搜索

3.3. 准备远程 PostgreSQL 数据库

download PDF

在远程数据库环境中,您必须在运行 engine-setup 前手动创建管理器数据库。

注意

engine-setupengine-backup --mode=restore 命令只支持 en_US.UTF8 区域中的系统错误消息,即使系统区域设置不同。

postgresql.conf 文件中的区域设置必须设置为 en_US.UTF8

重要

数据库名称必须包含数字、下划线和小写字母。

启用 Red Hat Virtualization Manager 存储库

您需要登录并使用 Red Hat Subscription Manager 注册数据库机器,附加 Red Hat Virtualization Manager 订阅并启用 Manager 软件仓库。

流程

  1. 使用 Content Delivery Network 注册您的系统,在提示时输入您的客户门户网站用户名和密码:

    # subscription-manager register
    注意

    如果您使用 IPv6 网络,请使用 IPv6 转换机制来访问 Content Delivery Network 和 subscription Manager。

  2. 查找 Red Hat Virtualization Manager 订阅池并记录池 ID:

    # subscription-manager list --available
  3. 使用池 ID 将订阅附加到系统:

    # subscription-manager attach --pool=pool_id
    注意

    查看当前附加的订阅:

    # subscription-manager list --consumed

    列出所有启用的软件仓库:

    # dnf repolist
  4. 配置存储库:

    # subscription-manager repos \
        --disable='*' \
        --enable=rhel-8-for-x86_64-baseos-eus-rpms \
        --enable=rhel-8-for-x86_64-appstream-eus-rpms \
        --enable=rhv-4.4-manager-for-rhel-8-x86_64-rpms \
        --enable=fast-datapath-for-rhel-8-x86_64-rpms \
        --enable=jb-eap-7.4-for-rhel-8-x86_64-rpms \
        --enable=openstack-16.2-cinderlib-for-rhel-8-x86_64-rpms \
        --enable=rhceph-4-tools-for-rhel-8-x86_64-rpms \
        --enable=rhel-8-for-x86_64-appstream-tus-rpms \
        --enable=rhel-8-for-x86_64-baseos-tus-rpms
  5. 将 RHEL 版本设置为 8.6:

    # subscription-manager release --set=8.6
  6. 启用 postgresql 模块的版本 12。

    # dnf module -y enable postgresql:12
  7. 启用 nodejs 模块的版本 14:

    # dnf module -y enable nodejs:14
  8. 同步安装的软件包,将它们更新至最新可用版本。

    # dnf distro-sync --nobest

其它资源

有关模块和模块流的详情,请参考安装、管理和删除用户空间组件中的以下部分

初始化 PostgreSQL 数据库

  1. 安装 PostgreSQL 服务器软件包:

    # dnf install postgresql-server postgresql-contrib
  2. 初始化 PostgreSQL 数据库实例:

    # postgresql-setup --initdb
  3. 启用 postgresql 服务,并将其配置为在机器引导时启动:

    # systemctl enable postgresql
    # systemctl start postgresql
  4. postgres 用户身份连接到 psql 命令行界面:

    # su - postgres -c psql
  5. 创建默认用户。Manager 的默认用户是 engine

    postgres=# create role user_name with login encrypted password 'password';
  6. 创建数据库。Manager 的默认数据库名称是 engine

    postgres=# create database database_name owner user_name template template0 encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';
  7. 连接到新数据库:

    postgres=# \c database_name
  8. 添加 uuid-ossp 扩展:

    database_name=# CREATE EXTENSION "uuid-ossp";
  9. 如果 plpgsql 语言不存在,请添加 plpgsql 语言:

    database_name=# CREATE LANGUAGE plpgsql;
  10. 退出 psql 接口:

    database_name=# \q
  11. 编辑 /var/lib/pgsql/data/pg_hba.conf 文件以启用 md5 客户端身份验证,以便引擎可以远程访问数据库。紧接在文件底部的以 local 开头的行下方。将 X.X.X.X 替换为 Manager 或数据仓库机器的 IP 地址,并将 0-320-128 替换为 CIDR 掩码长度:

    host    database_name    user_name    X.X.X.X/0-32    md5
    host    database_name    user_name    X.X.X.X::/0-128   md5

    例如:

    # IPv4, 32-bit address:
    host    engine    engine    192.168.12.10/32    md5
    
    # IPv6, 128-bit address:
    host    engine    engine    fe80::7a31:c1ff:0000:0000/96   md5
  12. 允许到数据库的 TCP/IP 连接。编辑 /var/lib/pgsql/data/postgresql.conf 文件并添加以下行:

    listen_addresses='*'

    这个示例将 postgresql 服务配置为侦听所有接口上的连接。您可以通过提供 IP 地址来指定接口。

  13. 更新 PostgreSQL 服务器配置。在 /var/lib/pgsql/data/postgresql.conf 文件中,在文件的底部添加以下行:

    autovacuum_vacuum_scale_factor=0.01
    autovacuum_analyze_scale_factor=0.075
    autovacuum_max_workers=6
    maintenance_work_mem=65536
    max_connections=150
    work_mem=8192
  14. 打开用于 PostgreSQL 数据库连接的默认端口,并保存更新的防火墙规则:

    # firewall-cmd --zone=public --add-service=postgresql
    # firewall-cmd --permanent --zone=public --add-service=postgresql
  15. 重启 postgresql 服务:

    # systemctl restart postgresql
  16. (可选)将 SSL 设置为安全数据库连接。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.