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 环境。

流程

  1. 从 Amazon S3 下载所需的备份文件。有关这样做的详情,请参阅 AWS 文档中的 Do I from a S3 Bucket 下载对象?
  2. 提取 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

  3. 对 Fuse Online 数据库进行解码,例如:

    base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
    Copy to Clipboard Toggle word wrap
  4. 切换到运行新 Fuse Online 环境的 OpenShift 项目。例如,如果新 Fuse Online 环境位于 my-fuse-online-project 中,则您需要调用以下命令:

    oc project my-fuse-online-project

    此流程的其余部分假定您已切换到包含新 Fuse Online 环境的项目。

  5. 获取数据库 Pod 的名称。

    如果恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,请调用以下命令来获取数据库 pod 的名称:

    oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
    Copy to Clipboard Toggle word wrap

    如果恢复的 Fuse 在线环境使用外部数据库,则假设您了解如何获取该数据库的 pod 名称。

    在剩余的命令中,在这里看到 DATABASE_POD_NAME,请为恢复的 Fuse 在线环境插入数据库 pod 的名称。

  6. 以任何方式缩减访问数据库的组件。

    1. 缩减 syndesis-operator 以便可以缩减其他组件:

      oc scale deployment syndesis-operator --replicas 0

    2. 缩减 syndesis-serversyndesis-meta 组件:

      oc scale dc syesis-server --replicas 0
      oc scale dc syndesis-meta --replicas 0

  7. 将数据库备份文件发送到 Fuse Online 数据库 pod:

    oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
    Copy to Clipboard Toggle word wrap
  8. 在 Fuse Online 数据库 pod 中打开一个远程 shell 会话:

    oc rsh DATABASE_POD_NAME

  9. 调用下列命令以恢复 Fuse Online 数据库。

    如果 psql 命令提示输入数据库密码,并且恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,您可以在 syndesis-db 部署配置的 POSTGRESQL_PASSWORD 环境变量中找到密码。如果恢复的 Fuse 在线环境使用外部数据库,则系统会假定您知道密码。

    cd /tmp
    psql -c 'DROP database if exists syndesis_restore'
    psql -c 'CREATE database syndesis_restore'
    pg_restore -v -d syndesis_restore /tmp/syndesis-db
    psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'"
    psql -c 'DROP database if exists syndesis'
    psql -c 'ALTER database syndesis_restore rename to syndesis'
    Copy to Clipboard Toggle word wrap

    现在,Fuse Online 可以被恢复。您可以结束 RSH 会话:

    退出

  10. 扩展 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

  11. 服务器尝试启动每个恢复的集成,但您需要首先更新连接。因此,确保恢复的集成没有运行:

    1. 获取 Fuse Online 控制台路由:

      echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
      Copy to Clipboard Toggle word wrap
    2. 使用有权限安装 Fuse Online 的 OpenShift 用户帐户登录 Fuse Online 控制台。
    3. 显示集成列表并确保所有集成都已停止。如果集成正在运行,请将其停止。
  12. 对于具有密码的每个连接,您需要将连接更新为拥有此 Fuse Online 环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接进行此操作。

    1. 在运行了 Fuse Online 环境的项目 OpenShift 控制台中,检索 PostgresDB 连接的密码。在 syndesis-db 部署中,密码位于环境变量中。
    2. 在 Fuse Online 控制台中显示连接。
    3. 编辑 PostgresDB 连接。
    4. PostgresDB 连接的连接详情中,将检索到的密码粘贴到 Password 字段中。
  13. 对于每个集成,确认没有 配置所需 指示符。如果存在,请编辑集成以解决问题。当集成中的所有步骤都正确时,发布集成。

    如果 Fuse Online 在构建步骤后保持回滚至停止状态,请删除部署,确保不需要配置,然后再次尝试发布集成。

    如果您在日志中看到以下信息,则可以安全地忽略以下信息:

    Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat