IBM Software Hub 安装之间迁移数据

使用产品数据导出和导入实用程序将数据 (包括元数据) 从一个 IBM® Software Hub 安装导出,并将数据导入到另一个 IBM Software Hub 安装。

cpd-cli export-import 命令行界面可以导出和导入特定于 IBM Software Hub 服务的数据 (当服务支持该命令时)。 有关更多信息,请参阅 支持 cpd-cli export-import 的服务

谁需要完成这项任务?

集群管理员 集群管理员必须运行初始化导出导入实用程序的命令。

实例管理员 实例管理员可以运行所有其他 cpd-cli export-import 命令。

开始之前

在运行 cpd-cli export-import 命令之前,请完成以下任务:

  1. 设置客户机工作站以安装 IBM Software Hub
  2. 创建概要文件以使用管理命令
  3. 准备使用导出和导入工具
最佳实践: 如果您为安装设置环境变量,那么可以完全按照编写的方式运行此任务中的许多命令。 有关指示信息,请参阅 设置安装环境变量

在运行此任务中的命令之前,请确保确定环境变量的来源。

初始化导出导入实用程序

在运行任何 cpd-cli export-import 命令之前,必须初始化导出导入实用程序。

  1. 根据 Red Hat OpenShift Container Platform 集群上的硬件设置 CPU_ARCH 环境变量:
    • 对于 x86-64 硬件,请运行:
      export CPU_ARCH=x86_64
    • 对于 Power 硬件,请运行:
      export CPU_ARCH=ppc64le
  2. CPD_PROFILE_NAME 环境变量设置为您在 创建概要文件以使用管理命令中创建的概要文件的名称。
    export CPD_PROFILE_NAME=<my-profile-name>
  3. 针对您的环境运行相应的命令:
    集群从专用容器注册表中拉取映像
    限制: 仅当管理员完成 安装 Cloud Pak for Data 命令行界面 (cpd-cli)时,此选项才可用。
    cpd-cli export-import init \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --arch=${CPU_ARCH} \
    --pvc-name=export-import-pvc \
    --profile=${CPD_PROFILE_NAME} \
    --image-prefix=${PRIVATE_REGISTRY_LOCATION}

    集群从 IBM Entitled Registry 提取映像
    限制: 仅当集群可以连接到因特网时,此选项才可用。
    cpd-cli export-import init \
    --namespace=${PROJECT_CPD_INST_OPERANDS} \
    --arch=${CPU_ARCH} \
    --pvc-name=export-import-pvc \
    --profile=${CPD_PROFILE_NAME} \
    --image-prefix=icr.io/cpopen/cpd

列出可用的辅助模块

安装使用 cpd-cli export-import 命令的服务时,该服务会安装特定于服务的辅助模块。 详情请参阅支持cpd-cli导出导入的服务

运行以下命令以确定安装了哪些辅助模块:

cpd-cli export-import list aux-modules \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

导出数据

以下命令提供了一些示例,说明如何从 IBM Software Hub实例导出数据。

将数据从 IBM Software Hub 导出到 myexport1:
cpd-cli export-import export create myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}
检查 myexport1 作业是否成功,失败或仍处于活动状态:
cpd-cli export-import export status myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}
检索 myexport1 导出的日志:
cpd-cli export-import export logs myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}
通过定时导出任务,在每12小时的第1分钟 myexport2 将数据从 IBM Software Hub 导出至 :
cpd-cli export-import schedule-export create myexport2 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--schedule="0 */12 * * *" \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}
检查调度的 myexport2 作业是否成功,失败或仍处于活动状态:
cpd-cli export-import schedule-export status myexport2 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

下载导出的数据

以下命令提供了一个示例,说明如何下载导出的数据,以便可以将数据迁移到另一个集群。 导出的数据将保存到压缩文件中。

将数据从 IBM Software Hub 下载到当前工作目录中的 TAR 文件:
cpd-cli export-import export download myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

上载导出的数据

以下命令提供了如何将压缩导出文件的内容上载到其他集群 (目标集群) 的示例。

重要信息: 必须先在目标集群上安装并初始化 cpd-cli export-import 实用程序,然后才能上载导出的数据。
从压缩的 TAR 文件上载数据
cpd-cli export-import export upload \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH} \
--file=cpd-exports-myexport1-20200301101735-data.tar

正在导入数据

必须先成功完成导出,然后才能运行导入。 因为一次只允许一个导入作业,所以必须始终删除已完成的导入作业以启动新的导入作业。

要从 myexport1 示例导入 IBM Software Hub 数据:

cpd-cli export-import import create myimport1 \
--from-export=myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

要从调度的 myexport2 示例导入 IBM Software Hub 数据:

cpd-cli export-import import create myimport1 \
--from-schedule=myexport2 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

要检查 myimport1 作业是成功、失败还是仍处于活跃的进展过程中:

cpd-cli export-import import status myimport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH} \

正在停止 export-import 个作业

要删除 ${PROJECT_CPD_INST_OPERANDS} 名称空间中的 myexport1 作业,而不清除存储在卷中的导出数据:

cpd-cli export-import export delete myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

要删除 myexport1 作业并清除存储在 ${PROJECT_CPD_INST_OPERANDS} 项目的卷中的导出数据:

cpd-cli export-import export delete myexport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH} \
--purge

要删除已调度的 myexport2 作业并清除存储在 ${PROJECT_CPD_INST_OPERANDS} 项目的卷中的已导出数据:

cpd-cli export-import schedule-export delete myexport2 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH} \
--purge

要删除 myimport1 作业:

cpd-cli export-import import delete myimport1 \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}

要强制清除由 cpd-cli export-import 创建的任何先前 k8s 资源并使用其他 PVC:

cpd-cli export-import reset \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH} \
--force

cpd-cli export-import init \
--image-prefix=${PRIVATE_REGISTRY_LOCATION}/${PROJECT_CPD_INST_OPERANDS} \
--namespace=${PROJECT_CPD_INST_OPERANDS} \
--pvc-name=pvc2 \
--profile=${CPD_PROFILE_NAME} \
--arch=${CPU_ARCH}