Oracle云上构建RAC,看这1篇就够了(附代码)

​本文根据王鹤松老师在〖deeplus直播第259期〗线上分享演讲内容整理而成。 (文末有获取本期PPT&回放的方式,不要错过)

王鹤松

中国东南地区甲骨文用户组(SECOUG)核心成员

  • Oracle 11g OCM,拥有十几年的数据库经验,曾服务于电信,税务,交通,金融等行业,有丰富的性能优化、故障诊断、数据库设计、异常恢复经验,热衷于技术的研究与分享。

随着国家政策逐步推进企业上云,云计算做为重点发展的战略性产业受到多方关注。市面上云厂家很多,各有各的优势。Oracle云凭借独一无二的技术,成为私有云和公有云部署的理想平台。本次技术分享会在Oracle云上完整搭建一套RAC,告诉大家在搭建过程中的注意事项以及要规避的“坑”。还会分享FlEX ASM新特性,同时结合云上高可用最佳实践来保证用户不间断的访问。

一、Oracle云的使用

1、个人测试账户申请

https://www.oracle.com/cn/cloud/free/

除了要进行邮箱验证和必要的信息录入外,还需要准备一张支持国际货币交易的信用卡,可支持一下三种:

验证过程会模拟一次交易,但会马上撤销,(或者会显示扣费失败,实际验证成功),最终以收到的邮件为准。

2、账号登陆

登陆地址

https://cloud.oracle.com/

或者

https://console.ap-tokyo-1.oraclecloud.com (区域选择日本登录地址)

https://console.ap-seoul-1.oraclecloud.com(区域选择韩国登录地址)

https://console.us-phoenix-1.oraclecloud.com(区域选择美西登录地址)

3、创建虚拟云网络

建议使用虚拟网络向导创建,并验证入站和出站规则正常。

4、创建SSH秘钥

以xshell工具为例 

按提示输入信息外,要注意:要选择RSA算法

生成的密钥属性里,可以将公钥另存成文件,或记录下公钥的具体信息,便于上传服务器

5、创建集群

根据页面提示填写注意事项,其中配置选项里要VM Standard2.2以上,节点总数要选2,添加SSH密钥部分将上个步骤生成的密钥文件上传:

创建成功后,可以在数据库详细信息的节点部分,看到对应的公网IP

6、配置ssh链接

ssh链接后,使用sudo切换用户,如sudo su – oracle

二、12C 新特性-FLEX集群

1、FLEX集群介绍

Oracle RAC 12c 引入了两个新概念:

  • 中心节点:和以前的版本一样,它们通过专用网络相互连接,并且可以直接访问共享存储。这些节点可以直接访问 Oracle 集群注册表 (OCR) 和表决磁盘 (VD);

  • 叶节点:这些节点是轻型节点,彼此不互连,也不能像中心节点一样访问共享存储。每个叶节点与所连接的中心节点通信,并通过所连接的中心节点连接到集群。 

从架构上来说,Oracle Flex 集群包括一个中心和叶架构,其中只有中心节点可以直接访问 Oracle 集群注册表 (OCR) 和表决磁盘 (VD)。但是应用可以通过叶节点访问数据库,而不必在叶节点上运行 ASM 实例。通过中心节点连接到数据库使得它对应用透明。 

2、FLEX ASM的体系结构:

3、FLEX集群与传统集群的区别

Flex 集群RAC12C 与传统集群的11G RAC相比,最大不同得是有Hub以及Leaf节点的存在,而Hub节点类似于传统集群节点,但是存在一个最大区别:即传统集群节点11G RAC是ASM实例与数据库实例绑定,ASM实例宕机则直接导致数据库实例无法访问,但是该方式在Flex集群中已将ASM和数据库实例进行了分割,本机ASM实例宕了,其ASM服务飘在其他节点,数据库实例仍然是可以访问的 

4、FLEX ASM新特性模拟实验

1. 在ASM实例中检查集群状态正常

[grid@cat1 ~]$ crsctl check cluster 

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

2.检查 RAC 数据库实例中 ASM 实例两个节点的状态正常

[grid@cat1 ~]$ srvctl status asm 

ASM is running on cat2,cat1

3.检查 Oracle Flex ASM 是否启用的命令  

[grid@cat1 ~]$ asmcmd showclustermode 

ASM cluster : Flex mode enabled – Direct Storage Access

[grid@cat1 ~]$ asmcmd showclusterstate 

Normal

4.确认Oracle Flex ASM 的状态 

[grid@cat1 ~]$ srvctl status asm -detail 

ASM is running on cat2,cat1

ASM is enabled.

ASM instance +ASM1 is running on node cat1

Number of connected clients: 2

Client names: cat1:_OCR:cat-cluster whs11:whs1:cat-cluster

ASM instance +ASM2 is running on node cat2

Number of connected clients: 2

Client names: cat2:_OCR:cat-cluster whs12:whs1:cat-cluster

[grid@cat1 ~]$ srvctl config asm -detail

ASM home: <CRS home>

Password file: +OCR/orapwASM 

Backup of Password file: +OCR/orapwASM_backup 

ASM listener: LISTENER

ASM is enabled.

ASM is individually enabled on nodes: 

ASM is individually disabled on nodes: 

ASM instance count: 3

Cluster ASM listener: ASMNET1LSNR_ASM

5.sqlplus连接入RAC的节点2的实例 2 (whs12)

sqlplus / as sysdba

6.查询一定数据量的表单,需要能形成刷屏效果

7.在 RAC 实例任意节点中关闭节点2的ASM 实例

[grid@cat1 ~]$ srvctl stop asm -node cat2 -stopoption abort –force

8.验证查询未被终止,并能正常输出

9.在 RAC 实例 2 (cat2) 中检查 ASM 实例的状态 ,发现ASM实例并未运行在节点2上

[grid@cat1 ~]$ srvctl status asm 

ASM is running on cat1

10.在 RAC 实例 2 (cat2) 中检查 ASM 和 RAC 数据库的状态

[grid@cat1 ~]$ ps -ef | grep pmon 

oracle    39297      1  0 10:43 ?        00:00:00 ora_pmon_whs11

grid     101927 100740  0 15:26 pts/3    00:00:00 grep –color=auto pmon 

注:由此可以验证flex集群的特性,ASM实例与数据库实例非绑定状态

11.恢复节点2的ASM实例

[grid@cat1 ~]$ srvctl start asm -node cat2

三、高可用性实践

1、创建针对PDB1_WHS 的故障转移服务

srvctl add service -d whs1 -s ser_whs_pdb1 -r whs11,whs12 -P basic -e select -m basic -z 180 -w 5 -pdb PDB1_WHS

2、启动服务

srvctl start service -d whs1 -s ser_whs_pdb1

3、检查服务状态

srvctl status service -d whs1 -s ser_whs_pdb1

4、在RAC的节点1创建连接串

45_pdb_whs =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.45)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME =ser_whs_pdb1)

)

)

5、使用创建的连接串登陆

sqlplus test/test@45_pdb_whs 

6、检查会话连接的实例信息

set line 1000

select INSTANCE_NUMBER,INSTANCE_NAME,STATUS,HOST_NAME from v$instance;

INSTANCE_NUMBER INSTANCE_NAME  STATUS        HOST_NAME

———— ————-   ——————– ———————————

1 whs11  OPEN       cat1

7、查询一定数据量的表单,需要能形成刷屏效果

8、强行停止会话所在的实例 

srvctl stop instance -d whs1 -i whs11 –f

9、验证查询未被终止,并能正常输出

10、检查节点1进程信息,发现数据库实例没有启动

[grid@cat1 ~]$ ps -ef | grep pmon 

oracle    39297      1  0 10:43 ?        00:00:00 ora_pmon_ASM1

grid     101927 100740  0 15:26 pts/3    00:00:00 grep –color=auto pmon 

11、再次检查会话连接的实例信息,发现会话在无感知情况下已切换至节点2

set line 1000

select INSTANCE_NUMBER,INSTANCE_NAME,STATUS,HOST_NAME from v$instance;

INSTANCE_NUMBER INSTANCE_NAME STATUS        HOST_NAME

———— ————-   ——————– ———————————

2 whs12  OPEN       cat2

注:使用TAF服务来实现业务在云端节点之间的弱感知甚至零感知的会话漂移

> > > >

Q&A

Q1:公有云上部署高性能Oracle RAC集群有哪些比较好的方法啊?

A1: 首先要注意的是,目前除了Oracle云,甲骨文官方不支持其他云使用Oracle数据库的。当然技术上,其他云是可以安装、部署 O racle数据库的。 O racle云上搭建RAC集群是自动化完成的,对于核心业务可以参考视频的高可用测试进行配置。

Q2:我们公司Oracle数据库是单机模式的,如果想要云上搭建Oracle RAC,您有什么建议?

A2: 云上搭建RAC服务器,使用DATAGUARD的方式从本地单机服务器实时同步数据到云端服务器,然后使用主备切换的方式,将数据库的主库迁移到云上RAC,实现数据库上云。这种是最为成熟的一种上云方式。要注意云上的单机和云上的RAC收费不是一个量级的,建议搭建一个测试环境模拟下。

Q3:已部署普通集群,普通集群如何转换为flex集群?后续要怎么做?

A3: 按照以下步骤:

  • 步骤1:先使用asmca图形界面的convert to oracle flex asm按钮将ASM改为flex asm;

  • 步骤2:root用户使用命令crsctl set cluster mode flex将集群改为flex集群;

  • 步骤3:重启集群生效。

Q4:企业上云有必要全部都搬上云吗?上云哪些是重点?

A4: 现阶段企业上云没有必要全部上云,建议最核心的系统不上云,非最核心和边缘系统上云。虽然上了云,还是建议本地有一个备机以防万一。

上云的有许多优点,例如:

  • 可以降低企业技术开发成本;

  • 现在公有云技术越来越成熟,丰富的产品线可以实现一站式上云;

  • 企业云计算的灵活性非常高;

  • 系统升级方便;

  • 企业上云可以减少运维开支。但最核心不容有失,现阶段,建议还是采用最传统的两地三中心的容灾方法最为稳妥,这种方案相比上云还是更为成熟。

Q5:本地迁移上Oracle云有哪些地方容易出错?怎么选择迁移方案?

A5: 本地迁移上Oracle云在私网通信配置最容易出错,在视频中有介绍。迁移方式的方式有很多,可以根据具体业务的情况的做出选择。这边建议还是DATAGUARD、OGG、数据泵、XTTS等方法为主。各种方法有各自的优缺点,同平台同版本、停机时间短的,建议使用DATAGUARD;数据库数据量小的,可以使用数据泵方法;应用停机时间短、同步粒度灵活(记录级)、不同平台的,建议使用OGG。可以根据实际情况选择其中一种或几种方式结合使用。

Q6:Oracle云创建的云服务器本身有哪些安全防护功能,是否具备病毒防护等功能?

A6: Oracle云创建的云服务器具有病毒防护功能。具体的防护功能有:

  • O racle云会自动查询漏洞信息,根据季度发布的补丁信息给予用户是否打补丁。具体的补丁更新权取决于用户;

  • Oracle云服务器本身的还有IP访问控制和端口访问控制,严格审计登录用户;

  • SSH连接秘钥带有安全审计功能。要注意,云端的数据安全是要用户自己负责的,所以常规的备份和容灾也不可或缺。

↓点这里可 回看本期直播
阅读原文

DBA+社群
我还没有学会写个人说明!
上一篇

这篇文章教你如何根据业务封装自定义hooks

下一篇

Uzi加入小象大鹅立马取关RNG微博,女友怒斥遭人暗箭

你也可能喜欢

评论已经被关闭。

插入图片