点击▲关注 “数据和云” 给公众号标星置顶
更多精彩 第一时间直达
为了及时共享行业案例,通告共性问题,达成知识共享和提前预防,我们整理和编辑了《云和恩墨技术通讯》(3月刊),通过对过去一段时间的知识回顾和故障归纳,以期提供有价值的信息供大家参考。
同时,我们也希望能够将热点事件、新的产品特性及其他有价值的信息聚集起来,为您提供具有前瞻性的支持信息,保持对于当前最新的数据库新闻和事件的了解,其中包括重要数据库产品发布、警报、更新、新版本、补丁等。
本期目录:
新闻:2019年3月份数据库流行度排行榜
警示:ORA-600 16703注入攻击分析
预警:关于SCN问题需要在2019年6月前采取行动
问题:多租户ORA-600 krvrdccs60影响OGG复制
经验:ORACLE GC等待事件的发现、处理和预防
频发:Linux内核参数导致IP包重组失败引起实例驱赶
警示:Oracle 12.2因为BUG可能生成海量跟踪文件
公告:云和恩墨云服务平台【墨天轮】上线运行
下载链接:https://cs.enmotech.com/docDownload/2762
复制以上链接或者点击“阅读原文”抢先下载。
作者:李敏,云和恩墨交付工程师
众所周知,Oracle在一个机房内实现真正双活的唯一方式是RAC,而如果这个机房出现整个机房的故障(比如机房断电,油机忘了加油了,或者机房地震了,机房着火了,机房进水了等等),那么,双活也将不复存在。
为了解决这个问题,Oracle将RAC的范围进行了扩大,原意是将RAC的节点们分布在物理位置不同的机房,这样一旦某个机房整个下线,其他机房的节点可以承担起原来RAC该承担的责任。愿景很美好,原理也说得通。
但是,实现这个目的,有两个关键的点,其中最需要考量的是多个机房之间的链路质量(存储链路和大二层问题),这个超出本文讨论的范围。其次是,第三地表决。双活里面,除了两个业务机房,还需要有第三个仲裁机构不属于这两个机房,来维持在极端情况下的正确选举存活节点(站点)。
在双活项目的实施里,大体有两种方案,早前为此写过一个片子,现在找不到了。大体是,一种是存储来做,一种是主机层来做。存储层来做的话,方案有很多,如EMC的vplex metro,HDS的GAD等等。这些方案对DBA来说是非常友好的,因为双活和第三地表决不由DBA来规划和控制。第二种,主机层做的双活(基于ASM),这部分除了链路DBA不能主导之外,剩下的,如faillure group,3rd voting都是需要DBA来介入的。
本文只取其中一个部分,就是3rd voting,来阐述在19C extended rac下,第三地表决的管理。
![640?wx_fmt=png](https://i-blog.csdnimg.cn/blog_migrate/3e49122660d01fdfc17635d3bb3d4b7c.jpeg)
对于第三地表决盘的选用,土豪家庭可以选择在第三个机房单独弄个存储。一般家庭会在第三个机房放置一个NFS服务器,把NFS挂给所有的RAC节点,dd出一个文件,当做第三地quorum盘。除了NFS的方案,也可以在第三地使用ISCSI服务器,从ISCSI服务器上map一个盘到所有RAC节点上,此方式跟NFS相比,我个人觉得ISCSI的方式更好,因为NFS中是一个文件,考虑到NFS挂载,误删等等情况下,ISCSI更好。目前使用较多的是NFS。
根据Oracle官方白皮书《Oracle Clusterware 11g Release 2 (11.2) –Using standard NFS to support a third voting file for extended cluster configurations》中的方式,配置好NFS服务器,把文件系统挂载到各个RAC节点之后。使用如下方式dd创建一个文件当做第三地表决盘,注意,这里dd出来的文件,会被ASM当做一个member磁盘来使用。区分这里的voting disk 和voting file的区别。
在我的环境的初始安装中,我并没有配置NFS,使用Normal的冗余方式,从Site 1和Site 2中选了3块盘,做一个OCRC1的磁盘组来放置OCR和Voting file。做好了之后效果是下面这样的:
[grid@extended01 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 4
Total space (kbytes) : 491684
Used space (kbytes) : 84756
Available space (kbytes) : 406928
ID : 1234425375
Device/File Name : +OCRC1
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
[grid@extended01 ~]$
[grid@extended01 vote3nd]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 0f6da8ca07774f84bf4f3b118a754d52 (/dev/mapper/s1ocr01) [OCRC1]
2. ONLINE 3af408a91eb74fcbbf83a4a38b77d064 (/dev/mapper/s2ocr07) [OCRC1]
3. ONLINE 3921fae437694f05bf27f01e5adbce99 (/dev/mapper/s1ocr04) [OCRC1]
注意,这三个Voting disk都是来自存储上的LUN。s1和s2是两个站点,可以看到有两个盘来自s1,这样有违双活的设计目的,因为一旦s1站点的两个voting disk都掉了,那整个RAC集群都会失效。所以,只能在s1,s2,以及第三个站点上,各放置一个voting disk。下面就来做这个事情。
首先,我们先在NFS上,dd创建一个500M的文件当做voting disk:
dd