以独立安装的形式创建 PostgreSQL 数据库
从版本 2021.2 开始,您可以将 Tableau Server 存储库作为独立安装单独托管。这与使用托管云服务(例如 AWS RDS 或 Azure Database)不同。此配置可以在本地、AWS EC2 或 Azure VM 上完成。Tableau Server 存储库的此类安装将称为独立外部存储库。
若要查看可用于外部存储库的主机的完整列表,请参见Tableau Server 外部存储库。
本主题提供有关 Tableau Server 连接到 PostgreSQL 安装并将其用作 Tableau Server 外部存储库所需的要求和配置的指南。本主题未向您提供有关如何安装 PostgreSQL 的详细说明。我们建议您按照 PostgreSQL 站点上的文档操作来获取此信息。
要求和建议
硬件推荐配置:CPU 和存储取决于您的要求。对于较小的安装,您应该至少有 50 GB 的磁盘存储空间,以及一个带有 32 GB RAM 的四处理器(或 4 个虚拟内核)系统。查看本主题中的指南以计算备份和还原的磁盘空间要求。一般建议是开始时配备更多的硬件资源,并在监控后缩减。
网络:PostgreSQL 数据库实例必须可通过 Tableau Server 群集中的所有节点访问。可实现此目的的方法之一是:将 PostgreSQL 数据库实例设为安全组的成员,该安全组具有必要的权限,使 Tableau Server 群集中的所有节点都能够访问。
- 版本兼容性:PostgreSQL 版本应与本地安装时 Tableau Server 存储库的版本相匹配。有关兼容性的详细信息,请参见产品兼容性。
安全性:Tableau Server 和外部存储库之间使用 SSL 的安全连接不是必需的,但建议设置。
如果您不想在 Tableau Server 和外部存储库之间设置安全连接,则应配置独立的 PostgreSQL 数据库以允许未加密的连接。
创建独立的 PostgreSQL 数据库实例
步骤 1:安装并初始化 PostgreSQL
- 使用 PostgreSQL 文档安装 PostgreSQL 数据库实例以用作 Tableau Server 的外部存储库。您可能希望设置 PostgreSQL 数据库群集以满足您可能有的任何高可用性要求。
安装包含 uuid-ossp 扩展程序的 contrib 包。此模块用于生成 Tableau Server 用于数据库中的密钥的 UUIDS。
- 初始化 PostgreSQL 实例。
步骤 1:配置您的 PostgreSQL 实例
您将使用两个配置文件来配置您的 PostgreSQL 实例:
pg_hba
:这是基于主机的身份验证的配置文件。postgresql.conf
:这是通用的服务器配置文件。
默认情况下,这些文件位于以下位置:
/var/lib/pgsql/12/data
(此位置可能因发行版本而异)
超级用户设置
选择满足您要求的用户名。我们建议使用 postgres 作为管理员用户名。如果选择使用其他用户名,请确保用户名不以 pg 开头。用户名也不能是 rails、tblwgadmin、tableau、readonly 或 tbladminviews。
这是外部存储库与 Tableau Server 正常配合工作的要求。
网络和安全
确保所有 Tableau Server 节点都可访问数据库实例。这通常涉及创建一个允许通过节点访问的安全组。
数据库选项
该端口可以为任意端口,但我们建议将其保留为默认值 5432
。
更新参数
从 Tableau Server 的角度来看,可以将实例的大多数参数值设置为默认值。如果您有特定的性能或日志记录要求,您可以修改参数值,但我们强烈建议将以下参数设置为默认值并且不要更改:
standard_conforming_strings
escape_string_warning
我们还建议将 work_mem
的值至少设置为 16384
以帮助避免性能问题。
配置远程连接
使用以下步骤来更新配置文件:
默认情况下,
postgresql.conf
中的配置配置为仅侦听本地连接。通过在postgresql.conf
文件的 connections 和 authentication 部分进行以下更改来启用远程连接:添加此行以允许远程连接:
listen_addresses = '*'
- 重新启动 PostgreSQL 实例。
配置 SSL
Tableau Server 和外部存储库之间的安全连接不是必需的,但建议使用。
若要在 Tableau Server 和外部存储库之间配置加密连接,请按照以下指南和详细步骤进行操作:
将 Tableau Server 配置为使用独立 PostgreSQL 数据库实例时,您需要提供受信任的根证书颁发机构 (CA),用于验证与服务器的连接。理想情况下,独立 PostgreSQL 实例的服务器证书应指定可解析的主机名,以便 Tableau Server 可以使用 sslmode verify-full。此模式验证 PostgreSQL 服务器的证书是否由受信任的 CA 签名,并且 PostgresSQL 服务器证书中的主机名与用于连接到 PostgreSQL 实例的主机名匹配。但是,如果这是不可能的,sslmode verify-ca 将仅验证 Postgres 服务器的证书是否由受信任的 CA 签名。
以下过程提供了在 PostgreSQL 服务器上生成根 CA 证书的一般步骤。有关更详细的信息,请阅读 PostgreSQL 网站上的 SSL 文档(链接指向版本 12):
生成签名根证书颁发机构 (CA) 密钥。
- 创建根 CA 证书。
为 PostgreSQL 服务器创建证书和相关密钥(例如 -
server.csr
和server.key
)。证书的使用者名称必须与 PostgreSQL 服务器的 DNS 名称匹配。使用者名称使用 -subj 选项设置,格式为“/CN=<private DNS name>
”。- 使用您在步骤 2 中创建的 CA 证书为新证书签名。
将证书和密钥文件复制到数据目录 (
/pgsql/<version>/data
)。pg_hba.conf
文件控制与数据库的连接。添加以下一行以允许远程连接。例如:host all all 10.0.0.0/8 md5
若要启用 SSL,请添加或使用以下内容更新
postgresql.conf
文件:ssl = on
若要将连接限制为仅 SSL,请使用 hostssl 而不是 host。
高可用性和灾难恢复
Tableau Server 不会为外部存储库管理或设置高可用性。PostgreSQL 数据库支持用于这些目的的多种解决方案,包括复制和日志传送。有关详细信息,请参见 PostgreSQL 网站上的高可用性文档。
在发生灾难时,如果您需要设置新的 PostgreSQL 实例,请确保按照以下步骤将 Tableau Server 配置为使用新实例。
创建新的 JSON 设置文件,其中包含新 RDS 实例的连接信息。有关创建 JSON 设置文件的详细信息,请参见随外部 PostgreSQL 存储库一起安装 Tableau Server中的步骤 1。
使用
tsm topology external-services repository replace-host
命令将 Tableau Server 指向新的 PostgreSQL 实例。有关
tsm topology external-services repository replace-host
命令的详细信息,请参见tsm topology。
谁可以执行此操作
只有 Tableau Server 管理员可以将 Tableau Server 配置为使用外部存储库。如果您使用 AWS EC2 或 Azure VM 来设置独立的外部存储库,则需要拥有访问这些平台的帐户。