5 管理oracle叢集軟體元件

安佰勝發表於2010-11-10


5 管理oracle叢集軟體元件

===========================

這章講述如何管理oracle叢集軟體環境
講述瞭如何管理表決磁碟和ocr
主要講述以下內容:

關於oracle叢集軟體的概述
備份恢復表決磁碟
新增刪除表決磁碟
備份恢復ocr
修改ocr的配置
ocr疑難問題解決

---------------------

關於oracle叢集軟體

oracleRAC使用oracle叢集軟體將多個節點捆綁在一起作為一個統一的server
oracle的叢集軟體是獨立於資料庫軟體外的軟體
在RAC環境中,oracle叢集軟體監控所有oracle的元件,如例項或監聽等
如果發生錯誤,叢集軟體會嘗試重啟發生錯誤的oracle元件,並重定向為新的可用元件

oracle叢集軟體為執行在叢集中的應用提供了高可用性的網路框架
當系統啟動,叢集軟體會確保叢集管理應用的啟動
同時oracle叢集軟體還監控應用程式,保證他們隨時都是可用的
例如,當有應用程式失效,oracle叢集軟體會根據你定義的指令碼去自動重啟出錯的程式,然後,你可以在另一個節點上啟動應用程式程式來啟動失效的程式

oracle叢集軟體包括兩個重要的組成,表決磁碟和ocr
oracle的表決磁碟是管理叢集中節點的從屬關係的檔案
ocr是管理oracleRAC資料庫配置資訊的檔案

oracle叢集軟體安裝程式在共享儲存中建立表決磁碟和ocr
如果在安裝過程中選擇了普通冗餘,oracle叢集軟體會自動獲得檔案的複本來避免單點故障,同時普通冗餘也避免了使用第三方的儲存級別的冗餘來保證高可用;
如果使用一般冗餘,oracle叢集軟體會自動建立兩個ocr檔案的鏡象和3個表決磁碟的鏡象

===========================

備份恢復表決磁碟

通過冗餘硬體和軟體來避免單點故障來實現高可用配置
當叢集中一個元件down掉後,oracle叢集軟體會重定向到他管理的資源到一個備份的元件

表決磁碟用來儲存節點的從屬資訊。
一個節點在任何時候都必須要能夠訪問至少一半以上的表決磁碟
為了避免同時丟失複用的表決磁碟,每個表決磁碟必須要存放在不同的裝置上,如,存放在不同的磁碟中
例如,如果使用5塊表決磁碟,那麼每個節點在任何時候都必須能夠訪問至少3塊表決磁碟
如果某個節點在某一時候不能訪問要求限度最低的表決磁碟的數量,那麼這個節點就會離線,從叢集衝脫離出來
當錯誤發生後,並且表決磁碟的歸屬重新重置後,可以通過命令來恢復發生錯誤的節點並將其重新恢復到叢集中

-------------------

備份表決磁碟

因為叢集中節點的從屬關係並不經常改變,所以不需要每天都對錶決磁碟做備份
但以下情況下最好對錶決磁碟做備份

1、安裝結束後
2、在新增或刪除機群中的節點後
3、在新增或刪除表決磁碟後

使用linux命令dd來對錶決磁碟做copy備份
其中voting_disk_name代表要備份的表決磁碟
backup_file_name代表想要存放表決磁碟中內容的檔案
使用命令:

dd if=voting_disk_name f=backup_file_name

如果表決磁碟在裸裝置中儲存,用裝置名來替代voting_disk_name

dd if=/dev/sdd1 f=/tmp/voting.dmp

當使用dd命令備份表決磁碟的時候,CRS程式可以是啟用狀態的
也就是說在對錶決磁碟使用dd命令來備份的時候是不需要停掉CRS程式的

----------------------

恢復表決磁碟

如果表決磁碟發生故障而不再可用,可以使用之前備份的表決磁碟來恢復
使命下面的命令來恢復表決磁碟

dd if=backup_file_name f=voting_disk_name

其中backup_file_name代表備份檔案
voting_disk_name代表要恢復的表決磁碟

-----------------------

新增刪除表決磁碟

在oracleRAC安裝後可以新增或者刪除表決磁碟

以root身份執行

crsctl add css votedisk path
crsctl delete css votedisk path

其中path代表的是要新增或刪除的votingdisk的全路徑

如果叢集是處於down的狀態,執行以上命令要加上
-force選項
-force選項在例項啟動的狀態下也可以加,不過沒什麼意義

===============================

備份恢復oracle叢集註冊軟體-OCR

每4小時oracle叢集軟體自動建立ocr的副本
在任何時候,oracle叢集軟體至少要儲存3份ocr的副本,分別是
4小時的、1天的以及一星期的副本

使用者不能指定備份ocr的頻率以及儲存的ocr副本的數量
可以使用備份軟體來複制系統自動生成的ocr副本到不同的磁碟驅動器以達到多工複用的目的
在redhat linux系統中,預設存放ocr副本的路徑是
/CRS_HOME/cdata/cluster_name
其中cluster_name代表叢集名
CRS_HOME代表crs主目錄

本小節包括以下內容

檢驗ocr備份的有用性
備份ocr
恢復ocr

--------------

檢查ocr備份的有用性

可以在任意節點上執行以下命令來檢視最近的ocr備份

ocrconfig -showbackup

---------------

備份ocr
 
因為ocr的重要性,oracle建議使用ocrconfig工具每天至少一次的自動備份ocr
在使用自動備份ocr的同時,還可以匯出ocr中的內容到檔案中
在以下情況下最好對ocr進行備份
新增或刪除節點
修改oracle叢集軟體的資源
建立資料庫

匯出ocr內容到檔案中可以在修改ocr配置出現異常的時候進行恢復
如遇到不能解決的問題或者在對資料庫進行修改後不能啟動資料庫的時候,可以重新匯入備份的ocr資訊來使叢集恢復可用

以root身份執行

ocrconfig -export backup_file_name

其中backup_file_name是用來存放備份資訊的檔案

---------------------

恢復ocr

本節講述兩種恢復ocr的辦法
第一中是使用自動生成的ocr檔案的副本恢復
第二種是使用手動建立的ocr匯出檔案

在故障發生的時候,在恢復ocr前,首先要確保ocr是不可用的
使用下面的命令來檢查ocr的統計情況

ocrcheck

如果命令沒有返回至少一個類似
'Device/File integrity check succeeded'
的資訊,那麼就意味著所有的ocr都壞掉了
這種情況下就必須要恢復ocr

------------------

從自動生成的ocr備份中恢復ocr

1、以root身份執行命令,確認可用的ocr備份
#ocrconfig -show backup

2、使用ocrdump命令來檢查備份的內容
$ocrdump -backupfile file_name
其中file_name是ocr備份檔案

3、以root身份在每個節點上停止叢集軟體
在所有節點上執行
#crsctl stop crs

4、以root身份執行命令,使用備份的ocr檔案恢復ocr
其中備份檔案是在第一步中show出來的備份檔案
並確保在執行恢復命令前ocr裝置是可用的
#ocrconfig -restore file_name

5、以root身份,重新啟動機群中所有的節點
在所有節點執行以下命令
#crsctl start crs

6、使用CVU來驗證ocr的完整性
使用引數-n all來列出機群中所有節點的資訊

$cluvfy comp ocr -n all [-verbose]

-------------------

從ocr匯出檔案中恢復ocr

當ocr配置出錯的時候,可以使用
ocrconfig -import來恢復

用之前匯出的ocr檔案來恢復ocr

1、將之前使用ocrconfig -export建立的ocr匯出檔案移到能夠訪問的路徑下

2、以root身份,在所有的節點執行
#crsctl stop crs
 
3、以root身份時候用下面命令匯入ocr備份檔案中的內容
#ocrconfig -import file_name
其中file_name就是匯出的ocr內容的備份檔案

4、以root身份在所有節點上執行命令,啟動叢集
#crsctl start crs

5、使用CVU來驗證ocr的完整性
使用引數-n all來列出機群中所有節點的資訊

不能使用ocrconfig命令來匯入自動生成的ocr副本檔案

===================================

修改ocr配置

本節講述如何管理ocr
ocr中存放叢集中節點的列表資訊
如,例項和節點之間的對應關係
以及oracle叢集中應用程式的profile被叢集軟體修改的記錄

本節包括以下主題
增加一個ocr地址
替換更新ocr
在本地節點上修復ocr
刪除ocr

-------------------

新增ocr地址

在安裝或升級oracleRAC後可以新增ocr
如果已經對ocr做了鏡象,那麼就沒必要再新增了
在使用一般冗餘的情況下oracle叢集軟體自動管理兩個ocr鏡象
oracleRAC環境不支援多於2個ocr

使用以下命令新增ocr
可以使用檔案的全路徑,也可以使用某一塊單獨的磁碟
以root身份執行
#ocrconfig -replace ocr destination_file
#ocrconfig -replace ocr disk

使用下面的命令來新增ocr鏡象
#ocrconfig -replace ocrmirror destination_file
#ocrconfig -replace ocrmirror disk

-------------------

替換ocr

如果想要改變已經存在的ocr,或者改變失效兩個ocr中失效的一個的路徑
可以按照下面的步驟操作

1、使用ocrcheck工具來確認要替換的ocr檔案之外的另一個ocr是線上的
ocrcheck

2、確認oracle叢集軟體在要操作的節點上正常執行
使用下面的命令
crsctl check crs

3、使用下面的命令來替換ocr
ocrconfig -replace ocr destination_file
ocrconfig -replace ocr disk

4、使用下面的命令來替換ocr鏡象的文職
ocrconfig -replace ocrmirror destination_file
ocrconfig -replace ocrmirror disk

5、如果在叢集中有節點是關閉的
在重啟節點後,在節點上使用下面的命令使節點重新加入叢集
ocrconfig -repair

-----------------------

在本地節點上修復ocr

在刪除ocr前,至少要有一個ocr是線上的
你可以刪除ocr的鏡象,用RAID來做冗餘

刪除ocr按照以下步驟進行

1、使用ocrcheck工具來確認至少有一個可用的ocr線上
ocrcheck

2、在任意一個節點上使用下面的命令來刪除check出來的ocr
ocrconfig -replace ocr
在任意節點上執行這個命令會更新系統中所有的ocr

===========================

ocr疑難問題檢查

這小節包括以下ocr疑難問題解決的主題

使用ocrcheck工具
解決一般性的ocr問題

-----------------

使用ocrcheck工具

ocrcheck工具會展示出
ocr使用的資料塊的格式版本
空閒空間
已經使用的空間
已經配置的ocr空間

他還會返回所有每個ocr檔案的統計資訊
下面是一個ocrcheck命令返回的範例

Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 262144
Used space (kbytes) : 16256
Available space (kbytes) : 245888
ID : 1918913332
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File Name : /oradata/mirror.ocr
Device/File integrity check succeeded
Cluster registry integrity check succeeded

ocrcheck工具會建立一個log檔案
儲存目錄如下

CRS_home/log/hostname/client

檔名為
orcheck_nnnnn.log
其中nnnnn代表的是操作ocrcheck命令的程式號

----------------------

ocr一般性問題

1、ocr沒有鏡象
新增鏡象

2、一個ocr鏡象失效,必須替換他
錯誤資訊會在ocr的日誌檔案中或oem中

3、ocr被不正確的升級
repair

4、刪除ocr

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13177610/viewspace-677893/,如需轉載,請註明出處,否則將追究法律責任。

相關文章