跳轉到內容

RAC 攻擊 - Oracle 叢集資料庫在家/RAC 攻擊 12c/叢集軟體呼叫

來自 Wikibooks,開放書籍,開放世界


本實驗室的目標是演示 Oracle 快速應用程式通知 (FAN) 呼叫。在 11g 之前的版本中,這些也被稱為 Oracle 叢集軟體呼叫。

此功能是 Oracle 叢集軟體的一個相對不為人知的特性,可以觸發指令碼(或整個目錄),以執行您可能希望在發生叢集範圍事件時執行的任何任務。

有關更多資訊,請諮詢此處提供的文件:http://docs.oracle.com/cd/E16655_01/rac.121/e17887/hafeats.htm#BABHAJAH

在本練習中,我們將配置每個節點上的某些 FAN 呼叫指令碼,然後觸發各種叢集事件,以檢視每個事件如何觸發呼叫指令碼。



  1. 從一個正常的執行叢集開始,兩個節點都執行起來。
  2. 從每個伺服器上的一個 shell 提示符(以 oracle 身份登入)開始,導航到 /u01/app/12.1.0/grid/racg/usrco。使用 vi(或您喜歡的編輯器)在其中建立一個名為 callout1.sh 的檔案。該檔案的內容應為:
  3. #!/bin/ksh umask 022 FAN_LOGFILE=/tmp/`hostname`_uptime.log echo $* "reported="`date` >> $FAN_LOGFILE &
  4. 確保檔案的許可權設定為 755,使用以下命令:
  5. [oracle@<node_name> ~]$ chmod 755 /u01/app/12.1.0/grid/racg/usrco/callout1.sh
  6. 監控每個節點上叢集軟體的日誌檔案。在每個節點上,啟動一個新視窗並執行以下命令
  7. [oracle@<node_name> ~]$ tail -f /u01/app/12.1.0/grid/log/`hostname -s`/crsd/crsd.log
  8. 接下來,我們需要觸發一個會導致呼叫觸發的事件。一個這樣的事件是節點關閉。關閉節點 collabn2 上的叢集軟體。
  9. [root@collabn2 ~]# crsctl stop crs CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'collabn2' CRS-2673: Attempting to stop 'ora.crsd' on 'collabn2' CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'colleabn2' CRS-2673: Attempting to stop 'ora.rac.db' on 'collabn2' CRS-2673: Attempting to stop 'ora.DATA.SHARED.advm' on 'collabn2' CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'collabn2' ... CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'collabn2' has completed CRS-4133: Oracle High Availability Services has been stopped.
  10. 執行此命令後,觀察您在步驟 2 中開始監控的日誌檔案。因為我們在測試叢集上設定了很長的超時,所以您可能需要等待幾分鐘才能看到任何內容。
    • 您最終應該看到記錄節點已失敗的條目,之後不久,您應該在 /tmp/<hostname>_uptime.log 檔案中觀察到一個條目,指示節點已關閉。
    • 注意哪些成員執行叢集軟體呼叫指令碼。(倖存的成員可以執行命令以通知客戶端和/或應用程式伺服器,其中一個叢集節點已關閉。)
    您應該在 /tmp/*.log 檔案中看到以下訊息NODE VERSION=2.0 host=collabn2 status=nodedown reason=public_nw_down incarn=0 timestamp=2013-08-13 12:15:51 timezone=-04:00 vip_ips= reported=Tue Aug 13 12:15:51 EDT 2013 INSTANCE VERSION=1.0 service=rac.racattack database=rac instance=RAC2 host=collabn2 status=down reason=USER timestamp=2013-08-13 12:15:51 timezone=-04:00 db_domain=racattack reported=Tue Aug 13 12:15:51 EDT 2013 NODE VERSION=2.0 host=collabn2 status=nodedown reason=public_nw_down incarn=0 timestamp=2013-08-13 12:15:51 timezone=-04:00 vip_ips= reported=Tue Aug 13 12:15:52 EDT 2013 NODE VERSION=1.0 host=collabn2 status=nodedown reason=member_leave incarn=271826344 timestamp=2013-08-13 12:17:23 timezone=-04:00 reported=Tue Aug 13 12:17:23 EDT 2013 NODE VERSION=1.0 host=collabn2 incarn=271826344 status=down reason=member_leave timestamp=13-Aug-2013 12:17:23 reported=Tue Aug 13 12:17:24 EDT 2013
  11. 重新啟動叢集軟體。是否有節點啟動事件?
  12. [root@collabn2 bin]# crsctl start crs
  13. 嘗試關閉其中一臺虛擬機器 - 與之前的測試相比有什麼區別?如果您停用 Linux 網路介面或虛擬網絡卡會怎樣?
  14. 如果您願意,您可以進行更多測試。另一個有趣的事件是資料庫例項意外關閉。在安裝資料庫後返回此實驗室以測試這種情況。
  15. [oracle@collabn2 ~]$ sqlplus "/ as sysdba" SQL*Plus: Release 12.1.0.1.0 Production on Tue Aug 13 12:34:52 2013 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SQL> shutdown abort; ORACLE instance shut down. SQL>


華夏公益教科書