我设置了 Oracle 12c Dataguard 配置。为了构建备用数据库,我使用了 RMAN DUPLICATE 命令,该命令需要静态侦听器配置。
HOSTNAMEA 和 HOSTNAMEB 上的 tnsname.ora 相同:
BR = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAMEA)(PORT = 1521))
)
(CONNECT_DATA =
(SID = BR)
) )
BR_STBY = (DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAMEB)(PORT = 1521))
)
(CONNECT_DATA =
(SID = BR)
) )
listener.ora 主机名:
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = BR_DGMGRL)
(ORACLE_HOME = /opt/oracle/product/12200/dbhome_1)
(SID_NAME = BR)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAMEA)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
listener.ora 主机名B:
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = BR_STDBY_DGMGRL)
(ORACLE_HOME = /opt/oracle/product/12200/dbhome_1)
(SID_NAME = BR)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAMEB)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
此配置使用静态侦听器配置。例如,应用程序如何知道数据库已从 HOSTNAMEA 切换到 HOSTNAMEB?我应该使用动态侦听器注册吗?配置应该如何?
您应该在客户端计算机中有一个 TNS 条目,类似于以下连接到数据保护环境。
您还应该根据他们的角色主要或备用配置数据库服务,如下所示(如果您使用的是网格基础架构)。
如果您没有使用网格基础设施,那么(AS SYSDBA on Primary)-
根据您的需要修改以上示例中使用的属性,详细信息请参阅 Oracle 文档。