oracle19crac主节点挂了没切到从节点

oracle19crac主节点挂了没切到从节点,第1张

1:用root账号登录201服务器,然后登录grid账号

[root@node1 ~]# su - grid

2:检查集群中资源的状态

[grid@node1:/home/grid]$crsctl stat res -t

3:退出grid账号,连接oracle账号

[grid@node1:/home/grid]$exit

[root@node1 ~]# su - oracle

找到his的ora文件

[oracle@node1:/home/oracle]$ls -l /tmp

这里面的his_bak20220627ora就是我们一会要用到的文件名

4:用sysdba账号连接数据库

[oracle@node1:/home/oracle]$sqlplus / as sysdba

利用刚才找到的文件名启动宕机的节点

SQL> startup nomount pfile='/tmp/his_bak20220627ora' ;

SQL> alter database mount;

SQL> alter database open;

SQL> exit;

到此节点已经重启成功了

5:可以在下面几个位置查看日志

[oracle@node1:/home/oracle]$cd $ORACLE_BASE/diag/rdbms/his/his1/trace

[oracle@node1:/u01/app/oracle/diag/rdbms/his/his1/trace]$less alert_his1log

[oracle@node1:/u01/app/oracle/diag/rdbms/his/his1/trace]$less /u01/app/oracle/diag/rdbms/his/his1/trace/his1_gen0_44843trc

[oracle@node1:/u01/app/oracle/diag/rdbms/his/his1/trace]$less /u01/app/oracle/diag/rdbms/his/his1/incident/incdir_640064/his1_gen0_44843_i640064trc

[oracle@node1:/u01/app/oracle/diag/rdbms/his/his1/trace]$exit

6:用下面的语句查看节点状态

[grid@node1:/home/grid]$crsctl stat res -t

这2天在面试DBA Candidate的时候,我问到Oracle RAC中Brain Split脑裂决议的一些概念, 几乎所有的Candidate都告诉我当”只有2个节点的时候,投票算法就失效了,会让2个节点去抢占Quorum Disk,最先获得的节点将活下来” 。 我们姑且把这套理论叫做” 抢占论”。

“抢占论”的具体观点可能与下面这一段文字大同小异:

 

“在集群中,节点间通过某种机制(心跳)了解彼此的健康状态,以确保各节点协调工作。 假设只有”心跳”出现问题, 各个节点还在正常运行, 这时,每个节点都认为其他的节点宕机了, 自己是整个集群环境中的”唯一建在者”,自己应该获得整个集群的”控制权”。 在集群环境中,存储设备都是共享的, 这就意味着数据灾难, 这种情况就是”脑裂”

解决这个问题的通常办法是使用投票算法(Quorum Algorithm) 它的算法机理如下:

观点1:

集群中各个节点需要心跳机制来通报彼此的”健康状态”,假设每收到一个节点的”通报”代表一票。对于三个节点的集群,正常运行时,每个节点都会有3票。 当结点A心跳出现故障但节点A还在运行,这时整个集群就会分裂成2个小的partition。 节点A是一个,剩下的2个是一个。 这是必须剔除一个partition才能保障集群的健康运行。 对于有3个节点的集群, A 心跳出现问题后, B 和 C 是一个partion,有2票, A只有1票。 按照投票算法, B 和C 组成的集群获得控制权, A 被剔除。

 

 

观点2:

如果只有2个节点,投票算法就失效了。 因为每个节点上都只有1票。 这时就需要引入第三个设备:Quorum Device Quorum Device 通常采用饿是共享磁盘,这个磁盘也叫作Quorum disk。 这个Quorum Disk 也代表一票。 当2个结点的心跳出现问题时, 2个节点同时去争取Quorum Disk 这一票, 最早到达的请求被最先满足。 故最先获得Quorum Disk的节点就获得2票。另一个节点就会被剔除。“

 

 

以上这段文字描述中观点1 与我在<Oracle RAC Brain Split Resolution> 一文中提出的看法其实是类似的。  这里再列出我的描述:

在脑裂检查阶段Reconfig Manager会找出那些没有Network Heartbeat而有Disk Heartbeat的节点,并通过Network Heartbeat(如果可能的话)和Disk Heartbeat的信息来计算所有竞争子集群(subcluster)内的节点数目,并依据以下2种因素决定哪个子集群应当存活下去:

拥有最多节点数目的子集群(Sub-cluster with largest number of Nodes)

若子集群内数目相等则为拥有最低节点号的子集群(Sub-cluster with lowest node number),举例来说在一个2节点的RAC环境中总是1号节点会获胜。

补充:关于 我引入的子集群的概念的介绍:

“在解决脑裂的场景中,NM还会监控voting disk以了解其他的竞争子集群(subclusters)。关于子集群我们有必要介绍一下,试想我们的环境中存在大量的节点,以Oracle官方构建过的128个节点的环境为我们的想象空间,当网络故障发生时存在多种的可能性,一种可能性是全局的网络失败,即128个节点中每个节点都不能互相发生网络心跳,此时会产生多达128个的信息”孤岛”子集群。另一种可能性是局部的网络失败,128个节点中被分成多个部分,每个部分中包含多于一个的节点,这些部分就可以被称作子集群(subclusters)。当出现网络故障时子集群内部的多个节点仍能互相通信传输投票信息(vote mesg),但子集群或者孤岛节点之间已经无法通过常规的Interconnect网络交流了,这个时候NM Reconfiguration就需要用到voting disk投票磁盘。”

from  askmaclean

RAC是集群,跟单节点相比,显而易见的优势就是单节点的数据库挂了整个系统就挂了;而在RAC中,单节点宕机还有其他数据库服务器提供服务,并且数据库的数据是一致的;

具体区别可以看看下面的介绍:

>

数据库Failover:FailOver中文为故障切换。Dataguard方式的一种切换模式,是不可逆的。当主数据库发生宕机,且不能及时恢复时,Oracle会丢弃主数据库,将备用数据库转变为主数据库。当

failover之后,备用数据库变成为主数据库,从而丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式。

Failover

有以下特点:

主数据库offline,备用数据库online,这种 *** 作由系统和软件失败引起。

即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备

用数据库运行在guaranteed

protection模式下。

原主数据库重新使用时必须reinstantiated(start

instance)。

其它的备用数据库也需reinstantiated。

在主数据库正常工作时,Oracle

允许

DBA

将主数据库切换到备用数据库,此备用数据库变为主数据库,而原主数据库变为备用数据库。

数据库的切换可以从主数据库角色切换到备用数据库角色,也可从备用数据库角色切换到主数据库角色。

以上就是关于oracle19crac主节点挂了没切到从节点全部的内容,包括:oracle19crac主节点挂了没切到从节点、请问oracle rac集群中的脑裂brain split是怎么回事请详细介绍下、RAC和单节点数据库的区别与RAC最有用的功能之我见等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10191904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存