4.13. 在 Satellite 中使用外部数据库


Satellite 安装过程包括在与 Satellite 服务器相同的主机上安装 PostgreSQL 数据库。在某些 Satellite 部署中,使用外部数据库而不是默认的本地数据库有助于服务器负载。

4.13.1. 使用外部数据库配置 Satellite 服务器

运行 satellite-installer 命令,用于安装 Satellite 服务器,还要在服务器上安装 PostgreSQL 数据库。但是,您可以将 Satellite 服务器配置为改用外部数据库。移到外部数据库分发工作负载,并可减少整个 Satellite 内存用量。

注意

红帽不提供对外部数据库维护的支持或工具。如果您使用外部数据库部署 Satellite,则需要自己支持和维护外部数据库。

如果您计划在以下情况下使用 Satellite 部署,请考虑使用外部数据库:

  • 频繁的远程执行任务。这需要在 PostgreSQL 中有大量记录,并生成繁重的数据库工作负载。
  • 来自频繁存储库同步或内容视图发布的高磁盘 I/O 工作负载。这要求 Satellite 在 PostgreSQL 中为每个作业创建一个记录。
  • 大量主机。
  • 大量同步内容。

4.13.2. PostgreSQL 作为外部数据库注意事项

Foreman、Katello 和 Candlepin 使用 PostgreSQL 数据库。如果要将 PostgreSQL 用作外部数据库,可以帮助您确定此选项是否适合您的 Satellite 配置。Satellite 支持 PostgreSQL 版本 13。

外部 PostgreSQL 的优点

  • 在 Satellite 上增加可用内存和可用 CPU
  • 在 PostgreSQL 数据库中将 shared_buffers 设置为一个高数字的灵活性,而不会干扰 Satellite 上的其他服务
  • 在不影响 Satellite 操作的情况下,调整 PostgreSQL 服务器系统的灵活性

外部 PostgreSQL 的缺点

  • 增加了部署复杂性,导致故障排除更困难
  • 外部 PostgreSQL 服务器是一个额外的系统来补丁和维护
  • 如果 Satellite 或 PostgreSQL 数据库服务器出现硬件或存储故障,则 Satellite 无法正常工作
  • 如果 Satellite 服务器和数据库服务器之间存在延迟,则性能可能会会受到影响

如果您怀疑 Satellite 上的 PostgreSQL 数据库会导致性能问题,请使用 Satellite 6 中的信息:如何启用 postgres 查询日志记录来检测运行查询的速度,以确定您是否有缓慢的查询。超过一秒的查询通常是由大型安装的性能问题造成的,而迁移到外部数据库可能并不能提供帮助。如果您有较慢的查询,请联系红帽支持团队。

4.13.3. 安装 PostgreSQL

您只能在内部数据库安装过程中安装 satellite-installer 工具安装的相同版本的 PostgreSQL。Satellite 支持 PostgreSQL 版本 13。

先决条件

  • 准备的主机必须满足 Satellite 存储要求
  • 准备的主机启用了基本操作系统存储库。

流程

  1. 在您的新数据库服务器中安装 PostgreSQL:

    # dnf install postgresql-server postgresql-contrib
    Copy to Clipboard Toggle word wrap
  2. 初始化 PostgreSQL 数据库:

    # postgresql-setup --initdb
    Copy to Clipboard Toggle word wrap
  3. 编辑 /var/lib/pgsql/data/postgresql.conf 文件:

    # vi /var/lib/pgsql/data/postgresql.conf
    Copy to Clipboard Toggle word wrap

    请注意,需要调整外部 PostgreSQL 的默认配置,才能使用 Satellite。以下是推荐进行的外部数据库配置调整:

    • checkpoint_completion_target: 0.9
    • max_connections: 500
    • shared_buffers: 512MB
    • work_mem: 4MB
  4. 删除 #,编辑相关内容以侦听入站连接:

    listen_addresses = '*'
    Copy to Clipboard Toggle word wrap
  5. 在文件末尾添加以下行以使用 SCRAM 进行身份验证:

    password_encryption=scram-sha-256
    Copy to Clipboard Toggle word wrap
  6. 编辑 /var/lib/pgsql/data/pg_hba.conf 文件:

    # vi /var/lib/pgsql/data/pg_hba.conf
    Copy to Clipboard Toggle word wrap
  7. 在文件中添加以下行:

      host  all   all   Satellite_ip/32   scram-sha-256
    Copy to Clipboard Toggle word wrap
  8. 启动并启用 PostgreSQL 服务:

    # systemctl enable --now postgresql
    Copy to Clipboard Toggle word wrap
  9. 打开 postgresql 端口:

    # firewall-cmd --add-service=postgresql
    Copy to Clipboard Toggle word wrap
  10. 使更改具有持久性:

    # firewall-cmd --runtime-to-permanent
    Copy to Clipboard Toggle word wrap
  11. 切换到 postgres 用户,启动 PostgreSQL 客户端:

    $ su - postgres -c psql
    Copy to Clipboard Toggle word wrap
  12. 创建三个数据库和专用角色:一个用于 Foreman,一个用于 Candlepin,另一个用于 Pulp:

    CREATE USER "foreman" WITH PASSWORD 'Foreman_Password';
    CREATE USER "candlepin" WITH PASSWORD 'Candlepin_Password';
    CREATE USER "pulp" WITH PASSWORD 'Pulpcore_Password';
    CREATE DATABASE foreman OWNER foreman;
    CREATE DATABASE candlepin OWNER candlepin;
    CREATE DATABASE pulpcore OWNER pulp;
    Copy to Clipboard Toggle word wrap
  13. 退出 postgres 用户:

    # \q
    Copy to Clipboard Toggle word wrap
  14. 在 Satellite 服务器中,测试您可以访问数据库。如果连接成功,命令会返回 1

    # PGPASSWORD='Foreman_Password' psql -h postgres.example.com -p 5432 -U foreman -d foreman -c "SELECT 1 as ping"
    # PGPASSWORD='Candlepin_Password' psql -h postgres.example.com -p 5432 -U candlepin -d candlepin -c "SELECT 1 as ping"
    # PGPASSWORD='Pulpcore_Password' psql -h postgres.example.com -p 5432 -U pulp -d pulpcore -c "SELECT 1 as ping"
    Copy to Clipboard Toggle word wrap

使用 satellite-installer 命令配置 Satellite 以连接到外部 PostgreSQL 数据库。

前提条件

  • 您已在 Red Hat Enterprise Linux 服务器上安装和配置了 PostgreSQL 数据库。

流程

  1. 要为 Satellite 配置外部数据库,请输入以下命令:

    # satellite-installer \
    --katello-candlepin-manage-db false \
    --katello-candlepin-db-host postgres.example.com \
    --katello-candlepin-db-name candlepin \
    --katello-candlepin-db-user candlepin \
    --katello-candlepin-db-password Candlepin_Password \
    --foreman-proxy-content-pulpcore-manage-postgresql false \
    --foreman-proxy-content-pulpcore-postgresql-host postgres.example.com \
    --foreman-proxy-content-pulpcore-postgresql-db-name pulpcore \
    --foreman-proxy-content-pulpcore-postgresql-user pulp \
    --foreman-proxy-content-pulpcore-postgresql-password Pulpcore_Password \
    --foreman-db-manage false \
    --foreman-db-host postgres.example.com \
    --foreman-db-database foreman \
    --foreman-db-username foreman \
    --foreman-db-password Foreman_Password
    Copy to Clipboard Toggle word wrap

    要为这些外部数据库启用安全套接字层(SSL)协议,请添加以下选项:

    --foreman-db-root-cert <path_to_CA>
    --foreman-db-sslmode verify-full
    --foreman-proxy-content-pulpcore-postgresql-ssl true
    --foreman-proxy-content-pulpcore-postgresql-ssl-root-ca <path_to_CA>
    --katello-candlepin-db-ssl true
    --katello-candlepin-db-ssl-ca <path_to_CA>
    --katello-candlepin-db-ssl-verify true
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat