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

avatar
作者
筋斗云
阅读量:14

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

oracle rac 连接的节点_节点连接方式_节点连接失败是什么意思

王鹤松

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

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

一、Oracle云的使用

1、个人测试账户申请

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

节点连接失败是什么意思_节点连接方式_oracle rac 连接的节点

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

2、账号登陆

登陆地址

或者

(区域选择日本登录地址)

(区域选择韩国登录地址)

(区域选择美西登录地址)

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

节点连接失败是什么意思_节点连接方式_oracle rac 连接的节点

3、创建虚拟云网络

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

oracle rac 连接的节点_节点连接方式_节点连接失败是什么意思

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

节点连接失败是什么意思_节点连接方式_oracle rac 连接的节点

4、创建SSH秘钥

以xshell工具为例

oracle rac 连接的节点_节点连接方式_节点连接失败是什么意思

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

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

节点连接失败是什么意思_oracle rac 连接的节点_节点连接方式

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

5、创建集群

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

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

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

节点连接方式_节点连接失败是什么意思_oracle rac 连接的节点

节点连接方式_节点连接失败是什么意思_oracle rac 连接的节点

oracle rac 连接的节点_节点连接失败是什么意思_节点连接方式

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

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

6、配置ssh链接

节点连接失败是什么意思_oracle rac 连接的节点_节点连接方式

节点连接方式_oracle rac 连接的节点_节点连接失败是什么意思

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

二、12C 新特性-FLEX集群

1、FLEX集群介绍

节点连接失败是什么意思_节点连接方式_oracle rac 连接的节点

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

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

2、FLEX ASM的体系结构:

节点连接失败是什么意思_节点连接方式_oracle rac 连接的节点

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

oracle rac 连接的节点_节点连接方式_节点连接失败是什么意思

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:

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数据库的。当然技术上,其他云是可以安装、部署Oracle数据库的。Oracle云上搭建RAC集群是自动化完成的,对于核心业务可以参考视频的高可用测试进行配置。

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

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

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

A3:按照以下步骤:

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

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

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

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

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

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

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

↓点这里可回看本期直播

Oracle云构建RAC以及云上高可用性最佳实践

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!