在 Linux 上重新部署 IBM Db2 Warehouse

如果您已在 Linux 系统上设置 Db2® Warehouse,但需要进行重新部署,那么必须先执行一些步骤来保留数据和配置。

开始之前

有关如何获取容器访问权的信息,请参阅适用于您所用平台的先决条件主题的“产品映像”一节。

关于此任务

要执行本任务,您在主机操作系统上必须具有 root 用户权限。

过程

  1. 清空浏览器高速缓存。
  2. 如果要使用来自 Docker Store 的容器,请在每台节点主机上发出以下命令:
    docker login -u=docker_id -p='password'
  3. 如果要使用来自 IBM® Marketplace Web 站点的容器,请发出以下命令:
    docker load -i db2wh_v3.9.0_devc.tar.gz
  4. (仅限 MPP)将 /mnt/clusterfs/nodes 节点配置文件备份到其他位置,以便可以将其复用于新部署:
    cp /mnt/clusterfs/nodes directory
  5. 通过使用下列其中一种方法,停止服务和容器:
    • 如果您已使用标准部署,请执行下列子步骤:
      1. 在导引节点主机(对于 MPP)或单节点主机(对于 SMP)上,停止服务。通过发出 docker exec -it Db2wh status 命令,并在输出的 IBM Db2 Warehouse Cluster Status 部分中查找主机,可以确定 MPP 部署中的导引节点主机。要停止服务,请发出以下命令:
        docker exec -it Db2wh stop
      2. 停止所有节点主机上的容器:
        docker stop Db2wh
    • 如果您已使用 Db2 Warehouse Orchestrator 来部署集群,请运行 db2wh_orchestrator.sh 脚本,如下所示:
      path_on_host/db2wh_orchestrator.sh --file /mnt/clusterfs/nodes --stop 
  6. 可选: 如果在集群文件系统中有任何要在新部署中保留的数据(包括用户帐户),请将该数据保存在安全的位置。您可以使用您偏好的任何方法,例如,创建 tar 文件或创建快照。有关使用快照来创建备份的指示信息,请参阅建立 IBM Db2 Warehouse 数据库的联机快照
  7. 在每台节点主机上,重命名 Db2 Warehouse 容器:
    docker rename Db2wh different_container_name
  8. 通过发出以下命令,移除 /mnt/clusterfs 集群文件系统目录的内容。
    要点: 发出以下命令会导致数据丢失,因此,请确保已备份所有要保留的数据,如步骤 4 所述。
    rm -rf /mnt/clusterfs/*
  9. (仅限 MPP)复原在步骤 2 中备份的节点文件:
    cp directory/nodes /mnt/clusterfs/ 
  10. 可选: 如果要从快照备份进行复原,请将其复原到 /mnt/clusterfs 目录。请参阅从 IBM Db2 Warehouse 数据库快照复原
  11. 为了避免重新部署期间端口可用性检查失败,请以 root 用户身份执行下列步骤。可能会发生此故障的原因是,Docker 引擎偶尔会仅释放其部分资源,例如不释放 UNIX 套接字。
    1. 通过发出以下命令,停止 Docker 引擎:
      systemctl stop docker
    2. 通过发出以下命令,重新启动网络:
      systemctl restart network
    3. 通过发出以下命令,启动 Docker 引擎:
      systemctl start docker
  12. 重新创建容器:
    • 如果您已执行标准部署,请执行下列子步骤:
      1. 在所有节点主机(对于 MPP)或单节点主机(对于 SMP)上,通过发出 docker run 命令,拉取、创建并初始化 Db2 Warehouse 容器。
        注:
        • 如有必要,请在部署期间使用一个或多个 -e 标志来设置配置选项。例如,如果您计划在完成 SMP 重新部署后设置 HADR,请在 docker run 命令中包括以下选项设置:
          -e HADR_ENABLED='YES'
          有关更多信息,请参阅配置 IBM Db2 Warehouse
        • 如有必要,请将 docker run 命令中的容器版本替换为所要部署的容器版本。容器版本在 IBM Db2 Warehouse 容器中描述。
        • 除非另有指定,否则以下命令不适用于 Db2 Warehouse Developer Edition
        基本 docker run 命令为:
        docker run -d -it --privileged=true --net=host --name=Db2wh -v /mnt/clusterfs:/mnt/bludata0 -v /mnt/clusterfs:/mnt/blumeta0 tag
        其中,tag 表示下列其中一个值:
        • 对于适用于 POWER® LE 硬件的容器:
          store/ibmcorp/db2wh_ee:v3.9.0-db2wh-ppcle
        • 对于适用于 z Systems® 硬件的容器:
          store/ibmcorp/db2wh_ee:v3.9.0-db2wh-s390x
        • 对于适用于 x86 硬件的容器:
          store/ibmcorp/db2wh_ee:v3.9.0-db2wh-linux
        • 对于适用于 x86 硬件的 Db2 Warehouse Developer Edition 容器:
          store/ibmcorp/db2wh_ce:v3.9.0-db2wh_devc-linux
      2. 通过发出以下命令,检查重新部署是在顺利进行还是已完成。对于 MPP 部署,请在导引节点上发出此命令。
        docker logs --follow Db2wh
        部署完成后,您应该会看到一条消息,指出已成功部署 Db2 Warehouse,并提供控制台 URL 和登录信息。
      3. 按 Ctrl+C,退出 Docker 日志。
      4. 如果端口可用性检查失败(即使您已执行步骤 11),请执行下列步骤:
        1. 通过发出以下命令,移除容器:
          docker rm -f Db2wh
        2. 通过发出以下命令,移除 /mnt/clusterfs 集群文件系统目录的内容:
          rm -rf /mnt/clusterfs/*
        3. 重新引导主机。
        4. 从头开始重新执行步骤 12
    • 如果您已使用 Db2 Warehouse Orchestrator 工具来部署集群,请执行使用 Db2 Warehouse Orchestrator 在 Linux 上部署 IBM Db2 Warehouse MPP 中的步骤。
  13. 在导引节点主机上,使用成功完成消息后提供的 Web 控制台 URL 登录 Web 控制台。该 URL 为 https://head_node_IPaddress:8443
  14. 移除在本过程的步骤 7 中重命名的旧容器。