IBM Cloud Docs
备份和复原数据

备份和复原数据

使用以下程序在 IBM Watson® Discovery 中备份和恢复数据。

IBM Cloud Pak for Data IBM Software Hub

此信息仅适用于已安装的部署。

使用同一组备份和复原脚本来备份和复原任何受支持升级路径中的数据。 备份脚本存储具有要从现有部署备份的数据的服务的版本号。 还原脚本检测新部署中安装的服务版本,然后按照适当的步骤将数据还原到检测到的版本。

下表列出了脚本支持的升级路径。

受支持的升级路径
正在使用的版本 可升级到的版本
5.1.x 后来的版本 5.1.x
5.0.x 5.0.x 的后续版本,5.1.x
4.8.9 5.0.x 的后续版本,5.1.x
4.8.8 5.1.1 或更高版本
4.8.7 4.8.x 的后续版本,5.1.x
4.8.6 4.8.x、5.0.3 的后续版本,5.1.x
4.8.x 4.8.x、5.0.x 的后续版本,5.1.x
4.7.x 4.8.x, 5.0.x, 5.1.x
4.6.x 4.8.x, 5.0.x, 5.1.x
4.5.x 4.8.x, 5.0.x, 5.1.x
4.0.x 4.8.x,但 4.8.0 除外

如果您要升级到 5.1.x,以下主题介绍了更简单的升级方法:

如果要升级到 5.0.x,请在以下主题中描述完成升级的更简单方法:

如果使用 IBM Cloud Pak for Data Red Hat OpenShift API for Data Protection (OADP) 备份和复原实用程序以脱机备份和复原整个集群,那么需要执行一些额外步骤。 有关更多信息,请参阅 使用 OADP 来备份安装了 Discovery 的集群。 有关联机 OADP 备份和复原的信息,请参阅 Cloud Pak for Data 联机备份和复原

您可以执行从一个 4.8.x 版本到更高的 4.8.y 版本的原地升级。 有关更多信息,请参阅 将 Watson Discovery 从 V 4.8.x 升级到更高版本的 4.8 刷新

您可以执行从一个 4.7.x 版本到更高的 4.7.y 版本的原地升级。 有关更多信息,请参阅 将 Watson Discovery 从 V 4.7.x 升级到更高版本的 4.7 刷新

您可以执行从一个 4.6.x 版本到更高的 4.6.y 版本的原地升级。 有关更多信息,请参阅 将 Watson Discovery 从 V 4.6.x 升级到更高版本的 4.6 刷新

您可以执行从一个 4.5.x 版本到更高的 4.5.y 版本的原地升级。 有关更多信息,请参阅 将 Watson Discovery 升级到最新版本 4.5 刷新

您可以执行从一个 4.0.x 版本到更高的 4.0.y 版本的原地升级。 有关更多信息,请参阅 将 Watson Discovery 升级到更新的 4.0 刷新

过程概述

在较高级别,该过程包括以下步骤:

  1. 使用备份脚本备份 Discovery 数据。
  2. 安装最新版本的 IBM Cloud Pak for Data。
  3. 在集群上安装最新版本的 Discovery 服务。
  4. 使用复原脚本复原备份的 Discovery 数据。

备份和恢复限制

无法迁移以下数据:

  • 字典建议模型。 这些模型是在您构建字典时创建的。 字典包含在备份中,但术语建议模型不包含在备份中。 重新处理已迁移的集合以启用字典术语建议。
  • 您无法备份和复原或迁移 curations,因为 curations 是 Beta 功能。

您可以使用备份和还原脚本备份和还原某些数据,但必须手动备份和还原其他数据。 必须手动备份以下数据:

  • 可以使用本地文件系统数据源搜寻的本地文件系统文件夹和文档。

复原集合时将进行以下更新:

  • 包含通过上载数据创建的文档的任何集合将在复原时自动重新搜寻并重新建立索引。 这些文件在修复的馆藏中被分配了新的文件 ID 编号。
  • 内容挖掘 项目中使用的集合将在复原时自动重新搜寻并重新建立索引。 只有通过上载数据添加的文档才会在复原的集合中分配新的文档标识号。

备份和恢复方法

您可以手动或通过使用脚本来备份和复原 Discovery 实例。

您必须对 Discovery 集群上的 Discovery 实例具有管理访问权 (其中存储了要备份的数据) 以及对新实例 (将数据复原到其中) 的管理访问权。

备份和复原脚本完成了许多操作,可能需要不少时间才能运行。 要避免超时问题,请运行防止超时的工具,例如 nohup

使用备份脚本

由于在备份期间对 IBM Watson® Discovery 中存储的数据进行更改会导致备份损坏和无法使用,因此在备份期间不允许提出飞行中请求。

正在进行的请求是处理数据的任何 IBM Watson® Discovery 操作,包括以下操作:

  • 源搜寻 (已调度或未调度)
  • 摄入文档
  • 对已训练的查询模型进行训练

在运行备份脚本的节点中可用的存储量必须是计划备份的数据存储器中最大备份文件的 3 倍。 如果数据存储器很大,请考虑使用持久卷声明,而不是依赖于节点的临时存储器。 有关更多信息,请参阅 配置作业以使用 PVC

完成以下步骤,使用备份脚本备份 IBM Watson® Discovery 数据:

  1. 输入以下命令以设置在其中部署 Discovery 实例的当前名称空间:

    oc project <namespace>
    
  2. GitHub 存储库获取备份脚本。

    您需要存储库中的所有文件来完成备份和复原。 按照 GitHub 帮助中的说明克隆或下载版本库的压缩文件。

  3. 通过运行以下命令,使每个脚本成为可执行文件:

    chmod +x <name-of-script>
    

    <name-of-script> 替换为脚本的名称。

  4. 运行 all-backup-restore.sh 脚本。

    ./all-backup-restore.sh backup [ -f backup_file_name ] [--pvc]
    

    -f backup_file_name 参数是可选的。 如果未指定名称,那么将使用名称 watson_discovery_<timestamp>.backup

    --pvc 参数是可选的。 有关何时使用它的更多信息,请参阅 配置作业以使用 PVC。 缺省情况下,备份和复原脚本会在当前目录中创建 tmp 目录,该脚本用于抽取或压缩备份文件。

    如果迂到备份问题,请重新运行 backup 命令并包含 --use-job 参数。 此参数指示备份脚本使用 Kubernetes 作业来备份 ElasticSearch 和 MinIO 以及 Postgres(缺省情况下使用 Kubernetes 作业)。 如果 ElasticSearch 和 MinIO 中的数据大小较大,并且临时存储器不足,请包含 --pvc 选项。 执行此操作时,脚本将使用通过 --pvc 选项指定的持久卷声明,而不是使用 emptyDir 临时存储器作为作业的临时工作目录。

从备份归档文件中抽取文件

这些脚本生成归档文件,包括步骤 1 中列出的服务的备份文件。

  1. 您可以通过运行以下命令从归档文件中抽取文件:

    tar xvf <backup_file_name>
    

配置作业以使用 PVC

备份和复原过程使用 Kubernetes 作业。 这些作业使用使用临时存储器的临时卷。 它是使用节点的本地存储器的 pod 上的临时存储器安装。 在极少数情况下,临时存储器不够大。 您可以选择性地指示作业在其 pod 上安装持久卷声明 (PVC) 以用于存储备份数据。 为此,请在运行脚本时指定 --pvc 选项。 否则,这些脚本使用 Kubernetes 的 emptyDir

在大多数情况下,您不需要使用持久卷。 如果选择使用持久卷,那么该卷必须是数据存储器中最大备份文件的 3 倍。 数据存储器的备份文件大小取决于使用情况。 创建备份后,可以 从归档文件中抽取文件 以检查文件大小。

此外,必须将本地系统上的可用磁盘空间 2 乘以数据存储器的大小,因为会拆分数据归档,然后将其重新组合,以防止在将大型文件从集群节点复制到本地系统时可能发生的问题。

映射多租户集群

将从低于 4.0.6 的版本备份的数据复原到任何更高发行版时,如果备份的部署具有供应的服务的多个实例,那么需要执行额外的步骤。 您必须创建一个 JSON 文件,用于在备份集群和要复原数据的集群之间映射服务实例标识。

如果实例标识在备份和复原步骤之间未更改,那么不需要此映射步骤。 例如,如果要将数据复原到从中备份数据的集群,或者要将数据复原到没有 Discovery 实例的全新集群,那么可以跳过此步骤。

要创建映射,请完成以下步骤:

  1. 从备份归档文件中抽取映射模板文件。

    tar xf <backup_file_name> tmp/instance_mapping.json -O > <mapping_file_name>
    
  2. 生成供应到要复原数据的集群的服务实例的名称和实例标识的列表。

    实例ID是 URL 的一部分,在实例摘要页面中指定。 从 IBM Cloud Pak for Data 网络客户端主菜单中,展开“服务”,然后点击“实例”。 查找实例,然后单击该实例以打开其摘要页面。 滚动到页面的访问信息部分,在 URL 字段中。

    例如,https://<host_name>/wd/<namespace>-wd/instances/<instance_id>/api

    重复此步骤以记录所供应的每个实例的实例标识。

  3. 编辑映射文件。

    添加在上一步中列出的目标服务实例的实例标识。 下面的代码段是映射文件的示例。

    {
      "instance_mappings": [
        {
          "display_name": "discovery-1",
          "source_instance_id": "1644822491506334",
          "dest_instance_id": "<new_instance_id>"
        },
        {
          "display_name": "discovery-2",
          "source_instance_id": "1644822552830325",
          "dest_instance_id": "<new_instance_id>"
        }
      ]
    }
    

运行复原脚本时,请包含可选 --mapping 参数以在复原数据时应用此映射文件。

手动备份数据

手动备份未使用脚本备份的数据。

要手动备份 Discovery 实例中的数据,请完成以下步骤:

  1. 输入以下命令以登录到 Discovery 集群:

    oc login https://<OpenShift administrative console URL> \
    -u <cluster administrator username> -p <password>
    
  2. 输入以下命令以切换到相应的名称空间:

    oc project <discovery-install namespace>
    
  3. 输入 oc get pods|grep crawler

  4. 输入以下命令:

    oc cp <crawler pod>:/mnt <path-to-backup-directory>
    

使用复原脚本

如果要从低于 4.0.6 的版本复原数据,并且要将多租户集群复原到多租户集群,那么必须在开始之前执行额外的步骤。 有关更多信息,请参阅 映射多租户集群

完成以下步骤,使用还原脚本在 IBM Watson® Discovery 中还原数据:

  1. 输入以下命令以设置在其中部署 Discovery 实例的当前名称空间:

    oc project <namespace>
    
  2. 如果尚未执行此操作,请从 GitHub 存储库获取复原脚本。

    您需要存储库中的所有文件来完成备份和复原。 按照 GitHub 帮助中的说明克隆或下载版本库的压缩文件。

  3. 通过运行以下命令,使每个脚本成为可执行文件:

    chmod +x <name-of-script>
    

    <name-of-script> 替换为脚本的名称。

  4. 运行以下命令,将数据从本地系统上的备份文件还原到新的 Discovery 部署中:

    ./all-backup-restore.sh restore -f backup_file_name [--pvc] [--mapping]
    

    --pvc 参数是可选的。 有关何时使用它的更多信息,请参阅 配置作业以使用 PVC

    --mapping 参数是可选的。 有关何时使用它的更多信息,请参阅 映射多租户集群

    缺省情况下,备份和复原脚本会在当前目录中创建 tmp 目录,该脚本用于抽取或压缩备份文件。 如果在备份数据时使用了 --use-job 参数,请在复原数据时再次指定该参数。 此参数指示备份脚本使用 Kubernetes 作业来备份 ElasticSearch 和 MinIO。

    gateway, ingestion, orchestrator, hadoop workercontroller pod 会自动重新启动。

手动复原数据

手动复原无法使用脚本复原的数据。

要手动复原 Discovery 实例中的数据,请完成以下步骤:

  1. 输入以下命令以登录到 Discovery 集群:

    oc login https://<OpenShift administrative console URL> \
    -u <cluster administrator username> -p <password>
    
  2. 输入以下命令以切换到相应的名称空间:

    oc project <discovery-install namespace>
    
  3. 输入 oc get pods|grep crawler

  4. 输入以下命令:

    oc cp <path-to-backup-directory> <crawler pod>:/mnt
    

使用 OADP 以脱机方式备份安装了 Discovery 的集群

如果计划使用 IBM Cloud Pak for Data Red Hat OpenShift API for Data Protection (OADP) 备份和复原实用程序脱机备份和复原整个 IBM Cloud Pak for Data 实例,那么必须按正确顺序执行一些其他步骤,以便在 Discovery 存在时该实用程序正常工作。 请参阅 Cloud Pak for Data 脱机备份和复原(OADP 实用程序)

离线备份群集

要脱机备份集群,请完成以下步骤:

  1. 运行 Discovery 备份脚本

  2. 使用 OADP 备份实用程序 来备份集群。

脱机复原集群

要离线还原群集,请完成以下步骤:

  1. 使用 OADP 备份实用程序 来复原集群。

  2. 卸载 Discovery,然后在复原的集群上再次安装 Discovery。

    需要重新安装,因为实用程序不会始终正确重新安装 Discovery。

  3. 运行 Discovery 复原脚本 以复原数据。