转: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$ fromZHS16GBK  、 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;
2CRS正常启动关闭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正常维护,正常关闭节点1Crsctl stop crsScan vip,vip漂移到节点二,原先连接到节点一的连接自动连接至节点二是否正常:
14正常维护,正常关闭节点2Crsctl stop crsvip漂移到节点一,原先连接到节点二的连接自动连接至节点一是否正常:

针对测试列表中的第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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值