本文根据王鹤松老师在〖deeplus直播第259期〗线上分享演讲内容整理而成。(文末有获取回放的方式,不要错过)
王鹤松
中国东南地区甲骨文用户组(SECOUG)核心成员
随着国家政策逐步推进企业上云,云计算做为重点发展的战略性产业受到多方关注。市面上云厂家很多,各有各的优势。Oracle云凭借独一无二的技术,成为私有云和公有云部署的理想平台。本次技术分享会在Oracle云上完整搭建一套RAC,告诉大家在搭建过程中的注意事项以及要规避的“坑”。还会分享FlEX ASM新特性,同时结合云上高可用最佳实践来保证用户不间断的访问。
一、Oracle云的使用
1、个人测试账户申请
除了要进行邮箱验证和必要的信息录入外,还需要准备一张支持国际货币交易的信用卡,可支持一下三种:
验证过程会模拟一次交易,但会马上撤销,(或者会显示扣费失败,实际验证成功),最终以收到的邮件为准。
2、账号登陆
登陆地址
或者
(区域选择日本登录地址)
(区域选择韩国登录地址)
(区域选择美西登录地址)
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 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:
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以及云上高可用性最佳实践