AnyBackup-Oracle ADG 备库定时备份失败,提示:ORA-12514
关键字
ADG,ORA-12514
适用产品
- AnyBackup Enterprise 7.0.17.3 及以上版本
- AnyBackup Express 7.0.17.3 及以上版本
问题描述
在使用 AnyBackup 进行 Oracle ADG 备库定时备份时,任务执行失败。执行输出中提示如下错误:
任务执行异常,原因:接口调用失败(ORA-12514:TNS:listener does not currently know of service requested in connect descriptor).
问题影响
AnyBackup 无法完成对 Oracle ADG 备库的数据保护。
问题原因
在创建 Oracle ADG 定时备份任务时,配置的【主库TNSname】不正确,导致 Oracle ADG 备库无法通过配置的 TNSname 连接到主库,从而出现该问题。配置项如下图:
解决方案
为了解决该问题,需要配置正确的【主库 TNSname】。请按照如下步骤执行:
1. 使用 SSH 工具以 root 身份登录 Oracle ADG 备库数据库服务器;
2. 执行如下命令,查看 Oracle ADG 主库的 TNSname,如下:
su - oracle
cd $ORACLE_HOME/network/admin
cat tnsnames.ora
根据文件内容中的"HOST"字段对应的主库 IP 或者主机名,判断主库 TNSname。如下所示:
AISHU =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.104.199)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = aishu)
)
)
注: 1)其中,”HOST = “对应的 IP 或者主机名,即表示此项为主库的 TNSname 配置,AISHU 即【主库 TNSname】。
2)若备库的 tnsnames.ora 配置文件中无主库的 TNSname 配置信息,则按照如上格式添加。
3. 于 AnyBackup web 界面,点击【定时数据保护】-【数据备份】,选中对应的 Oracle ADG 备份任务,点击【编辑】修改任务配置。于第 3 步-【备份选项】-【常规】-【备份对象为ADG备库】中,修改【主库 TNSname】为正确的名称,并保存配置。如下:
4. 重新发起 Oracle ADG 定时备份任务即可。
更多信息
由于 Oracle ADG 的特殊性,在进行 Oracle ADG 备库的定时备份时,AnyBackup 需要从备库通过监听连接到主库,执行归档日志查询与归档日志切换的动作,防止 Oracle ADG 备库在恢复时由于备份时状态为归档日志未同步完成的状态,从而出现备库无法启动的情况。