Oracle DG 之故障--standby dg 通讯错误

简介:

系统环境:

操作系统: RedHat EL55_64

Oracle:    Oracle 11.2.0.3.0


故障现象:


在备库出现:

PING[ARC1]: Heartbeat failed to connect to standby 'bjdb'. Error is 16009.


网络配置(listener、tnsnames)、密码文件、归档路径均没有问题!


后多方查找发现:

在备库的归档配置:

log_archive_dest_2 = 'service=bjdb lgwr sync affirm

                                                VALID_FOR=(all_LOGFILES,all_RO

                                                LES) DB_UNIQUE_NAME=bjdb’

修改为:

log_archive_dest_2 ='service=bjdb lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=bjdb' scope=spfile;

@至此问题解决!


转相同问题博文:

朋友搭建的一套DG,折腾了很长时间,一直都是报如下错误:

ORA-12514: TNS:listener does not currentlyknow of service requested in connect descriptor

PING[ARC2]: Heartbeat failed to connect tostandby 'PD'. Error is 12514.


这个错误最常见的原因,静态注册,再就是DG 参数的问题。


但这里参数,我也瞅了半天,并没有问题:

SQL> show parameter dest_2


NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

db_create_online_log_dest_2          string

log_archive_dest_2                   string      SERVICE=PD VALID_FOR=(ONLINE_L

                                               OGFILE,PRIMARY_ROLE) DB_UNIQUE

                                               _NAME=PD


期间还让朋友做了很多的测试,包括重建口令文件,把DG 可能出现的问题,都想了一遍,还是有问题。


查看相关的进程:备库没有RFS进程,主库没有LNS进程。

SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;


PROCESS  STATUS          THREAD#  SEQUENCE#    BLOCK#     BLOCKS

--------- ------------ -------------------- ---------- ----------

ARCH     CONNECTED             0          0          0          0

ARCH     CONNECTED             0          0          0          0

ARCH     CONNECTED             0          0          0          0

ARCH     CONNECTED             0          0          0          0


后来让朋友再次tnsping PD看看,其实这个测试,在最开始的时候,我就已经让朋友测试过了。


tnsping 是正常的,也就是说,测试网络是通的,listener是正常的。 这个也是我们的tnsping 能干的工作,但是tnsping 不能检查tnsnames.ora 文件里的service_name或sid是否正确,所以也让朋友贴了这2个文件。

   并用sqlplus 连接了这个配置,也正常。


   问题看上去变得非常奇葩,因为DG本身就没几个参数,把我能想到的,问题都想了一遍,还有不通,后来看到朋友写的测试结果:




[oracle@DB11g_ST trace]$ tnsping PD

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 31-JUL-2013 16:11:18


Copyright (c) 1997, 2009, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DB11g)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))

OK (10 msec)


对这里的HOST 产生了兴趣,之前怀疑过防火墙的问题,但防火墙是关闭的,所以让朋友把这里改成IP地址,居然OK了。


SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;


PROCESS  STATUS          THREAD#  SEQUENCE#    BLOCK#     BLOCKS

--------- ------------ -------------------- ---------- ----------

ARCH     CONNECTED             0          0          0          0

ARCH     CLOSING               1        156       2049       1600

ARCH     CONNECTED             0          0          0          0

ARCH     CONNECTED             0          0          0          0

RFS      IDLE                  0          0          0          0

RFS      IDLE                  0          0          0          0

RFS      IDLE                  0          0          0          0

RFS      IDLE                  1        157         27          1


这次查询,RFS进程也出现了。


朋友主备库的/etc/hosts 文件是直接复制过去的。 如下:


[root@DB11g_ST ~]# more /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1               DB11g localhost.localdomain localhost

192.168.0.89            DB11g_ST

192.168.0.88            DB11g


   问题就出在这里,DB11g 这里有个回环地址:127.0.0.1。 后来朋友把这个注释掉,使用别名测试,也正常了。

在这个问题里面,饶了很大的一个圈子,之前我们一直围绕在数据库方面的思考,思考数据库方面的哪些配置会导致这个问题。 直到最终发现问题的根源,是/etc/hosts的配置导致的。

昨天另一个朋友,也和我讲了另一个事情,他们有个物化视图,一直无法刷新,表才2G,也不算太大。 但就是刷新不了。 后来也是研究了很长的时间,最后定位出来是防火墙问题,里面有禁止大包的传送,把两边防火墙这个规则去掉就好了。

由这个故障的处理过程,我们要反思的是,在我们处理故障时候,不要总是局限在数据库这个层面,可能其他的配置,也会导致这个问题。在故障处理过程中,要想起拓展我们的思维,不要在自己的小巷思维里饶的太久了。










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1405061,如需转载请自行联系原作者
目录
相关文章
|
SQL 存储 Oracle
oracle错误代码大全(超详细)
本篇文章是对oracle错误代码进行了详细的总结与分析,需要的朋友参考下
1314 0
|
7天前
|
Oracle 安全 关系型数据库
Oracle数据守卫(DG):数据的“守护者”与“时光机”
【4月更文挑战第19天】Oracle Data Guard保障数据安全,通过实时维护备库实现故障切换,保证业务连续性。它使用日志传输和应用保持数据同步,如同“时光机”,借助闪回技术能恢复误操作数据。此外,它还提供数据压缩、加密和故障转移等功能,提升数据库安全性与性能。作为数据管理员,理解并善用Data Guard是确保企业数据安全的关键。
|
4月前
|
运维 Oracle 关系型数据库
服务器数据恢复-raid5故障导致上层oracle数据库故障的数据恢复案例
服务器数据恢复环境: 一台服务器中有一组由24块FC硬盘组建的raid5磁盘阵列,linux操作系统+ext3文件系统,服务器上层部署有oracle数据库。 服务器故障&检测: raid5阵列中有两块硬盘出现故障掉线,导致服务器上层卷无法挂载,oracle数据库无法正常使用。 通过管理后台查看服务器中硬盘的状态,显示有两块硬盘处于离线状态。
|
SQL Oracle 关系型数据库
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
1637 0
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
|
SQL Oracle 关系型数据库
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
1928 0
【数据库】解决 oracle: SQL 错误 [900] [42000]: ORA-00900: 无效 SQL 语句
|
存储 Oracle 关系型数据库
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000