设置内部部署和 OCI 配置

配置内部部署和 Oracle Cloud Infrastructure (OCI) 实例以从内部部署故障转移到云。

验证主数据库配置

Oracle Cloud Infrastructure (OCI) 上实例化备用数据库之前,必须满足以下先决条件。

  1. 配置 OCI VM DB 系统的名称解析。
    使用静态文件(如 /etc/hosts)或配置内部部署 DNS 以正确解析 OCI 实例的公共 IP 地址。
  2. 配置内部部署防火墙以允许 SSH 和 Oracle Net 从内部部署系统访问 VM DB 系统。
  3. 根据您的网络安全策略,使用 iptables 等功能,将主数据库监听程序端口配置为通过云 IP 地址的限制访问打开。
    由于处于 DR 状态的 Oracle Data Guard 需要从云实例访问内部部署数据库,因此必须打开主数据库监听程序端口并限制从云 IP 地址访问。网络管理员需要执行类似于云端网络配置的操作。
  4. 验证是否已将无提示 SSH 从备用数据库配置到内部部署计算机。
    这既是为预配过程中的内部部署配置的,也是为了从云到内部部署配置的。
  5. 配置内部部署防火墙以允许从 VM DB 到内部部署计算机的入站 SSH 连接。
  6. 内部部署数据库的 Oracle 主目录必须与备用数据库的 Oracle 补丁程序集相同。
    如果 OCI 环境处于不同的捆绑包补丁程序级别,并且内部部署数据库位于不同的捆绑包补丁程序或 PSU 上,建议将源环境打补丁到与云环境中的数据库主目录相同的数据库捆绑包补丁程序级别。
    使用命令 $ORACLE_HOME/OPatch/opatch lspatches 检查在本地环境和 OCI 环境中安装的一次性补丁程序。
  7. 内部部署主数据库尚未成为现有 Oracle Data Guard 中介配置的一部分。
    如果内部部署数据库存在现有中介配置,则将新的备用数据库添加到现有中介配置中。
    SQL> select decode(count(1),0,'NOCONFIG') from v$DG_BROKER_CONFIG;
    具有 NOCONFIG 以外值的输出意味着存在现有中介配置。

测试内部部署与 OCI 之间的连接

测试内部部署数据库 Oracle Cloud Infrastructure (OCI) 上的 VM DB 系统之间的连接。

  1. 列出内部部署实例中打开的端口。如果端口 1521 未打开,请将端口添加到列表中。
    # firewall-cmd --list-ports
    如果添加了端口,则输出将类似于以下内容:
    1521/tcp
  2. 如果端口 1521 不在列表中,则以 root 用户身份登录并添加端口 1521。重新启动防火墙,检查状态,然后再次列出端口。
    [root@bastion tmp]# firewall-cmd --add-port=1521/tcp --permanent
    
    [root@bastion tmp]# systemctl restart firewalld
    [root@bastion tmp]# systemctl status firewalld
    
    [root@bastion tmp]# firewall-cmd --list-ports --permanent
  3. 在内部部署系统中,验证监听程序是否为名为 LISTENER 的默认监听程序。
    $lsnrctl show current_listener | grep Current Listener
    输出应类似于 Output: Current Listener is LISTENER
  4. 在内部部署系统中,验证监听程序端口是否为 1521。
    $lsnrctl status| grep 'Connecting to'  
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=(1521)))
  5. 从内部部署系统,使用端口 1521 将 telnet 连接到备用数据库实例。
    [root@onpremise1 ~]# telnet standby_database_IP_address 1521
  6. 在内部部署系统中,使用 TNS 试通实用程序试通备用数据库实例。
    [oracle@bastion dbhome_1]$ tnsping standby_database_host_IP_address
    
  7. 从本地系统试通备用数据库实例。
    [oracle@bastion dbhome_1]$ ping standby_database_host_IP_address
  8. 从 VM DB 系统,使用端口 1521 telnet 到内部部署数据库实例。
    [root@onpremise1 ~]# telnet on-premises_database_IP_address 1521
  9. 在云中的 VM DB 系统中,使用 TNS Ping 实用程序试通内部部署数据库实例。
    [oracle@drdb opc]$ tnsping on-premises database host IP address
  10. 从 VM DB 系统试通内部部署数据库实例。
    [oracle@drdb opc]$ ping on-premises database host IP address
所有三种连接方法都应在云中的内部部署和 VM 数据库系统之间工作。