备份/导出和还原 Application Modernization Accelerator 数据

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

Application Modernization Accelerator 使用的持久卷应根据最佳实践进行备份。

备份/导出 Application Modernization Accelerator 数据

选项 1:使用 Application Modernization Accelerator 应用程序接口

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

选项 2: 保存数据目录

保存以下数据目录 Application Modernization Accelerator 本地

对于 Application Modernization Accelerator 对于本地安装,保存数据目录是备份数据的最佳选择。 您也可以使用 Application Modernization Accelerator API 备份本地安装的数据,但保存数据目录可能更方便。 转到 Application Modernization Accelerator 安装本地程序的位置。 找到 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/

Application Modernization Accelerator 上 Red Hat OpenShift

不建议直接备份或恢复 上的数据目录。 Application Modernization AcceleratorRed Hat OpenShift 的数据目录。

恢复/导入 Application Modernization Accelerator 数据

使用 Application Modernization Accelerator 应用程序接口

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

复原数据目录

恢复以下数据目录 Application Modernization Accelerator 本地

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

恢复 Application Modernization Accelerator 上的 Red Hat OpenShift

不建议直接备份或恢复 上的数据目录。 Application Modernization AcceleratorRed Hat OpenShift 的数据目录。

回滚到 Application Modernization Accelerator

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

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

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

高级备份和复原选项

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

保存PersistentVolumeClaim

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

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

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

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

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

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

  1. 删除 Application Modernization Acceleratorsubscriptionclusterserviceversion。 这也删除了操作员。 将 <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. PersistentVolumeClaimApplication Modernization Accelerator 实例中删除,同时保留声明。

    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. 删除 Application Modernization Accelerator 实例。

    # 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. 清理命名空间中的其他 Application Modernization Accelerator 命名空间中的其他资源。

    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. 可选: 安装新版本的 Application Modernization Accelerator 后,可将 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}'"}]}]'
    

恢复点 目标

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

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

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

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

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

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

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