Oracle RAC数据库备份故障一例
问题描述
1.Simpana for Oracle客户端安装配置完成,并且在CS上“客户端计算机”界面能正常发现;
2.在CS上新发现的RAC01、RAC02两个节点上,执行节点“就绪检查”,结果“就绪”;
3.在CS上新发现的节点下的Oracle上,执行“探寻实例”,可正常发现orcl实例;
4.在CS界面上添加新的Oracle RAC客户端,配置好两个RAC节点后,在两个Oracle RAC节点的详细信息界面,点击刷新,数据库的状态时而显示“打开”,时而显示“未知”,制定的备份任务失败,备份进度条在10%处终止;
环境说明
业务:Oracle 11.2.0.3 RAC双机环境;
OS:RedHat Enterprise Linux 5.4
存储:使用5300 v3(V300R003c20)存储做为RAC的共享存储空间;
备份:使用CommVault Simpana备份软件备份RAC数据库;
告警信息
在CS备份软件界面,双击备份失败的任务,查看相应的RMAN日志,截取关键错误信息如下:
RMAN-12001: could not open channel ch2
RMAN-10008: could not create channel context
RMAN-10003: unable to connect to target database
ORA-12154: TNS:could not resolve the connect identifier specified
处理过程
1.根据前面描述的数据库的状态,时而“打开”,时而“未知”的情况,可以在Oracle的两个RAC节点上监控listener.log,查看CS连接两台RAC节点的连接情况:
tail -f listener.ora
通过监控发现,在CS界面上刷新Oracle数据库状态,如果是“打开”状态,则listener会出现约6条连接信息;若状态是“未知”,则节点的listener无任何连接信息;
2.根据以上RMAN错误信息提示,判断应该是在连接数据库的时候,名称解析出错了;
查看数据库当前的tnsnames.ora,默认配置如下:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
注意到以上数据库的默认配置,HOST使用了scan这个动态主机名,从而判断问题应该出在这里;
修改tnsnames.ora配置,将HOST值改为该RAC节点的vip配置:
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac01_vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac02_vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
保存修改后,再次在CS界面上刷新Oracle数据库的状态,状态均为“打开”,问题解决!
注:以上scan、rac01_vip、rac02_vip均需要在/etc/hosts里做好解析。
根因
Oracle在新的11G版本里,推出一个SCAN的概述,即SCAN(Single Client Access Name),目前是为了简化以前的Oracle RAC 数据库在客户端的配置复杂度,客户端可以通过SCAN 特性负载均衡地连接到RAC数据库,针对于SCAN的连接并不明确指定会连接到哪个RAC的节点;
但Simpana备份时,则要求备份连接必须能明确的连接到指定的两个节点,所以Oracle RAC的默认配置,导致了以上备份错误;
在原配置基础上,我们手动添加了RAC节点的vip地址,该地址在数据库正常情况下,始终绑定在对应的RAC节点上,可解决scan地址连接的随机问题。
- 点赞
- 收藏
- 关注作者
评论(0)