配置 DR 拓扑
设置灾难恢复 (Disaster Recovery,DR) 拓扑。可以使用脚本简化流程。
下载脚本
从 GitHub 系统信息库获取最新的设置脚本。
注:
将所有下载的脚本放入同一文件夹中。下载的文件包括用于执行以下任务的脚本:
- 为数据源配置 TNS 别名
- 设置初始 DR 配置
- 设置正在进行的复制
- 更改 Oracle WebLogic Server 、Oracle SOA 或 Oracle Fusion Middleware 系统的钱包。
脚本名 | 说明 |
---|---|
fmwadb_config_replica.sh |
在站点之间复制配置。 |
fmwadb_dr_prim.sh |
为 DR 设置准备一个主站点。 |
fmwadb_dr_stby.sh |
为 DR 设置准备次要站点。 |
fmwadb_rest_api_listabds.sh |
根据 ADB ID 和租户信息获取 Autonomous Database 角色。 |
fmwadb_switch_db_conn.sh |
将现有连接信息替换为新的 ADBS WALLET。 |
fmw_change_to_tns_alias.sh |
将 Oracle WebLogic 数据源和 jps config 文件使用的连接字符串替换为 tns 别名。
|
fmw_dec_pwd.sh |
解密 Oracle WebLogic 加密的密码。 |
fmw_enc_pwd.sh |
使用 Oracle WebLogic 加密加密口令。 |
fmw_get_connect_string.sh |
返回 Oracle WebLogic、Oracle SOA 或 Oracle Fusion Middleware 数据源使用的连接字符串。 |
fmw_get_ds_property.sh |
返回特定数据源属性的值。 |
修改主数据源和 JPS 配置以使用 TNS 别名
在 Java 数据库连接 (JDBC) URL 中使用透明网络基元 (Transparent Network Substrate,TNS) 别名有助于通过使用远程可刷新克隆在主数据库和备用数据库之间移动来重新配置 Oracle WebLogic Server for Oracle Cloud Infrastructure 数据源。
注:
随发行版 23.1.1(2023 年 2 月)或更高版本预配的 Oracle SOA Suite on Marketplace 实例配置有现成的 TNS 别名方法。在这种情况下,可以跳过此任务。
使用 TNS 别名要求数据源和 jps
文件在 Oracle Fusion Middleware 配置文件中包含变量 oracle.net.tns_admin。
在辅助区域中创建 VCN 和子网
如果您尚未执行此操作,请在备用区域中创建一个 CIDR 与主区域的 CIDR 不冲突的 VCN。例如,如果主 VCN 使用 10.1.0.0/16,则辅助 VCN 可以使用 10.2.0.0/16。
在主 VCN 和辅助 VCN 之间配置 DRG
灾难恢复设置要求主节点和辅助 Oracle WebLogic Server 管理节点相互通信以通过 Oracle Cloud Infrastructure File Storage 副本接收域配置。为此,必须在中间层 VCN 之间创建动态路由网关 (Dynamic Routing Gateway,DRG)。
在辅助区域中创建 Oracle Autonomous Data Guard 备用数据库
为现有主数据库 Oracle Autonomous Database 创建备用数据库。
- 对于 Oracle Autonomous Database Serverless,请在辅助区域中创建备用 Oracle Autonomous Database Serverless 。
- 在 OCI 控制台中,单击左侧导航菜单中的 Oracle Database 以导航到主 Oracle Autonomous Database 。
- 在 Autonomous Database Details(自治数据库详细信息)页面的“Resources(资源)”下,单击 Disaster Recovery(灾难恢复),然后单击 Add peer database(添加对等数据库)。
- 使用先前创建的 VCN 和专用子网。
- 适用于 Oracle Autonomous Database on Dedicated Exadata Infrastructure
为 DR 设置准备备用 Autonomous Database
此任务取决于您是使用“快照备用”还是“远程可刷新克隆”方法。
有关“快照备用数据库”方法,请参见 Convert the Standby to a Snapshot Standby 。
有关远程可刷新克隆方法,请参见 Create a Remote Refreshable Clone in the Secondary Region 。
将备用数据库转换为快照备用数据库
使用快照备用方法,将备用自治数据库转换为快照备用数据库。
- 从 Oracle Cloud Infrastructure 控制台的左侧导航菜单中,单击 Autonomous Database 。
- 在辅助区域中,选择备用 Autonomous Database。
- 从更多操作下拉列表中,单击转换为快照备用数据库。
- 如果使用的是专用基础结构,请选择使用主数据库服务。
注:
如果在 7 天内未将 Oracle 专用 Exadata 基础结构中的快照备用数据库转换为物理备用,则快照备用数据库将自动转换为物理备用。
如果 Oracle Autonomous Database Serverless 中的快照备用数据库在 2 天内未转换为物理备用,则快照备用数据库将自动转换为物理备用。
预配辅助系统
预配辅助 Oracle WebLogic Server for Oracle Cloud Infrastructure 、Oracle SOA Suite on Marketplace 或其他中间层 Oracle Cloud Infrastructure (OCI) 服务,该服务使用指向辅助数据库(用于快照备用方法)或可刷新克隆(用于远程可刷新克隆方法)的 Oracle Fusion Middleware(系统)。
修改辅助 TNS 别名连接字符串
将辅助系统中使用的别名修改为与主系统相同的别名。
与在主系统一样,应在 $DOMAIN_HOME/config/jdbc
下的所有数据源文件和 $DOMAIN_HOME/config/fmwconfig
下的 jps config
文件中使用透明网络基元 (Transparent Network Substrate,TNS) 别名。辅助(备用)系统中使用的别名与主系统中的别名相同,因为数据源是从包含先前创建的别名的主系统复制的。
为远程可刷新的克隆方法修改辅助 TNS 别名连接字符串
对于远程可刷新克隆方法,将辅助系统中使用的别名修改为与主系统中的别名相同。
包含在辅助 Oracle WebLogic Server for Oracle Cloud Infrastructure 、Oracle SOA Suite on Marketplace 或 Oracle Fusion Middleware 系统创建中的 tnsnames.ora
文件将包含基于远程可刷新克隆名称的别名。例如,如果创建名为 soaadb1rc2
的远程可刷新克隆,tnsnames.ora
文件(在预配期间创建的 wallet 目录中)将包含以下别名: soaadb1rc2_high
、soaadb1rc2_low
、soaadb1rc2_medium
、soaadb1rc2_tp
、soaadb1rc2_tpurgent
。要简化配置,应在主系统和辅助系统的 tnsnames.ora
文件中使用相同的别名,因此请修改 Oracle WebLogic Server for Oracle Cloud Infrastructure 、Oracle SOA Suite on Marketplace 或 Oracle Fusion Middleware 域配置了(远程可刷新克隆)的 TNS 别名,以使用与主数据库相同的别名。可以从 $tns_admin/tsnames.ora
文件获取主文件的别名。不同的服务会创建不同的别名,它们都将推断出数据库名称的前缀。请注意,您希望仅修改别名,不是服务。不要在文件中使用全局搜索和替换,因为这可能会更改 tnsnames.ora
文件中连接字符串中的服务名。
与在主系统中一样,$DOMAIN_HOME/config/jdbc
下的所有数据源文件和 $DOMAIN_HOME/config/fmwconfig
下的 jps 配置文件中都使用所选别名。与主系统(low
、mid
、high
、tp
或 tpurgent
)中的远程可刷新克隆选择相同的服务级别。由于从主系统复制别名和数据源,因此不需要在辅助系统中运行 fmw_change_to_tns_alias.sh
脚本。灾难恢复设置将处理所需的替换。
如果您有其他别名来指向主 tnsnames.ora
文件中的其他数据库,请相应地将其添加到辅助系统的 tnsnames.ora
文件中。
在主中间层和备用中层更新主机名别名和前端地址
必须在主数据库和备用数据库中使用相同的前端地址。在正常操作期间,此前端主机名将映射到主 Oracle Cloud Infrastructure (OCI) 负载平衡器的 IP。从辅助(切换或故障转移后)运行时,此前端主机名将映射到辅助 OCI 负载平衡器的 IP。
注:
在存在切换或故障转移时,不得更改中间层主机的 /etc/hosts
文件。中间层主机将始终使用其前端 IP 解析虚拟前端名称。切换和故障转移过程中所需的 DNS 更新在客户机使用的 DNS 或主机文件中执行。
可以通过以下方式实施此主机别名:
- 将主机名作为别名添加到 Oracle WebLogic Server for OCI 计算实例的
/etc/hosts
文件中 - 在辅助 OCI VCN 中使用专用 DNS 视图
使用 /etc/hosts
文件
/etc/hosts
文件中,指向辅助 Oracle WebLogic Server 主机的 IP 地址。 当 DNS 服务器在主站点和辅助 Oracle Cloud Infrastructure (OCI) 站点上相同,在主站点和辅助站点中使用分离的 DNS 服务器时,此模式有效。/etc/hosts
文件中的条目优先于 DNS 解析,因为这是 /etc/nsswitch.conf
文件的指令“主机”中现成定义的优先级。
使用 OCI 域名系统 (DNS)
/etc/hosts
中。
以下步骤是在辅助 VCN 中创建专用视图并解析主数据库与辅助 IP 结合使用的主机名:
配置辅助系统
jdbc url
(DR 设置期间可刷新克隆,为切换做准备而备用)。
使系统可供切换
注:
仅当使用远程可刷新克隆配置和验证辅助系统时,才需要执行此任务。从辅助数据库用户界面下载备用数据库的 wallet。避免在远程 DR 情况下使用双连接字符串(主主机和备用主机),因为它们会导致不必要的重试。
设置正在进行的配置复制
fmwadb_config_replica.sh
脚本定期通过 Oracle Cloud Infrastructure File Storage (OCI 文件存储)阶段目录复制更改。
每次复制后,配置都准备就绪(预先准备)进行切换。
使用远程可刷新克隆时,假定复制的配置将“调整”用于物理备用(不可刷新克隆)。如果需要使用可刷新的克隆进行验证或测试,则可以改为更改备用域配置以指向可刷新的克隆。
必须在 WebLogic 服务器管理节点(在主节点和备用节点中)中运行 fmwadb_config_replica.sh
脚本才能复制配置。通常,此脚本使用 cron
作业进行调度,以定期在 Oracle Autonomous Database 系统上的主系统与备用 WebLogic Server 、Oracle SOA Suite 或 Oracle Fusion Middleware 系统之间复制配置。此脚本检查本地数据库的当前角色以确定其是否在主站点或备用站点中运行。
- 当脚本在 PRIMARY 站点中运行时,它将域配置从主域复制到本地帮助文件夹 (FSS),然后复制到辅助站点帮助文件夹(通过
rsync
)。 - 当脚本在 STANDBY 站点中运行时,它将域配置从辅助帮助文件夹(OCI 文件存储)复制到辅助域,并进行所需的数据源替换以使用本地数据库。
您必须从 OCI 控制台中收集不同的参数,并加密密码以访问 Oracle Autonomous Database 钱包,因为安全原因。
以下是脚本中使用的变量的说明以及如何获取这些变量:
- REMOTE_WLSADMIN_NODE_IP
对等端和远程 WebLogic 服务器管理服务器节点的 IP。
这是对等站点中 WebLogic Server 管理服务器中节点主机的 IP。它必须可以从本地节点访问。建议使用动态路由网关连接到节点的远程专用 IP。
- REMOTE_SSH_PRIV_KEYFILE
用于连接到远程 Oracle WebLogic 管理服务器节点的专用 SSH 密钥文件。
- TENANCY_OCID
Oracle Autonomous Database 所在的租户的 OCID。可以从 Oracle Cloud Infrastructure (OCI) 用户界面 (UI) 获取 OCID。
- USER_OCID
拥有自治数据库实例的用户的 OCID。您可以在 OCI UI 中找到 OCID。
- PRIVATE_KEY
此用户的专用 PEM 格式密钥的路径。
- LOCAL_ADB_OCID
正在检查的 Oracle Autonomous Database 的 OCID。您可以在 OCI 控制台的 Oracle Autonomous Database 屏幕中找到 OCID。
- WALLET_DIR
本地 Oracle Autonomous Database wallet 的目录(解压缩从 OCI 控制台下载的 wallet)。此目录应至少包含
tnsnames.ora
、keystore.jks
和truststore.jks
文件。使用快照备用方法时,这是tnsadmin
文件夹 - ENC_WALLET_PASSWORD
从 Oracle Autonomous Database OCI UI 下载 wallet 时提供的密码的 WLS ENCRYPTED 说明。
如果 wallet 是 WebLogic Server 、Oracle SOA Suite 或 Oracle Fusion Middleware 在预配 WebLogic Server 期间创建的初始 wallet,则可以使用以下命令获取密码:
对于 WebLogic:[oracle@wsladbs2-wls-1 ~]$ python3 /opt/scripts/atp_db_util.py generate-atp-wallet-password
对于 SOA:[oracle@soarefr-soa-0 ~]$ python /opt/scripts/atp_db_util.py generate-atp-wallet-password
要加密密码(无论是在 OCI 控制台中提供的密码还是预配期间使用的密码),可以使用fmw_enc_pwd.sh
脚本。./fmw_enc_pwd.sh UNENC_WALLET_PASSWORD
将获取的字符串用于 ENC_WALLET_PASSWORD 变量。
- FSS_MOUNT
将用于暂存 WebLogic 服务器域配置的 OCI 文件存储装载目录。
收集变量信息后,请执行以下步骤为您的环境复制和定制脚本: