云客户?
免费开始>
在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用户和数据库。修改相关值以匹配您的具体环境:

创建人工用户和数据库
用PASSWORD创建用户artifactory创建数据库artifactory WITH OWNER=artifactory ENCODING='UTF8';授予数据库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:///artifactory username: artifactory password: password


  3. 启动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加密功能,请设置sslmode财产verify-fullJDBC连接器URL

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

共享:数据库:…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证书。

版权所有©2023 JFrog Ltd.