预配 Oracle Zero Downtime Migration

安装和配置 Oracle Zero Downtime Migration 。

关于零停机时间迁移的前提条件

在运行零停机迁移实用程序进行数据库迁移之前,它需要满足某些先决条件。

在数据库迁移期间,零停机迁移服务主机需要访问源数据库服务器和目标数据库服务器。因此,要迁移到 Oracle Autonomous Database on Dedicated Exadata Infrastructure ,零停机迁移服务主机还需要 root 用户访问或通过 SSH 密钥访问其中一个源数据库服务器。继续之前,请确保满足这些网络路由和连接要求。

安装零停机迁移主机

Oracle 建议在 Oracle Linux 7 或 8 上运行的单独主机上安装 Zero Downtime Migration。它可以在源数据库数据中心进行预配,也可以在 OCI 中进行配置。在此示例中,在 OCI 中配置了零停机迁移服务主机。
  1. 在 Oracle Linux 上预配主机,存储空间至少为 100 GB。
  2. 确保以下必需的软件包可用:
    • glibc-devel
    • expect
    • unzip
    • libaio
    • oraclelinux-developer-release-el7

    注意:

    对于更高版本(如 Oracle Linux 8),也需要软件包 libnsl 和 ncurses-compat-libs。
  3. 运行以下命令:
    [root@zdmhost ~]# yum install glibc-devel expect unzip libaio oraclelinux-developer-release-el7 -y
  4. 通过运行以下命令创建名为 zdm 的组以及添加到该组中的名为 zdmuser 的用户:
    [root@zdmhost ~]# groupadd zdm
    [root@zdmhost ~]# useradd zdmuser -g zdm
    [root@zdmhost ~]# mkdir -p /home/zdmuser/zdminstall
    [root@zdmhost ~]# mkdir /home/zdmuser/zdmhome
    [root@zdmhost ~]# mkdir /home/zdmuser/zdmbase
    [root@zdmhost ~]# chown -R zdmuser:zdm /home/zdmuser/
  5. 通过运行以下命令更新 zdmuser 所需的环境变量以在 ZDM 服务主机上安装 ZDM:
    echo "ORACLE_HOME=/home/zdmuser/zdmhome; export ORACLE_HOME" >> ~/.bashrc
    echo "ORACLE_BASE=/home/zdmuser/zdmbase; export ORACLE_BASE" >> ~/.bashrc
    echo "ZDM_BASE=\$ORACLE_BASE; export ZDM_BASE" >> ~/.bashrc
    echo "ZDM_HOME=/home/zdmuser/zdmhome; export ZDM_HOME" >> ~/.bashrc
    echo "ZDM_INSTALL_LOC=/home/zdmuser/zdminstall; export ZDM_INSTALL_LOC" >> ~/.bashrc

在 ZDM 主机上安装其他工具

  1. 以 root 身份在 ZDM 服务主机上安装 OCI 命令行界面 (OCI CLI):
    [root@zdmhost ~]# yum install python36-oci-cli
  2. 在 ZDM 主机上安装 Oracle Database SQL 客户端,以建立与源数据库和目标数据库的连接。
  3. 确保已下载 Oracle Instant Client 的 RPM 软件包(请参见“下载软件包”部分):
    • 基本程序包 (RPM)
    • SQL*Plus 程序包 (RPM)
    • 工具包 (RPM)
  4. 通过运行以下命令,以 root 用户身份依次按 Basic、SQL*Plus 和 Tools 的顺序安装 RPM 程序包:
    [root@zdmhost software]# yum install -y oracle-instantclient19.20-basic-19.20.0.0.0-1.x86_64.rpm
    [root@zdmhost software]# yum install -y oracle-instantclient19.20-sqlplus-19.20.0.0.0-1.x86_64.rpm
    [root@zdmhost software]# yum install -y oracle-instantclient19.20-tools-19.20.0.0.0-1.x86_64.rpm
  5. 通过运行以下命令更新 TNS_ADMIN 和 PATH 的 zdmuser 的环境变量:
    TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
    PATH=/usr/lib/oracle/19.20/client64/bin:$PATH; export PATH

在主机上安装零停机迁移

在主机准备就绪后安装零停机迁移。

  1. 确保该二进制文件较早地从“Download Software Packages(下载软件包)”部分下载,并将其传输到零停机迁移服务主机。
  2. 通过运行以下命令解压缩主机上的软件包 zdmuser:
    • [zdmuser@zdmhost ~]$ cd $ZDM_INSTALL_LOC
    • [zdmuser@zdmhost zdminstall]$ unzip /tmp/V1037236-01.zip
    • [zdmuser@zdmhost zdminstall]$ ls -rlt
  3. 通过运行以下命令在主机上将零停机迁移安装为 zdmuser:[zdmuser@zdmhost zdm21.4.1]$ ./zdminstall.sh setup oraclehome=$ZDM_HOME oraclebase=$ZDM_BASE ziploc=./zdm_home.zip -zdm
  4. 通过运行以下命令在主机上启动零停机迁移服务:[zdmuser@zdmhost ~]$ $ZDM_HOME/bin/zdmservice start
  5. 通过运行以下命令检查状态:
    • [zdmuser@zdmhost ~]$ $ZDM_HOME/bin/zdmcli -build
    • [zdmuser@zdmhost ~]$ $ZDM_HOME/bin/zdmservice status
    如果运行零停机迁移,则 Running 应等于 true。

配置零停机迁移

  1. 在 Zero Downtime Migration 服务主机上配置 /etc/hosts 文件,通过以 root 用户身份添加源数据库信息来确保 Zero Downtime Migration 服务主机与源数据库之间的连接。
    [root@zdmhost ~]# cat /etc/hosts
    127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.1.179 hr9246.appsubnet.exadatainfrastr.oraclevcn.com hr9246
    10.0.1.78 zdmhost.appsubnet.exadatainfrastr.oraclevcn.com zdmhost
    [root@zdmhost ~]#
  2. 根据 SSH 密钥配置从零停机迁移主机到源数据库的 SSH 连接,而不使用口令短语作为 zdmuser。
    1. 作为 zdmuser,通过运行以下命令生成 SSH 密钥:
      • [zdmuser@zdmhost~]$ ssh-keygen -t rsa
      • [zdmuser@zdmhost~]$ cd ~/.ssh
      • [zdmuser@zdmhost~]$ cat id_rsa.pub>>authorized keys
      • [zdmuser@zdmhost~]$ chmod 600 authorized keys
    2. 通过将 /home/zdmuser/.ssh/id_rsa.pub 文件的内容添加到源数据库服务器上的 opc_user_home/.ssh/authorized_keys 文件来更新授权的密钥文件。
    3. 验证从零停机迁移主机到 PSFT 主机的 SSH 连接。

配置 API 访问

  1. 通过运行以下命令将公钥生成为 zdmuser:
    [zdmuser@zdmhost ~]$ mkdir zdmhome/.oci
    [zdmuser@zdmhost ~]$ cd zdmhome/.oci
    [zdmuser@zdmhost .oci]$ openssl genrsa -out /home/zdmuser/zdmhome/.oci/oci_api_key.pem 2048
    [zdmuser@zdmhost .oci]$ openssl rsa -pubout -in /home/zdmuser/zdmhome/.oci/oci_api_key.pem -out /home/zdmuser/zdmhome/.oci/oci_api_key_public.pem
  2. 将 API 密钥添加到 OCI 控制台。
    1. 在 Oracle Cloud 仪表盘中,单击概要信息图标,然后单击您的账户(电子邮件)。
    2. 单击 API 密钥。
    3. 单击添加 API 密钥。
    4. 选择粘贴公共密钥。
    5. 在公钥字段中,输入 oci_api_key_public.pem
    6. 单击添加。
  3. 复制配置文件中对应 API 密钥的内容。
  4. 作为 zdmuser,创建配置文件并使用私有密钥文件路径更新 key_file 路径。
  5. 生成 OCI 验证令牌。
    通过 CLI 的基于令牌的验证,您可以创建临时会话令牌来验证 CLI 命令请求。

配置 SSH

配置 SSH 连接、生成 SSH 密钥对并更新授权的密钥文件。

  1. 在零停机迁移主机作为 zdmuser 中,根据不带口令短语的 SSH 密钥配置与源数据库主机的 SSH 连接。
  2. 以 zdmuser 身份生成 SSH 密钥。
    [zdmuser@zdmhost ~]$ ssh-keygen -t rsa
    [zdmuser@zdmhost ~]$ cd ~/.ssh
    [zdmuser@zdmhost .ssh]$ cat id_rsa.pub >> authorized_keys
    [zdmuser@zdmhost .ssh]$ chmod 600 authorized_keys
  3. 将 /home/zdmuser/.ssh/id_rsa.pub 文件的内容添加到源数据库服务器上的 opc_user_home/.ssh/authorized_keys 文件中。