备份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.conf
请diff
备份的文件与预安装版本进行任何差异比较。较新的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 服务器