转:Oracle RAC万能集群测试大全 支持11g/12c/18c/19c版本-程序员宅基地

技术标签: 操作系统  数据库  

生产环境Oracle RAC集群测试最佳方法(支持Oracle 11g/12c/18c/19c RAC安装后期测试过程)

一、Oracle RAC集群测试背景

某中大型制造业公司,由于要新上项目,建设了一套业务系统-ERP系统,这套系统的数据库环境是Oracle RAC(RHEL Linux7+Oracle11gR2 RAC)架构 ,根据风哥提供的建设方案项目已经建设完成。

这套ERP系统的RAC集群数据库在上线之前,我们需要对RAC集群做一些功能测试,这个测试方法适用于Oracle11g/12c,也适用于oracle18c/19c。

二、Oracle RAC集群的介绍

在测试之前,这里风哥给大家介绍一下Oracle RAC是什么:Oracle 真正应用集群技术(Oracle Real Application Cluster )是Oracle 9i及以后版本,Oracle 9i之前叫OPS集群。Oracle RAC主要支持Oracle9i、10g、11g、12c版本(18c,19c)。 在Oracle RAC环境下,Oracle集群提供了集群软件和存储管理软件,集群软件CRS/GRID,存储管理软件ASM(自动存储管理),多个节点共享一份数据。

ORACLE RAC架构如下:

ORACLE RAC架构.png

其中Oracle RAC在物理架构上,硬件设备主要包括如下部分:

服务器、共享存储设备(共享存储,光纤交换机,HBA卡,光纤线)、网络设备(网络交换机,光纤交换机,网线)

1)服务器

我们称这个服务器为“数据库服务器”,“数据库主机”,在RAC的术语中我们又称其为“节点”,服务器的配置应该相同,cpu,内存等。

2)网络设备

每台服务器上至少两块物理网卡,分别用于主机间私有通信和对外公用通信,也可以有多快网卡,进行网卡绑定,实现网卡的冗余。

私有通信的网卡叫private NIC,对应的IP为private IP。

公用通信的网卡叫public NIC,对应的IP为public IP。

3)共享存储设备

共享存储是整个RAC架构中的核心

每台服务器至少一块/两块HBA卡,用于共享存储的连接。

可以用光纤线直连存储,也可以通过光纤交换机,我们建议使用光纤交换机。

RAC是一个典型的“多实例,单数据库”架构,被所有节点共享,并行访问。

数据库数据文件,控制文件,参数文件,联机重做日志文件,甚至归档日志文件都放在共享存储

上,并保证可以被所有节点同时访问。IO性能要求比较高,一般用光纤线连接。

 

 

另外Oracle RAC还有两种集群模式:

Oracle  RAC 同时具备HA(High Availiablity) 、LB(LoadBalance)。

1)Failover(故障转移):

它指集群中任何一个节点的故障都不会影响用户的使用,连接到故障节点的用户会被自动转移到健康节点,从用户感受而言, 是感觉不到这种切换。

2)LoadBalance(负载均衡):

就是把负载平均的分配到集群中的各个节点,从而提高整体的吞吐能力。

 

三、Oracle RAC集群功能测试

序号 OracleRAC测试项目 OracleRAC测试方法 OracleRAC正确结果 OracleRAC测试结果
1 检查数据库的版本和补丁 select * from v$version; Oracle 11/12c相应版本 是否正常:
2 数据库启动和关闭 startup 能正常启动和关闭 是否正常:
  Shutdown immediate
3 逻辑备份 exp,expdp 导出成功 是否正常:
4 字符集 select name,value$ from ZHS16GBK  、 UTF8 是否正常:
props$
where name like
'%CHARACTERSET%';
5 创建/删除 create tablespace fgedudata01 创建成功 是否正常:
表空间 datafile '+fgedudata1’  删除成功
  size 10m autoextend off;  
  drop tablespace fgedudata01  
  including contents and files;  
6 创建/删除用户 create user fgedu identified 创建成功 是否正常:
 by test default tablespace 删除成功
fgedudata01 temporary tablespace temp;  
drop user fgedu cascade;  
7 创建/删除表 create table fgedu.itpux 创建成功 是否正常:
(name varchar2(10),id number); 删除成功
drop table fgedu.itpux;  
8 插入/删除数据 Insert into fgedu.itpux values('itpux01',’1); 插入成功 是否正常:
Commit; 删除成功
Delete from fgedu.itpux  
Commit;  
9 客户端连接到 sqlplus “sys/oracle@itpuxdb as sysdba”; 连接成功 是否正常:
数据库
10 修改数据库为归档模式 Alter system set db_recovery_file_dest='+dgrecover' scope=spfile; 归档模式 是否正常:
alter system set db_recovery_file_dest_size=200G scope=spfile;
Srvctl stop database -d fgerpdb
Sqlplus “/as sysdba”
Startup mount;
Alter database archivelog;
Shutdown immediate
Srvctl start database -d fgerpdb

四、Oracle RAC集群负载测试

序号 OracleRAC测试内容 OracleRAC测试方法 OracleRAC正确结果 OracleRAC测试结果
1 客户端连接数据库(RAC方式) sqlplus “sys/itpux123@itpuxdb as sysdba”; 连接成功,并且每次连接有可能分布到不同的实例上 是否正常:
select instance_name from v$instance;
2 CRS正常启动关闭 crsctl start crs 能正常启动和关闭 是否正常:
crsctl stop crs
3 网络连接中断(public网络) 拔掉节点一public网卡的网线 本节点实例正常,vip漂移到节点二,listener,ons,network服务offline,原先连接到节点一的连接自动连接至节点二 是否正常:
4 网络连接恢复(public网络) 插回节点一public网卡的网线 vip漂移回节点一,listener,ons,network服务自动onlien,crs资源恢复正常 是否正常:
5 网络连接中断(private网络) 拔掉节点一private网卡的网线 节点二重启,crs资源offline,vip漂移到节点一,原先连接到节点二的连接自动连接至节点1 是否正常:
6 网络连接恢复(private网络) 插回节点一private网卡的网线,使用crsctl start crs启动crs 节点二的vip漂移回节点二,节点二crs资源恢复正常 是否正常:
7 网络连接中断(public网络) 拔掉节点二public网卡的网线 本节点实例正常,vip漂移到节点一,listener,ons,network服务offline,原先连接到节点二的连接自动连接至节点一 是否正常:
8 网络连接恢复(public网络) 插回节点二public网卡的网线 vip漂移回节点二,listener,ons,network服务自动onlien,crs资源恢复正常 是否正常:
9 网络连接中断(private网络) 拔掉节点二private网卡的网线 节点二重启,crs资源offline,vip漂移到节点一,原先连接到节点二的连接自动连接至节点1 是否正常:
10 网络连接恢复(private网络) 插回节点二private网卡的网线,使用crsctl start crs启动crs 节点二的vip漂移回节点二,节点二crs资源恢复正常 是否正常:
11 负载均衡 开启多个数据库连接 多次连接应分布在两个节点 是否正常:
12 透明故障切换 使用RAC的方式连接数据库 连接不中断,查询继续并自动切换至另一实例 是否正常:
select instance_name from v$instance;
关闭当前实例后
select instance_name from v$instance;
13 正常维护,正常关闭节点1 Crsctl stop crs Scan vip,vip漂移到节点二,原先连接到节点一的连接自动连接至节点二 是否正常:
14 正常维护,正常关闭节点2 Crsctl stop crs vip漂移到节点一,原先连接到节点二的连接自动连接至节点一 是否正常:

针对测试列表中的第1点:客户端连接到数据库(RAC负载均衡测试)

Oracle 客户端的tnsnames.ora模式如下:只需要配置scan对应的name或ip地址即可,如下所示:

fgerpdb =
  (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = www.fgedu.net.cn)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = fgerpdb) ) )
 

 

最终Oracle RAC的测试效果如下:

QQ图片20190327110826.png

针对测试列表中的第12点:客户端连接到数据库(RAC透明切换测试),

客户端tnsnames.ora配置

fgerpdbtaf= 
 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = www.fgedu.net.cn)(PORT = 1521)) (LOAD_BALANCE = YES) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = fgerpdb) (FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5) ) ) )
 

tnsping fgerpdbtaf  测试连通性

连通ok后,再用第12点的方式测试透明故障切换

 

五、Oracle RAC集群维护命令

5.1.Oracle RAC常用命令工具

以下内容是风哥推荐大家需要熟悉的常用命令,日常工作中需要经常参考来使用。

$ srvctl -h
Usage: srvctl [-V]
Usage: srvctl add database -d <db_unique_name> -o <oracle_home> [-m <domain_name>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s <start_options>] [-t <stop_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL}] [-g "<serverpool_list>"] [-x <node_name>] [-a "<diskgroup_list>"] Usage: srvctl config database [-d <db_unique_name> [-a] ] Usage: srvctl start database -d <db_unique_name> [-o <start_options>] Usage: srvctl stop database -d <db_unique_name> [-o <stop_options>] [-f] Usage: srvctl status database -d <db_unique_name> [-f] [-v] Usage: srvctl enable database -d <db_unique_name> [-n <node_name>] Usage: srvctl disable database -d <db_unique_name> [-n <node_name>] Usage: srvctl modify database -d <db_unique_name> [-n <db_name>] [-o <oracle_home>] [-u <oracle_user>] [-m <domain>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s <start_options>] [-t <stop_options>] [-y {AUTOMATIC | MANUAL}] [-g "<serverpool_list>" [-x <node_name>]] [-a "<diskgroup_list>"|-z] Usage: srvctl remove database -d <db_unique_name> [-f] [-y] Usage: srvctl getenv database -d <db_unique_name> [-t "<name_list>"] Usage: srvctl setenv database -d <db_unique_name> {-t <name>=<val>[,<name>=<val>,...] | -T <name>=<val>} Usage: srvctl unsetenv database -d <db_unique_name> -t "<name_list>" Usage: srvctl add instance -d <db_unique_name> -i <inst_name> -n <node_name> [-f] Usage: srvctl start instance -d <db_unique_name> {-n <node_name> [-i <inst_name>] | -i <inst_name_list>} [-o <start_options>] Usage: srvctl stop instance -d <db_unique_name> {-n <node_name> | -i <inst_name_list>} [-o <stop_options>] [-f] Usage: srvctl status instance -d <db_unique_name> {-n <node_name> | -i <inst_name_list>} [-f] [-v] Usage: srvctl enable instance -d <db_unique_name> -i "<inst_name_list>" Usage: srvctl disable instance -d <db_unique_name

转载于:https://www.cnblogs.com/Memories-off/p/10766491.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30385925/article/details/99798066

智能推荐

2021SC@SDUSC 山大智云 1.综述_sdcus-程序员宅基地

文章浏览阅读377次。2021SC@SDUSC 山大智云 1.综述2021SC@SDUSC0.项目简介"山大智云"是以网盘功能为基础的在线应用系统。以seafile开源版本为基础,拓展网盘的应用功能和场景化的业务适配。该项目已事先校园统一认证,文件锁,在线编辑预览,全文搜索,文件病毒扫描,审计,离线上传等功能。1.项目配置1.0 安装Ubuntu18.041.1 安装Dockerapt install docker.server1.2 创建Docker容器docker run -it -p 8000:800_sdcus

fdisk 分区及格式化-程序员宅基地

文章浏览阅读251次。# 对分区sdb操作, m 帮助fdisk /dev/sdb建好分区,格式化文件系统:挂载:mount /dev/sdb4 /3转载于:https://www.cnblogs.com/listenerln/p/7388655.html_fdisk可以格式化分区吗

bunsenlasb中文Linux,在线试用 200 多种 Linux 和 Unix 操作系统-程序员宅基地

文章浏览阅读178次。只要打开该网站,选择你需要的 Linux/Unix 发行版,然后开始试用!-- Sk(作者)不久前我们介绍过 OSBoxes ,该网站提供了一系列免费且开箱即用的 Linux 和 Unix 虚拟机。你可以在你的 Linux 系统中下载这些虚拟机并用 VirtualBox 或 VMWare workstation 试用。今天,我偶然发现一个名叫 “DistroTest” 的类似服务。与 OSBoxe..._bunsenlabs

Linux芯片级移植与底层驱动(基于3.7.4内核) --中断控制器_cpsid if-程序员宅基地

文章浏览阅读327次。3. 中断控制器驱动在Linux内核中,各个设备驱动可以简单地调用request_irq()、 enable_irq()、disable_irq()、local_irq_disable()、local_irq_enable()等通用API完 成中断申请、使能、禁止等功能。在将Linux移植到新的SoC时,芯片供应商需要提供该部分API的底层支持。local_irq_disabl_cpsid if

从10万到百亿营收的背后 | 同程旅游CTO V课堂实录_ctov;-程序员宅基地

文章浏览阅读2.7k次。转载酷饭网 http://qoofan.com/read/RnMkBREqGD.html前言在 10 多年的同程创业历程中,张海龙经历了从 5 人到万人的扩张、融资等过程,他对电子商务、O2O、在线旅游、创业历程、文化打造、技术团队提升等也有较深的理解和心得。作为同程旅游联合创始人暨现任CTO,张海龙全面负责着同程网一千多人的研发团队管理及同程研发中心的_ctov;

我看不懂,但我大受震撼!-程序员宅基地

文章浏览阅读235次。大家好,我是极客重生,9月开始了,又到了看书的季节。经典的书籍不在乎多,而在乎认真读完,领悟作者(大师)的真谛,经典书,就是值得反复阅读的书,每次阅读都可以获得新的认知!看一看有没有你喜欢..._linux操作系统知识地图2.0 pdf

随便推点

tomcat的classpath设置_tomcat配置classpath-程序员宅基地

文章浏览阅读560次。在tomcat启动的时候,tomcat不会用JDK的classpath,这个是在tomcat启动的catalina.sh里面设置的。如果需要把自己的目录加进去的话,在下面加一句。CLASSPATH:自己的目录。_tomcat配置classpath

DNS主从服务器详细配置_主dns和从dns怎么设置-程序员宅基地

文章浏览阅读517次。DNS域名的分层结构:根域 国家域 顶级域 二级域 主机名DNS解析过程:DNS的解析过程是分层解析的,一般客户机将解析的请求发送给它的DNS服务器,DNS服务器首先是从根DNS服务器开始改进域名解析请求,根将com域的IP反馈给客户机的本地DNS服务器,本地DNS服务器访问com域服务器,com域服务器反馈baidu域的IP给本地DNS服务器,本地DNS服务器访问baidu域服务器询问WWW域服务器的IP,baidu域服务器给DNS服务器反馈www域的ip,这时本地DNS服务器得到www.baid_主dns和从dns怎么设置

栈实现综合计算器(中缀表达式)_栈计算器中缀-程序员宅基地

文章浏览阅读123次。代码实现package com.springboot.数据结构.stack;/** * @author: 牧羊 * @Date: 2020/4/29 15:28 * 栈实现综合计算器(中缀表达式) */public class Calculator { public static void main(String[] args) { String..._栈计算器中缀

Qt-装饰者模式_qt装饰模式-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏4次。1. 定义装饰者模式 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。装饰者和被装饰对象有共同的超类型你可以用一个或多个装饰者包装一个对象。既然装饰者和被装饰对象有相同的类型,所以在任何需要原始对象(被包装)的场合,可以用装饰过的对象代替它。装饰者可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,以达到特定的目的。对象可以在任_qt装饰模式

how2j学习日志——J2EE(2018年3月28日)-程序员宅基地

文章浏览阅读152次。1.开始跟着站长学习J2EE,首页是简单的Tomcat安装和部署,我从官网上下载的是7.0.85版本,修改server.xml中的默认端口号为80。80端口是web服务的默认端口,因此在浏览器上输入127.0.0.1就行了,不需要再输入端口号。2.由于我把之前的继承包WampServer卸载了,因此去官网上重新下载了一个MySql服务器,版本是5.1.38(64位)。选择cu..._howj2ee

面向对象的三大特征_面向对象的三大特性-程序员宅基地

文章浏览阅读9.8k次,点赞5次,收藏37次。面向对象的三大特征——封装、继承、多态_面向对象的三大特性