12c集群日志位置_Oracle RAC集群测试-生产环境最佳方法

c98cafadd1b0a96757f6b428c14a7b52.png

生产环境Oracle RAC集群测试最佳方法(Oracle 11g/12c 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架构如下:

9c9e74b767f46fee0144ffe38610c5db.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集群功能测试

5c288d1a5a761794a1bfbf92a87f8e3f.png
7b419d3d9a1b1fc9de4e6d6b9686b488.png

四、Oracle RAC集群负载测试

5bb767cc322250e7a9af003abf013e34.png

关注我,私信关键字【资料】即可获取Java并发编程/Spring源码分

析/redis/mongodb/dubbo/zookeeperfka /Spring-cloud和高并发、高可用、分布式、

高性能架构设计精讲,还有面试专题的资料

40fc531a1d31f919b93e25dedf99dad6.png

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

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

fgerpdb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.65)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = fgerpdb) ) )

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

3dbdd47a86052d58b05fff0b277b0aad.png

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

客户端tnsnames.ora配置

fgerpdbtaf=  (DESCRIPTION =  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.65)(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 -hUsage: srvctl [-V]Usage: srvctl add database -d  -o  [-m ] [-p ] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s ] [-t ] [-n ] [-y {AUTOMATIC | MANUAL}] [-g ""] [-x ] [-a ""]Usage: srvctl config database [-d  [-a] ]Usage: srvctl start database -d  [-o ]Usage: srvctl stop database -d  [-o ] [-f]Usage: srvctl status database -d  [-f] [-v]Usage: srvctl enable database -d  [-n ]Usage: srvctl disable database -d  [-n ]Usage: srvctl modify database -d  [-n ] [-o ] [-u ] [-m ] [-p ] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s ] [-t ] [-y {AUTOMATIC | MANUAL}] [-g "" [-x ]] [-a ""|-z]Usage: srvctl remove database -d  [-f] [-y]Usage: srvctl getenv database -d  [-t ""]Usage: srvctl setenv database -d  {-t =[,=,...] | -T =}Usage: srvctl unsetenv database -d  -t ""Usage: srvctl add instance -d  -i  -n  [-f]Usage: srvctl start instance -d  {-n  [-i ] | -i } [-o ]Usage: srvctl stop instance -d  {-n  | -i } [-o ] [-f]Usage: srvctl status instance -d  {-n  | -i } [-f] [-v]Usage: srvctl enable instance -d  -i ""Usage: srvctl disable instance -d  -i ""Usage: srvctl modify instance -d  -i  { -n  | -z }Usage: srvctl remove instance -d  [-i ] [-f] [-y]Usage: srvctl add service -d  -s  {-r "" [-a ""] [-P {BASIC | NONE | PRECONNECT}] | -g  [-c {UNIFORM | SINGLETON}] } [-k ] [-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-y {AUTOMATIC | MANUAL}] [-q {TRUE|FALSE}] [-x {TRUE|FALSE}] [-j {SHORT|LONG}] [-B {NONE|SERVICE_TIME|THROUGHPUT}] [-e {NONE|SESSION|SELECT}] [-m {NONE|BASIC}] [-z ] [-w ]Usage: srvctl add service -d  -s  -u {-r "" | -a ""}Usage: srvctl config service -d  [-s ] [-a]Usage: srvctl enable service -d  -s "" [-i  | -n ]Usage: srvctl disable service -d  -s "" [-i  | -n ]Usage: srvctl status service -d  [-s ""] [-f] [-v]Usage: srvctl modify service -d  -s  -i  -t  [-f]Usage: srvctl modify service -d  -s  -i  -r [-f]Usage: srvctl modify service -d  -s  -n -i "" [-a ""] [-f]Usage: srvctl modify service -d  -s  [-c {UNIFORM | SINGLETON}] [-P {BASIC|PRECONNECT|NONE}] [-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]] [-y {AUTOMATIC | MANUAL}][-q {true|false}] [-x {true|false}] [-j {SHORT|LONG}] [-B {NONE|SERVICE_TIME|THROUGHPUT}] [-e {NONE|SESSION|SELECT}] [-m {NONE|BASIC}] [-z ] [-w ]Usage: srvctl relocate service -d  -s  {-i  -t  | -c  -n } [-f] Specify instances for an administrator-managed database, or nodes for a policy managed databaseUsage: srvctl remove service -d  -s  [-i ] [-f]Usage: srvctl start service -d  [-s "" [-n  | -i ] ] [-o ]Usage: srvctl stop service -d  [-s "" [-n  | -i ] ] [-f]Usage: srvctl add nodeapps { { -n  -A //[if1[|if2...]] } | { -S //[if1[|if2...]] } } [-p ] [-m ] [-e ] [-l ] [-r ] [-t [:][,[:]...]] [-v]Usage: srvctl config nodeapps [-a] [-g] [-s] [-e]Usage: srvctl modify nodeapps {[-n  -A /[/if1[|if2|...]]] | [-S /[/if1[|if2|...]]]} [-m ] [-p ] [-e ] [ -l  ] [-r  ] [-t [:][,[:]...]] [-v]Usage: srvctl start nodeapps [-n ] [-v]Usage: srvctl stop nodeapps [-n ] [-f] [-r] [-v]Usage: srvctl status nodeappsUsage: srvctl enable nodeapps [-v]Usage: srvctl disable nodeapps [-v]Usage: srvctl remove nodeapps [-f] [-y] [-v]Usage: srvctl getenv nodeapps [-a] [-g] [-s] [-e] [-t ""]Usage: srvctl setenv nodeapps {-t "=[,=,...]" | -T "="}Usage: srvctl unsetenv nodeapps -t "" [-v]Usage: srvctl add vip -n  -k  -A //[if1[|if2...]] [-v]Usage: srvctl config vip { -n  | -i  }Usage: srvctl disable vip -i  [-v]Usage: srvctl enable vip -i  [-v]Usage: srvctl remove vip -i "" [-f] [-y] [-v]Usage: srvctl getenv vip -i  [-t ""]Usage: srvctl start vip { -n  | -i  } [-v]Usage: srvctl stop vip { -n  | -i  } [-f] [-r] [-v]Usage: srvctl status vip { -n  | -i  }Usage: srvctl setenv vip -i  {-t "=[,=,...]" | -T "="}Usage: srvctl unsetenv vip -i  -t "" [-v]Usage: srvctl add asm [-l ]Usage: srvctl start asm [-n ] [-o ]Usage: srvctl stop asm [-n ] [-o ] [-f]Usage: srvctl config asm [-a]Usage: srvctl status asm [-n ] [-a]Usage: srvctl enable asm [-n ]Usage: srvctl disable asm [-n ]Usage: srvctl modify asm [-l ]Usage: srvctl remove asm [-f]Usage: srvctl getenv asm [-t [, ...]]Usage: srvctl setenv asm -t "= [,...]" | -T "="Usage: srvctl unsetenv asm -t "[, ...]"Usage: srvctl start diskgroup -g  [-n ""]Usage: srvctl stop diskgroup -g  [-n ""] [-f]Usage: srvctl status diskgroup -g  [-n ""] [-a]Usage: srvctl enable diskgroup -g  [-n ""]Usage: srvctl disable diskgroup -g  [-n ""]Usage: srvctl remove diskgroup -g  [-f]Usage: srvctl add listener [-l ] [-s] [-p "[TCP:][, ...][/IPC:][/NMP:][/TCPS:] [/SDP:]"] [-o ] [-k ]Usage: srvctl config listener [-l ] [-a]Usage: srvctl start listener [-l ] [-n ]Usage: srvctl stop listener [-l ] [-n ] [-f]Usage: srvctl status listener [-l ] [-n ]Usage: srvctl enable listener [-l ] [-n ]Usage: srvctl disable listener [-l ] [-n ]Usage: srvctl modify listener [-l ] [-o ] [-p "[TCP:][, ...][/IPC:][/NMP:][/TCPS:] [/SDP:]"] [-u ] [-k ]Usage: srvctl remove listener [-l  | -a] [-f]Usage: srvctl getenv listener [-l ] [-t [, ...]]Usage: srvctl setenv listener [-l ] -t "= [,...]" | -T "="Usage: srvctl unsetenv listener [-l ] -t "[, ...]"Usage: srvctl add scan -n  [-k  [-S 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值