3.5. 恢复 Fuse 在线环境
在一个新的 Fuse Online 环境中,您尚未创建任何连接或集成,您可以恢复 Fuse 在线环境的备份。恢复 Fuse 在线环境后,您必须编辑恢复的连接以更新其密码。然后,您应该能够发布恢复的集成。
先决条件
- OCP 正在现场运行。
-
oc
客户端工具已安装并连接到要恢复 Fuse 在线环境的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中有访问权限的任何项目中安装 Fuse Online 的权限。
- 有一个 Fuse 在线环境,配置为定期备份数据并将数据上传到 Amazon S3。
- 例如,F 7.6 等 Fuse Online 发行号是备份的 Fuse 在线环境以及您要恢复备份的 Fuse 在线环境。
- 有访问包含 Fuse Online 备份的 AWS 存储桶的权限。
- 要恢复备份的 Fuse 在线环境是一个新的 Fuse Online 安装。换句话说,没有您定义的连接或集成。如果要在具有连接和集成 Fuse Online 环境的项目中恢复 Fuse Online,则必须卸载 Fuse Online 环境并安装新的 Fuse Online 环境。
流程
- 从 Amazon S3 下载所需的备份文件。有关这样做的详情,请参阅 AWS 文档中的 Do I from a S3 Bucket 下载对象?
提取 zip 文件的内容。例如,以下命令可解压缩
7.6-2020-03-15-23:30:00.zip
文件,并将内容复制到/tmp/fuse-online-backup
文件夹中:unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backup
对 Fuse Online 数据库进行解码,例如:
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到运行新 Fuse Online 环境的 OpenShift 项目。例如,如果新 Fuse Online 环境位于
my-fuse-online-project
中,则您需要调用以下命令:oc project my-fuse-online-project
此流程的其余部分假定您已切换到包含新 Fuse Online 环境的项目。
获取数据库 Pod 的名称。
如果恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,请调用以下命令来获取数据库 pod 的名称:
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果恢复的 Fuse 在线环境使用外部数据库,则假设您了解如何获取该数据库的 pod 名称。
在剩余的命令中,在这里看到
DATABASE_POD_NAME
,请为恢复的 Fuse 在线环境插入数据库 pod 的名称。以任何方式缩减访问数据库的组件。
缩减
syndesis-operator
以便可以缩减其他组件:oc scale deployment syndesis-operator --replicas 0
缩减
syndesis-server
和syndesis-meta
组件:oc scale dc syesis-server --replicas 0
oc scale dc syndesis-meta --replicas 0
将数据库备份文件发送到 Fuse Online 数据库 pod:
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Fuse Online 数据库 pod 中打开一个远程 shell 会话:
oc rsh DATABASE_POD_NAME
调用下列命令以恢复 Fuse Online 数据库。
如果
psql
命令提示输入数据库密码,并且恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,您可以在syndesis-db
部署配置的POSTGRESQL_PASSWORD
环境变量中找到密码。如果恢复的 Fuse 在线环境使用外部数据库,则系统会假定您知道密码。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,Fuse Online 可以被恢复。您可以结束 RSH 会话:
退出
扩展 Fuse Online 组件:
oc scale deployment syndesis-operator --replicas 1
将
syndesis-operator
扩展为1
,应该可以启动缩减的其他 pod。但是,如果没有发生这种情况,您可以手动扩展它们:oc scale dc syesis-server --replicas 1
oc scale dc syndesis-meta --replicas 1
服务器尝试启动每个恢复的集成,但您需要首先更新连接。因此,确保恢复的集成没有运行:
获取 Fuse Online 控制台路由:
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用有权限安装 Fuse Online 的 OpenShift 用户帐户登录 Fuse Online 控制台。
- 显示集成列表并确保所有集成都已停止。如果集成正在运行,请将其停止。
对于具有密码的每个连接,您需要将连接更新为拥有此 Fuse Online 环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接进行此操作。
-
在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
syndesis-db
部署中,密码位于环境变量中。 - 在 Fuse Online 控制台中显示连接。
- 编辑 PostgresDB 连接。
- 在 PostgresDB 连接的连接详情中,将检索到的密码粘贴到 Password 字段中。
-
在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
对于每个集成,确认没有 配置所需 指示符。如果存在,请编辑集成以解决问题。当集成中的所有步骤都正确时,发布集成。
如果 Fuse Online 在构建步骤后保持回滚至停止状态,请删除部署,确保不需要配置,然后再次尝试发布集成。
如果您在日志中看到以下信息,则可以安全地忽略以下信息:
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
Copy to Clipboard Copied! Toggle word wrap Toggle overflow