怎么解决RAC数据库环境修改scanip后客户端连接异常

技术怎么解决RAC数据库环境修改scanip后客户端连接异常这篇文章主要讲解了“怎么解决RAC数据库环境修改scanip后客户端连接异常”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来

本文主要讲解“RAC数据库环境下如何解决scanip修改后客户端连接异常的问题”。本文的讲解内容简单明了,易学易懂。请跟随边肖的思路,一起学习学习“RAC数据库环境下如何解决scanip修改后客户端连接异常”。

摘要:,的一个项目中,有必要将一个rac数据库迁移到另一个具有相同网段和数据库名称的rac。迁移后,发现新数据仍会插入旧数据库,但新数据库中没有新数据。

00-1010,一个rac数据库需要迁移到项目中的另一个rac,这两个rac集具有相同的网段和数据库名称。这里旧的rac环境叫rac a,新的rac环境叫rac b,正式迁移数据库的时候发现了一个问题。即使RAC B的扫描ip与rac a相同,迁移后发现程序连接到旧数据库rac a,所有数据都存在于旧数据库中,但没有新数据进入新的RAC B.

经调查发现,rac a和rac b在修改扫描ip后没有重启数据库或集群,应用程序的数据库连接字符串没有问题。为什么数据仍然被插入旧数据库?经过下面的场景模拟,我们可以得到答案。

两个rac环境从10到1010部署在本地,具有相同的网段,但唯一的区别是db_name不同于RAC A。

db_name:orcldb

部署后扫描IP:172 . 16 . 4 . 125。

要修改的新扫描IP是172.16.4.140。

rac b

db_name:orcl

部署后扫描IP:172 . 16 . 4 . 135。

要修改的新扫描ip扫描ip:172.16.4.125(rac b使用rac a的扫描ip)。

以上是模拟数据库迁移后,客户端程序是否可以在不改变数据库连接字符串的情况下连接到正确的数据库。

使用客户端分别连接两组rac扫描ip。

连接前检查rac a,rac b的dbid便于后期验证。

怎么解决RAC数据库环境修改scanip后客户端连接异常

怎么解决RAC数据库环境修改scanip后客户端连接异常

场景1: sqlplus使用172.16.4.125连接到rac b。

怎么解决RAC数据库环境修改scanip后客户端连接异常

结果:rac b无法连接。

场景2: sqlplus使用相同的扫描ip 172.16.4.125,但是服务名是rac a的db_name。

怎么解决RAC数据库环境修改scanip后客户端连接异常

结果:检查dbid后,客户端实际连接的数据库是rac a,而不是RAC B。

场景3:重新启动rac b上的数据库,客户再次连接。

怎么解决RAC数据库环境修改scanip后客户端连接异常

结果:rac b重启后,检查dbid,真实数据库由sqlplus连接。

之所以在项目环境中将数据从一个rac迁移到另一个rac时没有发现问题,是因为迁移后的扫描ip和db_name与原来的完全相同,但是数据库没有重新启动,所以很难在项目现场暴露问题。

一、场景简介

从上面的实验可以知道,修改rac扫描ip后,需要重新启动数据库。此外,在MOS 1373350.1作为11g rac上也发现了这个bug。如果数据库没有重新启动,也可以通过重置remote_listener参数来解决。虽然mos说它在11.2.0.3已经被修复了,但在11.2.0.4仍然可能有这个bug。

mos文件如下:

主题使用canvipandlisteners进行安全故障排除(文档ID1373350.1)。

问题#5:nbs

p;Service not getting registered with SCAN listener after failover of the SCAN listener
After SCAN VIP and SCAN listener failover, instance does not register with the SCAN listener. 
It might happen for only 1 of the scan listener. Client connection gets intermittent ORA-12514 TNS:listener does not currently know of service requested in connect descriptor.
Causes:
1. Unpublished Bug 12659561  after scan listener failover, database instance might not register to the scan listener (refer  Note 12659561.8 ), fixed in 11.2.0.3.2, merge patch 13354057 for 11.2.0.2 available for certain platform. 
2. Unpublished Bug 13066936  Instance does not register services when scan fails over (refer  Note 13066936.8 ) 
Solutions: 
1) For both above bugs, the workaround is to unregister and register remote listener on the database instance which does not register to a SCAN listener with following steps. 
show parameter remote_listener 
alter system set remote_listener=''; 
alter system register; 
alter system set remote_listener='<scan>:<port>'; 
alter system register; 
2) Other points to check if service is not registered with SCAN listener: 
a. remote_listener and local_listener is defined correctly 
b. EZCONNECT is defined in sqlnet.ora, eg: NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 
c. SCAN name with 3 IPs should NOT be defined in /etc/hosts, it should be defined in DNS 
d. running nslookup <scan> multiple times should display SCAN VIP in round-robin fashion 
e. do not set SECURE_REGISTER_<listener> in listener.ora if the class of secure transports (COST) is not configured.

感谢各位的阅读,以上就是“怎么解决RAC数据库环境修改scanip后客户端连接异常”的内容了,经过本文的学习后,相信大家对怎么解决RAC数据库环境修改scanip后客户端连接异常这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/70310.html

(0)

相关推荐

  • 怎么利用python爬取城市公交站点

    技术怎么利用python爬取城市公交站点本篇内容介绍了“怎么利用python爬取城市公交站点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年12月9日
  • Java的四种引用方式是什么

    技术Java的四种引用方式是什么本篇内容主要讲解“Java的四种引用方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的四种引用方式是什么”吧!1.强引用(St

    攻略 2021年10月29日
  • Shell中括号用法总结

    技术Shell中括号用法总结 Shell中括号用法总结Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:算术比较, 比如一个变量是否为0,[ $var -eq 0 ]。
    文件属性测

    礼包 2021年12月7日
  • Echarts 源码解读 一:zrender源码分析1var zr = zrender.init(document.getElementById(‘main‘));

    技术Echarts 源码解读 一:zrender源码分析1var zr = zrender.init(document.getElementById(‘main‘)); Echarts 源码解读 一:z

    礼包 2021年11月26日
  • vue缓存使用方法(vue项目中什么时候用到缓存)

    技术vue的缓存实现方式有哪些这篇文章主要讲解了“vue的缓存实现方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue的缓存实现方式有哪些”吧!

    攻略 2021年12月22日
  • IntelliJ IDEA远程Debug Linux的Java程序怎么使用

    技术IntelliJ IDEA远程Debug Linux的Java程序怎么使用这篇文章主要介绍“IntelliJ IDEA远程Debug Linux的Java程序怎么使用”,在日常操作中,相信很多人在IntelliJ I

    攻略 2021年11月30日