RAC 攻擊 - Oracle 叢集資料庫實戰 / RAC 攻擊 12c / 節點隔離
外觀
本實驗的目標是透過強制觸發 Oracle 叢集軟體的內建隔離功能,來演示 Oracle 叢集軟體的隔離能力。在 Oracle 叢集軟體中,隔離是在節點級別處理的,透過重啟無響應或故障節點。這類似於“射殺另一臺機器”(STOMITH)演算法,但實際上是自殺而不是影響另一臺機器。在線上有很多好的資訊來源。
- 從一個正常執行的叢集開始,資料庫例項正常執行。 監控每個節點上的叢集軟體日誌檔案。在每個節點上,開啟一個新的視窗並執行以下命令[oracle@<node_name> ~]$ tail –f /u01/app/12.1.0/grid/log/`hostname -s`/crsd/crsd.log [oracle@<node_name> ~]$ tail –f /u01/app/12.1.0/grid/log/`hostname -s`/cssd/ocssd.log
- 我們將模擬“拔掉”網路介面,透過將一個私有網路介面關閉。在 collabn2 節點上,透過執行以下命令(作為 root 使用者)關閉私有網路介面。 [root@collabn2 ~]# ifconfig eth1 down或者,您也可以透過在 VirtualBox 中物理地將 **內部網路** 介面斷開連線來模擬此操作。 轉到 collabn2 -> 設定 -> 網路 -> 介面卡 2,取消選中 **電纜已連線** 並單擊 **確定**。
- 執行此命令後,觀察您在步驟 2 中開始監控的日誌檔案。您應該在這些日誌檔案中看到錯誤,最終(可能需要一兩分鐘,實際上)您將觀察到一個節點自行重啟。 如果您使用 **ifconfig** 觸發了故障,則該節點將重新加入叢集,並且例項應該自動啟動。 如果您使用 **VirtualBox** 觸發了故障,則該節點將不會重新加入叢集。
- 哪個檔案包含指示節點未重新加入叢集原因的錯誤訊息?
- 重啟的節點總是與發生故障的節點相同嗎?為什麼或為什麼不?
在我的 12.1.0.2 實驗環境中,叢集軟體日誌檔案的位置現在位於 $ORACLE_BASE/diag/crs/$HOSTNAME/crs/trace 目錄下的 diag_dest 中。 例如:/u01/app/oracle/diag/crs/collabn1/crs/trace/alert.log |