备份GoCD服务器

    您的查询搜索没有结果。

    备份GoCD服务器

    您可以使用GoCD的管理界面执行一键备份GoCD。您也可以通过API执行备份。using the API.

    启动备份的步骤

    • 登录到GoCD后,点击管理 > 备份链接,并点击执行备份按钮。

      注意:在备份过程中,GoCD将无法使用。

    • 备份时间与数据库和配置大小成正比。我们建议在GoCD服务器空闲时备份GoCD。登录到GoCD仪表板的用户在备份期间将被重定向到维护页面。备份完成后,他们将被重定向回他们所在的页面。

    什么是备份的内容?

    备份将执行到${ARTIFACT_REPOSITORY_LOCATION}/serverBackups目录。${ARTIFACT_REPOSITORY_LOCATION}服务器的备份文件可以在指定位置找到。在这里.

    备份目录将命名为backup_{TIMESTAMP}其中${TIMESTAMP}是启动备份的时间。

    • 数据库 - 这取决于所使用的数据库类型:

      • 如果您使用H2:这是一个名为db.zip的zip文件。该zip包含一个名为cruise.mv.db.

      • 的单个DB文件。

        • 数据库备份是一个名为db.DATABASE_NAME的单个文件,其中DATABASE_NAME是数据库名称。例如,它可以被称为:db.gocd.
        • 查看PostgreSQL文档关于备份和恢复的信息。
        • 注意配置的PostgreSQL数据库连接属性可能会影响备份的输出和内容。
      • 如果您使用MySQL:

        • 数据库备份是一个名为db.DATABASE_NAME的单个文件,其中DATABASE_NAME是数据库名称。例如,它可以被称为:db.gocd.
        • 查看MySQL文档关于备份和恢复的信息。
        • 注意配置的MySQL数据库连接属性可能会影响备份的输出和内容。
    • 配置 - 这是一个名为config-dir.zip的zip文件。此zip包含XML配置、Jetty服务器配置、密钥库和所有其他GoCD内部配置。

    • 包装器配置 - 这是一个名为wrapper-config-dir.zip的zip文件。此zip包含服务器启动属性的配置文件。

    • XML配置版本库 - 这是一个名为config-repo.zip的zip文件。此zip包含XML配置文件的Git仓库。

    • GoCD版本 - 这是一个名为version.txt的文件。此文件包含启动备份时GoCD服务器的版本。

    什么没有被备份?

    以下内容不会作为GoCD备份过程的一部分进行备份。请确保定期手动备份这些内容。

    • 构建产物 - 请参考此章节以了解如何处理构建产物
    • 日志文件
    • 插件 - 这些位于${SERVER_INSTALLATION_DIR}/plugins/。这里包含外部和捆绑插件。
    • 插件 - 这些位于${SERVER_INSTALLATION_DIR}/addons/。这里包含已安装的附加组件。

    备份构建产物和测试报告数据的策略

    构建产物和测试报告数据会不断添加新的文件和目录。因此,最好使用rsync将这两个内容复制到备份位置。

    例如:假设您在某个位置有一份截至2012年12月02日的所有文件的副本。在2012年02月20日,您可以这样做:

    rsync -avzP ${ARTIFACT_LOCATION} ${BACKUP_LOCATION}
    

    这样可以确保只有新增加的文件和目录会被同步到${BACKUP_LOCATION}而不是整个内容。

    使用备份恢复 GoCD

    恢复过程不是自动化的,需要手动完成。请参考前面关于备份内容的部分。

    恢复步骤

    • 为了从备份中恢复GoCD服务器,必须首先停止服务器。确保进程完全终止后再开始恢复。

    • 选择要从中恢复的备份目录。

      注意:请确保不要将GoCD备份恢复到比用于执行备份的版本更旧的GoCD版本上。

      例如:使用GoCD版本19.3创建的备份不能恢复到GoCD版本19.2上。请查看备份目录中的文件version.txt以了解用于执行备份的GoCD版本。

    • 数据库 - 这取决于所使用的数据库类型:

      • 如果您使用H2:解压db.zip并将里面的文件cruise.mv.db复制到目录${SERVER_INSTALLATION_DIR}/db/h2db.

      • 如果使用PostgreSQL:使用psql来恢复数据库备份文件(例如db.gocd)。这取决于您如何连接到数据库。示例:

        psql -d my_new_db -h my.db.host.com --password <db.gocd
        

        查看PostgreSQL文档关于备份和恢复的信息。

      • 如果使用MySQL:使用mysql来恢复数据库备份文件(例如db.gocd)。这取决于您如何连接到数据库。示例:

        mysql -D my_new_db -h my.db.host.com -u root -p <db.gocd
        

        查看MySQL文档关于备份和恢复的信息。

    • 配置 - 解压config-dir.zip到临时目录。将此目录中的所有文件复制到Windows和Mac上的${SERVER_INSTALLATION_DIR}/config目录或Linux上的/etc/go目录。

    • 包装器配置 - 解压wrapper-config-dir.zip到临时目录。

      注意:如果您将备份恢复到不同的GoCD版本上,您修改了${SERVER_INSTALLATION_DIR}/wrapper-config/wrapper.confdiff备份的文件与预安装版本进行任何差异比较。较新的GoCD版本可能更改启动GoCD所需的默认属性,您的旧配置文件可能无法正常工作。

      审查(或将更改合并到第三个副本)后,将临时目录中的所有文件复制到${SERVER_INSTALLATION_DIR}/wrapper-config目录。

    • 配置历史 - 解压config-repo.zip到临时目录。递归地将此目录中的所有内容复制到${SERVER_INSTALLATION_DIR}/db/config.git .

    • 确保所有恢复的文件的所有权与运行 Go 服务器的用户相同。

      例如:确保你运行一个chown -R go:go ${SERVER_INSTALLATION_DIR}/db/h2db在数据库恢复之后。

    • 启动 GoCD 服务器