备份/导出和还原 Transformation Advisor 数据

在安装配置中,如果将 persistence.enabled 值设置为 false ,那么数据将只存储在容器中,如果容器重新启动,数据将丢失。

Transformation Advisor 使用的持久卷应根据最佳实践进行备份。

备份/导出 Transformation Advisor 数据

选项 1:使用 Transformation Advisor 应用程序接口

对于 Transformation AdvisorRed Hat OpenShift 上,使用 Transformation Advisor API 是备份数据的最佳选择。 更多信息,请参阅通过 HTTP 端点导出和导入 Transformation Advisor 数据文档。 特别是,请参阅标题为 "为工作区导出所有 zip 文件 "的部分,其中介绍了批量导出 API。

选项 2: 保存数据目录

保存以下数据目录 Transformation Advisor 本地

对于 Transformation Advisor 对于本地安装,保存数据目录是备份数据的最佳选择。 您也可以使用 Transformation Advisor API 备份本地安装的数据,但保存数据目录可能更方便。 转到 Transformation Advisor 安装本地程序的位置。 找到 datagraph_data 目录,并将其复制到所需的备份位置。 您还需要复制 .neo4j_pass 文件。

cp -a <some location>/data <backup location>/data
cp -a <some location>/graph_data <backup location>/graph_data
cp -a <some location>/scripts/.neo4j_pass <backup location>/scripts/

Transformation Advisor 上 Red Hat OpenShift

不建议直接备份或恢复 上的数据目录。 Transformation AdvisorRed Hat OpenShift 的数据目录。

恢复/导入 Transformation Advisor 数据

使用 Transformation Advisor 应用程序接口

如果您以前使用 Transformation Advisor API 备份数据,则应使用该 API 将数据导入或恢复到 Transformation Advisor. 有关该选项的更多详情,请参阅通过 HTTP 端点导出和导入 Transformation Advisor 数据

复原数据目录

恢复以下数据目录 Transformation Advisor 本地

  1. cd 到 Transformation Advisor 本地(已下载的 Transformation Advisor 下载的压缩包)
  2. 将数据恢复到新位置:
    • cp -a <backup location>/data .
    • cp -a <backup location>/graph_data .
    • cp -a <backup location>/scripts/.neo4j_pass scripts/
  3. 在新位置安装 Transformation Advisor :
    • ./launch.sh
    • 接受许可协议。
    • 选择选项 1(安装)。

恢复 Transformation Advisor 上的 Red Hat OpenShift

不建议直接备份或恢复 上的数据目录。 Transformation AdvisorRed Hat OpenShift 的数据目录。

回滚到 Transformation Advisor

当回滚到先前版本的 Transformation Advisor 时,必须使用与该版本兼容的数据。 Transformation Advisor 不会自动为旧版本转换较新的数据。 例如:

  1. 安装 Transformation Advisor3.0.0
  2. 备份数据 3.0.0
  3. 升级至 3.1.0
  4. 备份数据 3.1.0
  5. 滚回 3.0.0

在这种情况下,您必须使用最初从 Transformation Advisor3.0.0. 您不能使用 3.1.0 中的备份。

高级备份和复原选项

仅当使用其他备份和复原选项失败时,才应使用以下高级选项。

保留 PersistentVolumeClaim

您可以卸载 Transformation Advisor 但也可以保留其使用的 PersistentVolumeClaim 。 此过程在以下场景中很有用:

  • 如果你想卸载一个版本的 Transformation Advisor 并安装新版本,但又想轻松恢复到旧版本。 从 2.5.x 转到 3.0.x 时建议使用此方法。
  • 如果您想在版本升级时保留数据 Transformation Advisor 版本升级时保留数据(例如,从 2.3.x 升级到 2.4.x 时)。 从 2.5.x 到 3.0.x 时,这种方法不会保留数据。

这种方法的局限性在于,只能在最初使用的同一命名空间中重复使用 PersistentVolumeClaim

注意: 如果要保留的 PersistentVolumeClaim 是在安装过程中自动创建的,则应使用此步骤。 Transformation Advisor 安装的一部分。 如果安装使用的是手动创建的 PersistentVolumeClaim ,则可能不需要以下步骤。 在 PersistentVolumeClaim 上运行以下命令
kubectl get pvc <my-pvc-name> -n <ta-namespace> -o yaml | grep ownerReferences

如果该命令没有显示 ownerReferences ,则不需要此步骤;您可以删除 Transformation Advisor 就可以保留 PersistentVolumeClaim 。 务必事先备份数据。

要保存 PersistentVolumeClaim ,请按照以下步骤操作:

  1. 删除 Transformation Advisorsubscriptionclusterserviceversion。 这也删除了操作员。 将 <ta-namespace> 替换为安装所在的实际命名空间。

    export subscription=$(kubectl get subscription --no-headers -n <ta-namespace> | awk '{print $1}')
    kubectl delete subscription ${subscription} -n <ta-namespace> >/dev/null 2>&1
    
    export csv=$(kubectl get csv --no-headers -n <ta-namespace> | awk '{print $1}')
    kubectl delete csv ${csv} -n <ta-namespace>
    

    等待操作员舱消失。 oc get pods ,直到 ta-operator-XXX 消失。

  2. PersistentVolumeClaimTransformation Advisor 实例中删除,同时保留声明。

    export pvc_name=$(oc get deployment -n <ta-namespace> | grep couchdb | awk '{print$1}')
    kubectl patch pvc ${pvc_name} -n <ta-namespace> --type=json -p='[{"op": "remove", "path": "/metadata/ownerReferences"}]'
    
  3. 删除 Transformation Advisor 实例。

    # Run this command in the background using '&'
    kubectl delete transadvs.charts.ta.cloud.ibm.com/ta -n <ta-namespace> &
    kubectl patch transadvs.charts.ta.cloud.ibm.com/ta -p '{"metadata":{"finalizers":[]}}' --type=merge -n <ta-namespace>
    

    直到命名空间中的所有 pod 都消失。

  4. 取下 CustomResourceDefinition

    # Run this command in the background using '&'
    kubectl delete crd/transadvs.charts.ta.cloud.ibm.com &
    kubectl patch crd/transadvs.charts.ta.cloud.ibm.com -n <ta-namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
    
  5. 清理命名空间中的其他 Transformation Advisor 命名空间中的其他资源。

    kubectl delete secret transformation-advisor-secret -n <ta-namespace>
    
    export operator_group=$(oc get operatorgroup -n <ta-namespace> --no-headers | awk '{print $1}')
    kubectl delete operatorgroup ${operator_group} -n <ta-namespace>
    
    kubectl delete clusterrolebinding <ta-namespace>-cluster-admin -n <ta-namespace>;
    
  6. 重复使用保留的 PersistentVolumeClaim 时,请参阅配置存储安装了解配置详情。

    • 如果通过 OpenShift UI 安装,请确保持久性属性与保留声明相匹配(例如,相同的 accessMode )。

      ...
        persistence:
          enabled: true
          accessMode: "ReadWriteOnce"
          size: 8Gi
          useDynamicProvisioning: true
          existingClaim: "<my-ta-pvc>"
          storageClassName: ""
          supplementalGroups: []
      ...
      
    • 如果使用 CASE 安装程序安装,请使用 --persistenceClaim <my-ta-pvc> 指定现有的权利要求。

  7. 可选: 安装新版本的 Transformation Advisor 后,可将 PersistentVolumeClaim 附加到新实例。 这样就恢复了默认行为,即删除实例也会删除其权利要求。

    export uid=$(oc get transadvs.ta.ibm.com/ta -o yaml -n <ta-namespace> | grep uid | awk 'NR==1{print$2}')
    
    kubectl patch pvc <my-ta-pvc> --type=json -p='[{"op": "add", "path": "/metadata/ownerReferences", "value": [{"apiVersion": "ta.ibm.com/v1", "blockOwnerDeletion": true, "controller": true, "kind": "TransAdv", "name": "ta", "uid": "'${uid}'"}]}]'
    

恢复点 目标

最重要的 Transformation Advisor 最重要的数据是数据收集过程中产生的档案。 Transformation Advisor 数据收集。 这些存档应根据贵组织的政策进行备份和保留。

唯一不能从原始数据收集档案中恢复的数据是

  • 手动创建的应用程序组
  • 对集合名称的修改

数据加载到应用程序后,就可以使用应用程序接口检索和备份数据。 bulkExport API 会返回一个包含所有 Transformation Advisor 数据(包括对组、工作区和集合所做的修改)。 可以使用 bulkImport API 将该存档导入到新的安装中。

建议使用 bulkExport API 进行定期备份。 此外,您也可以定期备份数据库(请参阅备份选项 )。

决定恢复点目标时要考虑以下因素:

  • 将新数据上传到 Transformation Advisor
  • 修改上传数据的频率和数量(创建、编辑或删除组;编辑工作区或集合名称)
  • 提供原始数据收集档案的备份 Transformation Advisor 数据收集档案