对于一个客户安装完oracle rac,客户不知道测试什么,但是如果没有经过一个严格测试,又不知道安装的是否存在问题,下面是我们给一个客户做rac后的安装测试验收报告,大家可以进行参考:
TEST# | 测试项 | 测试过程 | 期待结果 | 测试结果 |
Test1 | 一个节点重启 | 1. 连接客户端 2. 确认客户端连接实例 3. 重启连接的节点 | 重启节点所有资源实例和集群资源offline; Vip、scan Ip、scan listener故障迁移至存活节点; 现存DML语句将中断; 客户端重新连接至存活节点。 | 1. 客户端连接在实例2 2. 重启后,客户端连接到实例1 |
Test2 | OCR的Master节点失败 | 1. 连接客户端 2. 查看master的连接实例 3. 关闭master节点 | 另一节点继续对外提供服务 | 1. 客户端连接在实例1 2. 实例1为master 3. 关闭实例1后,客户端连接到实例2资源漂移到实例2 |
Test 3 | 重启失败节点 | 重启失败节点 | 节点启动,集群恢复 | 3. 重启实例1后,资源漂移到实例2 |
Test 4 | 同时重启所有节点 | 1. 在两个节点上同时执行reboot 2. 两个节点重启后,执行crsctl stat res –t”. | 集群状态恢复正常 | |
Test 5 | 实例计划外宕掉 | # ps –ef | greppmon kill the pmon process: # kill –9 <pmonpid> | 杀掉进程后实例down掉,之后自动重启 | 1. 客户端连接在实例2 2. 实例2宕掉自动重启
|
Test 6
| 实例计划内宕掉 | 执行 shutdown abort | Shutdown的实例停止对外服务,直至手动启动数据库实例 | 1. 客户端连接在实例1 2. 实例1宕掉,不进行自动重启 |
Test 7
| 重启失败节点 | 执行startup | Shutdown的实例启动,集群恢复 | 1,集群恢复正常 |
Test 8
| ASM实例计划外宕掉 | # ps –ef | greppmon kill the pmon process: # kill –9 <pmonpid> | 被杀进程的ASM实例及在之上的数据库实力均stop后自动重启 | 1. asm自动重启 2. DB自动重启 |
Test 9
| 多实例重启失败节点 | 分别在两个节点执行 # ps –ef | greppmon kill the pmon process: # kill –9 <pmonpid> | 两节点数据库实力stop然后自动重启 | 1. DB自动重启 |
Test10
| Lisener失败 | # ps –ef | grep tnslsnr Kill the listener process: # kill –9 <listener pid> | 监听自动重启 | Lisener自动重启 |
Test11 | Scan Lisener失败 | # ps –ef | grep tnslsnr Kill the listener process: # kill –9 <listener pid> | 监听自动重启 | Scan Lisener自动重启 |
Test12 | Public 网络失败 | 禁用public网卡 | 被拔网卡ora.*.network和linstner资源offline 被拔网卡节点的scan vips和listener将转移至另一节点 被拔网卡节点vip转移至另一节点 实例运行但不对外提供服务 数据库服务转移至存活节点 | 被拔网卡ora.*.network和linstner资源offline 被拔网卡节点的scan vips和listener将转移至另一节点 被拔网卡节点vip转移至另一节点 实例运行但不对外提供服务 数据库服务转移至存活节点
|
Test13 | 私有网络失败 | 禁用private网卡 | 产生脑裂,驱逐节点后单一节点对外提供服务 | 第一节点幸存 第二节点资源被清理,节点未重启 |
Test14 | 节点丢失OCR和Votedisk磁盘 | 移除OCR所在的磁盘 | 丢失磁盘节点停止服务,另一节点不受影响 | 丢失磁盘节点集群资源转移至另一节点 丢失磁盘节点数据库ideal 第二节点正常 |
Test15 | 节点找回OCR和Votedisk磁盘 | 重新添加之前的OCR磁盘 | 集群状态恢复 | 集群状态自动恢复正常 |
Test16 | 节点磁盘单路径访问 | 断开一条存储链路
| 多路径启用 对数据库实例没有影响 |
|
Test17 | 网卡测试 | 断开一个节点所有网线 | CSSD进程将会检测脑裂情况,最小的节点号将会保持,客户端所有进程被终止,资源被清除,如果资源未清除,系统将会重启。一旦网络恢复,OHASD 将会重启堆栈。 |
|
集群进程故障测试
TEST# | 测试项 | 测试过程 | 期待结果 | 测试结果 | |
Test1 | CRSD进程失败 | Obtain the PID for the CRSD process: # ps –ef | grep crsd Kill the CRSD process: # kill –9 <crsdpid> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test2 | EVMD进程失败 | # ps –ef | grepevmd Kill the EVMD process: # kill –9 <evmdpid> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test3 | CSSD 进程失败 | Obtain the PID for the CSSD process: # ps –ef | grepcssd Kill the CSSD process: # kill –9 <cssdpid> | 服务器节点重启 | 1. 该节点服务器重启 2. 集群将重新配置 | |
Test4 | CRSD ORAAGENT RDBMS 进程失败 | Obtain the PID for the CRSD oraagent for the RDBMS software owner: # cat $GI_HOME/log/<nodename> /agent/crsd/oraagent_<rdbms_owner> /oraagent_<rdbms_owner>.pid # kill –9 <pid for RDBMS oraagent process> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test5 | CRSD ORAAGENT Grid Infrastructure 进程失败 | Obtain the PID for the CRSD oraagent for the GI software owner: # cat $GI_HOME/log/<nodename>/agent /crsd/oraagent_<GI_owner>/ oraagent_<GI_owner>.pid # kill –9 <pid for GI oraagent process> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test6 | CRSD ORAROOTAGENT进程失败 |
| 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test 7
| OHASD ORAAGENT 进程失败 | Obtain the PID for the OHASD oraagent: # cat $GI_HOME/log/<nodename>/agent/ ohasd/oraagent_<GI_owner>/ oraagent_<GI_owner>.pid # kill –9 <pid for oraagent process> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test 8 | OHASD ORAROOTAGENT进程失败 | Obtain the PID for the OHASD orarootagent: # cat $GI_HOME/log/<nodename>/agent/ohasd/orarootagent_root/orarootagent_root.pid # kill –9 <pid for orarootagent process> | 进程重启 | 该进程杀掉后,该进程立即自动重启 | |
Test9 | CSSDAGENT Process Failure | Obtain the PID for the CSSDAGENT: # ps –ef | grep cssdagent # kill –9 <pid for cssdagent process> | 进程重启 | 进程立即自动重启 |
ASM功能测试
TEST# | 测试项 | 测试过程 | 期待结果 | 测试结果 |
Test1 | 检查ASM磁盘 | Login to ASM via SQL*Plus and run: “select name, group_number, path, state, header_status, mode_status, label from v$asm_disk” | 获得ASM磁盘信息 | 获得ASM磁盘信息 |
Test2 | 添加ASM磁盘 | 执行: create diskgroup data2 external redundancy disk '/dev/asm-disk2'; | 获得新添加的磁盘组 | 添加磁盘组成功 |
Test3 | 添加一个磁盘到ASM磁盘组 | 执行: alterdiskgroup data2 add disk ‘/dev/asm-disk2’; | Data2磁盘组获得添加磁盘,数据reblance | 添加磁盘成功 |
Test4 | 删除磁盘组中的一个磁盘 | 执行: alter diskgroup data drop disk '/dev/asm-disk2'; | 删除磁盘成功数据无损失 | 成功 |
Test5 | undrop一个磁盘到ASM磁盘组 | 执行: alter diskgroup data drop disk '/dev/asm-disk2'; 然后执行 alter diskgroup data drop disk '/dev/asm-disk2'; | 取消删除命令 | 取消成功 |
Test6 | drop一个磁盘组 | 执行: drop diskgroupdata2;
| 删除磁盘组 | 删除成功 |
Test7 | 编辑 rebalance power of an active operation | Login to ASM via SQL*Plus and run: “alter diskgroup<dg name> add disk '<candidate1 path> ;” • Before the rebalance completes run the following command via SQL*Plus: “alter diskgroup<dg name> rebalance power <1 – 11>;”. | 修改磁盘组reblance级别 | 修改成功 |
Test8 | 核实数据通信及ASM文件访问情况 | 开启所有数据库实例 登录ASM实例查看视图v$asm_clint | 每个数据库实例在v$asm_client视图中列出 | 每个数据库实例在v$asm_client视图中列出 |
Test9 | 使用sqlplus检查磁盘组元数据一致性 | 使用sqlplus登录ASM并执行 alter diskgroup <name> check all
| 如果磁盘组内部一致返回 “Diskgroup altered”,若不一致则返回问题描述 | 返回Diskgroup altered 磁盘组内部一致 |
Test10 | ASMCMD查看可见的候选盘 | 添加一块磁盘 使用ASMCMD登录ASM执行 lsdsk --candidate | 显示最新添加的磁盘 | ASMCMD> lsdsk --candidate Path /dev/asm-disk2 |
Test11 | 使用ASMCMD为磁盘组添加磁盘 | 使用lsdsk --candidate查找可用磁盘 创建XML配置文件: <chdg name="DATA"> <add> <dsk string="/dev/asm-disk2"/> </add> </chdg> 使用ASMCMD登录ASM执行: chdg <config file>.xml”
| 磁盘添加成功,数据rebalanced到磁盘组中的每一个磁盘中 | 磁盘添加成功,数据分布在磁盘组中所有磁盘 |
Test12 | 使用ASMCMD为磁盘组删除磁盘 | 使用lsdsk -G <dg name> -k 确认要删除的磁盘名称 创建XML配置文件: <chdg name=" DATA "> <drop> <dsk name="DATA_0001 "/> </drop> </chdg> 使用ASMCMD登录ASM执行: chdg <config file>.xml” | 成功删除磁盘,数据无损失 | 成功删除磁盘 |
Test13 | 创建别名 | Login to ASM via SQL*Plus and run:
“alter diskgroup DATA add alias '+DATA/my_files/datafile_alias ' for '+DATA/ORCL/DATAFILE/USERS.259.884516315 ';” | 查看v$asm_alias中存在创建的别名 | 成功创建别名 |
Test14 | 删除别名 | Login to ASM via SQL*Plus and run: alter diskgroup DATA drop alias '+DATA/my_files/datafile_alias'; | 查看v$asm_alias中别名已删除 | 删除成功 |