云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





PostgreSQL概述

通过使用PostgreSQL,您可以受益于PostgreSQL基础设施中的特性,例如备份和恢复。

单节点建立PostgreSQL数据库

为了让JFrog Artifactory作为一个单独的节点与PostgreSQL一起运行,你必须创建一个专用的PostgreSQL数据库实例,然后配置Artifactory来使用它,如下节所述。请按照指南中的说明操作PostgreSQL的网站(例如https://www.postgresql.org/docs/)/tutorial-install.html)获取详细信息。

设置PostgreSQL高可用性数据库

您可以在高可用性下运行外部PostgreSQL数据库,以提高弹性(可从Artifactory版本7.31.10和Postgres 13获得)。有关在高可用模式下设置PostgreSQL数据库的信息,请参见PostgreSQL数据库的高可用性

最佳实践

为了避免Artifactory数据库事务的延迟,您应该在PostgreSQL HA中将复制声明为异步。复制延迟取决于几个因素,包括设置、网络延迟和数据库负载。除了声明异步复制之外,为了尽量减少发生故障转移时数据丢失的可能性,还应该声明异步复制监视复制延迟并采取避免的步骤.有关如何做到这一点的具体信息,请阅读replay_lag列,它近似于查询可以看到最近事务之前的延迟。


从远程服务器启用PostgreSQL连接

下面以从远程服务器启用PostgreSQL连接为例。向您的安全团队咨询您组织的最佳实践。

  1. 添加下面的行到< postgres_mount > /数据/ pg_hba.conf。
    例如,如果您使用PostgreSQL 12,文件的默认位置是/etc/postgresql/12/main/pg_hba.conf

    主机[artifactory_db_name] [artifactory_user] [cidr] md5
    例子
    主机artifactory artifactory 123.456.78.90/32 md5

    (cidr]是您想要访问的单个主机或网段。

  2. 添加下面的行到< postgres_mount > /数据/ postgresql.conf listen_addresses =‘*’

    您也可以使用特定的IP地址为PostgreSQL服务器监听。

  3. 添加上述更改后重新启动PostgreSQL。

    您可以查看PostgreSQL日志,查看是否应用了该配置。日志的默认位置是/var/log/postgresql/postgresql——<版本> -main.log
页面内容

创建PostgreSQL数据库

支持的PostgreSQL版本

Artifactory支持PostgreSQL版本13。X及以下(2021年的EOL为9.5和9.6)。

使用下面的命令创建一个具有适当权限的Artifactory用户和数据库。修改相关值以匹配您的特定环境:

创建一个Artifactory用户和数据库
CREATE USER artifactory WITH PASSWORD创建一个UTF8的数据库授予数据库artifactory上的所有特权给artifactory;

一旦您验证了脚本是正确的,您就需要运行它来创建数据库并继续配置数据库。

Artifactory特权

我们建议为Artifactory提供数据库上的全部特权。



配置Artifactory使用PostgreSQL

当您将Artifactory配置为使用PostgreSQL时,所有的工件信息都存储在PostgreSQL中,而工件二进制数据存储在文件系统中$ JFROG_HOME / artifactory / var /数据/ artifactory / filestore).

虽然可以在PostgreSQL中存储blob,但我们不推荐这样做。这一点很重要,因为PostgreSQL驱动程序不支持将长度未知的blob流到数据库中。因此,Artifactory临时将部署的文件保存到文件系统中,然后才将BLOB保存到数据库中。

配置Artifactory使用PostgreSQL单节点

  1. 停止Artifactory服务。

  2. 中的数据库连接详细信息system.yamlconfiguration file如下。

    shared: database: type: postgresql driver: org.postgresql.Driver url: jdbc:postgresql://<您的db url,例如:localhost:5432>/artifactory username: artifactory password:密码


  3. 启动Artifactory服务。

配置Artifactory HA使用PostgreSQL数据库

从Artifactory 7.31.10提供。

  1. 停止Artifactory服务。

  2. 编辑system.yaml文件更新以下值。

    因为Artifactory使用多个驱动程序,您需要分别为这些驱动程序配置连接字符串。


    1. url场下共享数据库部分的如下格式。

      jdbc:postgresql://< postgresql Database 1 URL>…, /artifactory?targetServerType =主
    2. url场下元数据数据库部分的如下格式。

      jdbc:postgresql://< postgresql Database 1 URL>…, /artifactory?target_session_attrs =读写”

      下面的示例显示了一个示例system.yaml文件配置。

      systemYaml: shared: logging:…数据库:type: postgresql url: "jdbc:postgresql://17.21.0.2:5432,17.21.0.3:5432/artifactory? "targetServerType =主" driver: org.postgresql.Driver username: "artifactory" password: "password" artifactory: Database: ... frontend: ... access: ... metadata: database: type: postgresql url: "jdbc:postgresql://17.21.0.2:5432,17.21.0.3:5432/artifactory?target_session_attrs=read-write" driver: org.postgresql.Driver username: "artifactory" password: "password" ...
  3. 启动Artifactory服务。


启用TLS加密

若要启用PostgreSQL的TLS (Transport Layer Security)加密,请设置sslmode财产verify-fullJDBC连接器URL

例如,在$ JFROG_HOME / artifactory / var / etc / system.yaml文件:

Shared: database:…url: jdbc: postgresql: / / mypostgress.mydomain.com: 5432 / artifactory ? ssl = true&sslfactory = org.postgresql.ssl.jdbc4.LibPQFactory&sslmode =验证- full&sslrootcert = / tmp /服务器。crt……

如果您正在使用旧证书或使用在2020年7月之前创建的AWS RDS实例,则不会启用主题替代名称(SAN)。要解决此问题,需要生成一个新证书与SAN。

版权所有©2022 JFrog Ltd.