1. 程式人生 > >oracle rac 安裝驗收測試

oracle rac 安裝驗收測試

       對於一個客戶安裝完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程序失敗

Obtain the PID for the CRSD orarootagent:

# cat $GI_HOME/log/<nodename>/agent/crsd

/orarootagent_root/orarootagent_root.pid”

# kill –9 <pid for orarootagent process>

程序重啟

該程序殺掉後,該程序立即自動重啟

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中別名已刪除

刪除成功