專利名稱:Oracle RAC自動(dòng)添加刪除結(jié)點(diǎn)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體涉及一種集群環(huán)境中的自動(dòng)添加刪除Oracle RAC (Real Application Cluster)結(jié)點(diǎn)的技術(shù),在線擴(kuò)展RAC結(jié)點(diǎn),不影響現(xiàn)有用戶應(yīng)用。 技術(shù)背景Oracle RAC是一種真^的集群應(yīng)用程序,實(shí)現(xiàn)動(dòng)態(tài)的自動(dòng)添加刪除結(jié)點(diǎn),可以調(diào)節(jié)集群結(jié) 點(diǎn)資源,提高集群利用率。添加、刪除結(jié)點(diǎn)的過(guò)程復(fù)雜,如果實(shí)現(xiàn)自動(dòng)添加刪除結(jié)點(diǎn)的稈序,可 以簡(jiǎn)化實(shí)施人員在結(jié)點(diǎn)添加刪除過(guò)程中配置安裝工作。Oracle RAC的手丁添加結(jié)點(diǎn)的過(guò)程主要 有下列步驟配置新結(jié)點(diǎn)與RAC中其它結(jié)點(diǎn)的rsh和OCFS (Oracle Cluster File System),以及 各種環(huán)境變量;主結(jié)點(diǎn)上調(diào)用OUI(Oracle Universial Installer)向新結(jié)點(diǎn)上安裝CRS;再次調(diào)用 OUI向新結(jié)點(diǎn)上擴(kuò)展Product DB,在Product DB安裝結(jié)束的時(shí)候,調(diào)用VIPCA,進(jìn)行虛擬接口 的配置;然后調(diào)用dbca創(chuàng)建數(shù)據(jù)庫(kù)。Oracle RAC的手工刪除結(jié)點(diǎn)的過(guò)程主要有下列步驟停止 并刪除本結(jié)點(diǎn)的所有數(shù)據(jù)庫(kù)實(shí)例;停止并刪除本結(jié)點(diǎn)的監(jiān)聽(tīng)器;停止并刪除本結(jié)點(diǎn)的node applications;刪除本結(jié)點(diǎn)的CRS和Product DB,更新結(jié)點(diǎn)列表;刪除RAC相關(guān)的配置文件。在 上述添加和刪除結(jié)點(diǎn)的過(guò)程中需要與集群中各結(jié)點(diǎn)不斷交互,輸入所需的信息,總計(jì)幾百步的 配置。如果一名熟練操作者,在保證各項(xiàng)配置完全正確的前提下,完成結(jié)點(diǎn)添加、刪除的操作 步驟,至少需要花費(fèi)幾小時(shí)時(shí)間。如果實(shí)現(xiàn)自動(dòng)化的添加刪除過(guò)程,實(shí)現(xiàn)上述過(guò)程將只需花費(fèi) 十兒分鐘的時(shí)間。特別對(duì)于不熟悉安裝配置工作的人員,也可以順利完成添加、刪除結(jié)點(diǎn)工作。 發(fā)明內(nèi)容本發(fā)明的目的是提供一種Oracle RAC自動(dòng)添加刪除結(jié)點(diǎn)的方法,包括以下兩個(gè)步驟 結(jié)點(diǎn)添加的步驟a) RAC配置信息以及新結(jié)點(diǎn)的IP信息和名稱保存到配置文件rac.conf;b) 配置新結(jié)點(diǎn)的基本環(huán)境ocfe文件系統(tǒng)、IP地址、與主結(jié)點(diǎn)相同的環(huán)境變量;c) 在主結(jié)點(diǎn)上,通過(guò)命令行參數(shù)指定Response file,調(diào)用OUI CRS,把CRS擴(kuò)展到新結(jié)點(diǎn) 上,運(yùn)行runlnstaller更新結(jié)點(diǎn)列表;d) 在主結(jié)點(diǎn)上,通過(guò)命令行參數(shù)指定Response file,調(diào)用OUI Product DB,把Product DB 擴(kuò)展到新結(jié)點(diǎn)上,運(yùn)行runlnstaller更新結(jié)點(diǎn)列表;e) 配置新結(jié)點(diǎn)的Virtual IP;f) 在新結(jié)點(diǎn)上添加并啟動(dòng)監(jiān)聽(tīng)器listener;g) 在新結(jié)點(diǎn)上添加并啟動(dòng)數(shù)據(jù)庫(kù)的實(shí)例。 結(jié)點(diǎn)刪除步驟a)獲取RAC中所有結(jié)點(diǎn)的名字列表,獲取本結(jié)點(diǎn)的IP地址、nodelist以及RAC上運(yùn)行的數(shù)據(jù)庫(kù)列表;b) 把數(shù)據(jù)庫(kù)列表中的每個(gè)數(shù)據(jù)庫(kù),列出它在本結(jié)點(diǎn)的所有實(shí)例,停止并刪除這些實(shí)例;c) 停止并刪除本結(jié)點(diǎn)的監(jiān)聽(tīng)器d) 通過(guò)srvctl stop nodeapps -n 'hostname'來(lái)停止本結(jié)點(diǎn)的VIP資源;調(diào)用本結(jié)點(diǎn)的 rootdeletenode.sh把node applications從RAC刪除,并通過(guò)遠(yuǎn)程調(diào)用,在剩下的任意結(jié)點(diǎn)中運(yùn)行 runlnstaller更新結(jié)點(diǎn)列表;e) 調(diào)用rootdelete.sh把本結(jié)點(diǎn)從CRS屮刪除,并通過(guò)遠(yuǎn)程調(diào)用,在剩下的任意結(jié)點(diǎn)中運(yùn)行 rootdeletenode.sh刪除本結(jié)點(diǎn)剩余資源,以及運(yùn)行runlnstaller更新結(jié)點(diǎn)列表;f) 通過(guò)遠(yuǎn)程調(diào)用,在每一個(gè)剩余結(jié)點(diǎn)上把本結(jié)點(diǎn)信息從/etc/hosts, /rootArhosts, oracle/.rhosts 中刪除;g) 修改IP地址配置文件,刪除在Oracle RAC中使用的IP地址;h) 刪去Oracle相關(guān)文件和目錄。木發(fā)明的有益效果是自動(dòng)化OracleRAC添加刪除結(jié)點(diǎn)的配置過(guò)程,簡(jiǎn)化人工配置,在線 擴(kuò)展RAC結(jié)點(diǎn),不影響現(xiàn)有用戶應(yīng)用,提高了集群資源使用的效率,這種方法適用范圍廣,對(duì) windows操作系統(tǒng)和li皿x操作系統(tǒng)都適用,對(duì)Oracle RAC的9i/10g/llg版本也都適用。
附圖l為自動(dòng)添加結(jié)點(diǎn)的示意圖;附圖2為自動(dòng)添加結(jié)點(diǎn)中CRS和Product DB擴(kuò)展示意圖; 附圖3為自動(dòng)刪除結(jié)點(diǎn)的示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清晰,卜'面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明作以下 詳細(xì)說(shuō)明。本發(fā)明的目的在于實(shí)現(xiàn)Oracle RAC中自動(dòng)添加刪除結(jié)點(diǎn)的程序,快速準(zhǔn)確的執(zhí)行Oracle RAC中添加刪除結(jié)點(diǎn)的操作,簡(jiǎn)化人工配置中繁瑣的輸入過(guò)程,提高工作效率;并且實(shí)時(shí)在線 從Oracle RAC中自動(dòng)刪除結(jié)點(diǎn)和添加結(jié)點(diǎn),不影響現(xiàn)有數(shù)據(jù)庫(kù)操作和運(yùn)行,增加Oracle RAC 的可擴(kuò)展性,自動(dòng)調(diào)節(jié)集群結(jié)點(diǎn)資源,提高集群利用率。本發(fā)明中Oracle RAC的添加結(jié)點(diǎn)的配置過(guò)程,分解為配置新結(jié)點(diǎn)與RAC中其它結(jié)點(diǎn)的rsh 禾口OCFS (Oracle Cluster File System),以及各種環(huán)境變量,主結(jié)點(diǎn)上調(diào)用OUI(Oracle Universial Installer)向新結(jié)點(diǎn)上擴(kuò)展CRS和ProductDB,并更新結(jié)點(diǎn)列表,在Product DB安裝結(jié)束的時(shí)候, 調(diào)用VIPCA配置虛擬IP,然后調(diào)用netca添加listener、調(diào)用dbca創(chuàng)建數(shù)據(jù)庫(kù)。其中各種輸入信 息是自動(dòng)從配置文件中讀取的,配置文件記作rac.conf,其屮內(nèi)容包括結(jié)點(diǎn)名稱、IP、 RAC數(shù) 據(jù)存儲(chǔ)位置、oracle訪問(wèn)用戶和密碼的信息;OUICRS、 OUI RDBMS的擴(kuò)展是通過(guò)在調(diào)用程序 時(shí),通過(guò)命令行參數(shù)指定Response file,將需要取得的用戶輸入從response file中讀取來(lái)實(shí)現(xiàn)的。 Response file是按照CRS和RDBMS的responseFile模板,在執(zhí)行rootadd.sh和rootaddnode.sh 之前,從rac.conf中讀取所需的信息,自動(dòng)生成的。其中模板的生成的方法是通過(guò)在Oracle RAC配置時(shí)運(yùn)行Oracle OUI,添加record命令,把用戶在圖形界面上的輸入iB錄下來(lái),保存為 responseFile,作為responseFile的模板,只需生成一次,今后使用。本發(fā)明中Oracle RAC的刪除結(jié)點(diǎn)的過(guò)程包括獲得Oracle AC中所有結(jié)點(diǎn)的名字列表,獲 取本結(jié)點(diǎn)的IP地址、nodelist以及RAC h運(yùn)行的數(shù)據(jù)庫(kù)列表;停止并刪除本結(jié)點(diǎn)上數(shù)據(jù)庫(kù)實(shí)例; 停止并刪除本結(jié)點(diǎn)的監(jiān)聽(tīng)器;停止并刪除本結(jié)點(diǎn)的node applications;刪除本結(jié)點(diǎn)的CRS和 Product DB,更新結(jié)點(diǎn)列表;刪除RAC相關(guān)的配置文件。實(shí)施例-添加RAC結(jié)點(diǎn)的具體實(shí)現(xiàn)添加RAC結(jié)點(diǎn),是通過(guò)在管理結(jié)點(diǎn)上調(diào)用addToAppMngr.sh來(lái)實(shí)現(xiàn)的。addToAppMngr.sh的調(diào)用方式是# addToAppMngr.sh <新結(jié)點(diǎn)IP> <主結(jié)點(diǎn)IP> [數(shù)據(jù)庫(kù)1 [數(shù)據(jù)庫(kù)2…]] addToAppMngr.sh的具體流程1. 把所有腳本文件拷貝到新結(jié)點(diǎn)和主結(jié)點(diǎn)上2. 計(jì)算新結(jié)點(diǎn)的IP地址和相應(yīng)的名字,并把相關(guān)參數(shù)保存到RAC信息文件中3. 把新結(jié)點(diǎn)設(shè)為主結(jié)點(diǎn)的信任主機(jī),并把RAC信息文件拷貝到主結(jié)點(diǎn)上4. 檢査新結(jié)點(diǎn)是否啟動(dòng)完畢并把RAC信息文件拷貝到新結(jié)點(diǎn)卜.,然后遠(yuǎn)程調(diào)用新結(jié)點(diǎn)上的 AddToApp.sh4-l.從主結(jié)點(diǎn)中拷貝操作系統(tǒng)的基本配置文件 4-2.計(jì)算新的存儲(chǔ)設(shè)備名并重新生成/etc/fstab 4-3.從RAC信息文件中讀取IP地址和名字等參數(shù) 4-4.根據(jù)讀取到的參數(shù)修改本地配置文件5. 利用rsh在新結(jié)點(diǎn)上重新生成新的ocfs guid,并重新啟動(dòng)ocfs服務(wù),然后重新掛載ocfs 文件系統(tǒng)6. 遠(yuǎn)程調(diào)用主結(jié)點(diǎn)上的AddToRAC.sh,把主結(jié)點(diǎn)上的CRS、 Product擴(kuò)展到新結(jié)點(diǎn)上,并給 新結(jié)點(diǎn)添加VIP資源6-1.從RAC信息文件中讀取IP地址和名字等參數(shù)6-2.把新結(jié)點(diǎn)的IP和名字通知到RAC中已有的其它所有結(jié)點(diǎn)6-3.根據(jù)讀取到的參數(shù),修改responseFile的模板,以生成合適的responseFile6-4.根據(jù)讀取到的參數(shù),修改監(jiān)視腳本文件的模板,以生成合適的監(jiān)視腳本文件6-5.調(diào)用crs安裝監(jiān)視器以后臺(tái)方式執(zhí)行,監(jiān)視crs新結(jié)點(diǎn)添加程序產(chǎn)生的log文件,在需要以root身份執(zhí)行腳本的時(shí)候,自動(dòng)以root身份執(zhí)行該腳本,并調(diào)用crs新結(jié)點(diǎn)添加程序,監(jiān)視crs新結(jié)點(diǎn)添加程序產(chǎn)生的log文件,等待安裝完成6-6.調(diào)用product安裝監(jiān)視器以后臺(tái)方式執(zhí)行,監(jiān)視product新結(jié)點(diǎn)添加程序產(chǎn)生的log文件,在需要以root身份執(zhí)行腳本的時(shí)候,自動(dòng)以root身份執(zhí)行該腳本并調(diào)用product新結(jié)點(diǎn)添加程序,監(jiān)視product新結(jié)點(diǎn)添加程序產(chǎn)生的產(chǎn)生的log文件,等待 安 裝完成6-7.遠(yuǎn)程調(diào)用新結(jié)點(diǎn)上的vipca配置VIP資源7. 遠(yuǎn)程調(diào)用新結(jié)點(diǎn)上的AddListener.sh,為新結(jié)點(diǎn)添加監(jiān)聽(tīng)器 7-1.從RAC信息文件中讀取IP地址和名字等參數(shù) 7-2.根據(jù)讀取到的參數(shù)修改Listener配置文件7-3.啟動(dòng)Listener8. 對(duì)于每個(gè)指定的數(shù)據(jù)庫(kù),調(diào)用新結(jié)點(diǎn)上的AddToDB.sh 8-l.產(chǎn)生一個(gè)未使用的實(shí)例名 8-2.在新結(jié)點(diǎn)上添加一個(gè)數(shù)據(jù)庫(kù)實(shí)例 8-3.啟動(dòng)新實(shí)例刪除RAC結(jié)點(diǎn)的具體實(shí)現(xiàn)刪除RAC結(jié)點(diǎn),是通過(guò)在管理結(jié)點(diǎn)上調(diào)用delAppMngr.sh來(lái)實(shí)現(xiàn)的。delAppMngr.sh的調(diào)用 方式是#~delAppMngr.sh <待刪結(jié)點(diǎn)IP> [數(shù)據(jù)庫(kù)1 [數(shù)據(jù)庫(kù)2…]] 數(shù)據(jù)庫(kù)列表必須寫(xiě)全。如果寫(xiě)不全,會(huì)導(dǎo)致刪除失敗。1. 把要執(zhí)行的腳本文件拷貝到要?jiǎng)h除的結(jié)點(diǎn)和主結(jié)點(diǎn)上2. 在要?jiǎng)h除的結(jié)點(diǎn)上執(zhí)行delApp.sh2-1 .收集被刪除結(jié)點(diǎn)信息,包括名稱、結(jié)點(diǎn)VWP/PublP/PirlP以及RAC的nodelist和databaselist2-2.刪除此結(jié)點(diǎn)上的數(shù)據(jù)庫(kù)實(shí)例2-3.停止和刪除此結(jié)點(diǎn)上的listener2-4.停止和刪除此結(jié)點(diǎn)上的nodeapps2-5.在主結(jié)點(diǎn)上更新nodelist2-6.在主結(jié)點(diǎn)上執(zhí)行rootdelete.sh和rootdeletenode.sh,清除被刪除結(jié)點(diǎn)上的DB和CRS信息 2-7.在RAC中其它結(jié)點(diǎn)中,通過(guò)遠(yuǎn)程調(diào)用,在每個(gè)剩余結(jié)點(diǎn)上把本結(jié)點(diǎn)信息從/etc/hosts, /root/.rhosts, oracle/.rhosts中刪除清除2-8.刪除此結(jié)點(diǎn)上的RAC相關(guān)的所有文件和目錄3. 檢查是否刪除完畢,退出執(zhí)行由本發(fā)明的技術(shù)方案可見(jiàn),本發(fā)明不但,簡(jiǎn)化的過(guò)程,提高了機(jī)群管理的效率,而且這種方 法適用范圍廣。
權(quán)利要求
1、Oracle RAC自動(dòng)添加刪除結(jié)點(diǎn)的方法,其特征在于結(jié)點(diǎn)添加的步驟如下a)RAC配置信息以及新結(jié)點(diǎn)的IP信息和名稱保存到配置文件rac.conf;b)配置新結(jié)點(diǎn)的基本環(huán)境ocfs文件系統(tǒng)、IP地址、與主結(jié)點(diǎn)相同的環(huán)境變量;c)在主結(jié)點(diǎn)上,通過(guò)命令行參數(shù)指定Response file,調(diào)用OUI CRS,把CRS擴(kuò)展到新結(jié)點(diǎn)上,運(yùn)行runInstaller更新結(jié)點(diǎn)列表;d)在主結(jié)點(diǎn)上,通過(guò)命令行參數(shù)指定Response file,調(diào)用OUI Product DB,把Product DB擴(kuò)展到新結(jié)點(diǎn)上,運(yùn)行runInstaller更新結(jié)點(diǎn)列表;e)配置新結(jié)點(diǎn)的Virtual IP;f)在新結(jié)點(diǎn)上添加并啟動(dòng)監(jiān)聽(tīng)器listener;g)在新結(jié)點(diǎn)上添加并啟動(dòng)數(shù)據(jù)庫(kù)的實(shí)例。結(jié)點(diǎn)刪除的過(guò)程如下a)獲取RAC中所有結(jié)點(diǎn)的名字列表,獲取本結(jié)點(diǎn)的IP地址、nodelist以及RAC上運(yùn)行的數(shù)據(jù)庫(kù)列表;b)把數(shù)據(jù)庫(kù)列表中的每個(gè)數(shù)據(jù)庫(kù),列出它在本結(jié)點(diǎn)的所有實(shí)例,停止并刪除這些實(shí)例;c)停止并刪除本結(jié)點(diǎn)的監(jiān)聽(tīng)器;d)通過(guò)srvctl stop nodeapps-n`hostname`來(lái)停止本結(jié)點(diǎn)的VIP資源;調(diào)用本結(jié)點(diǎn)的rootdeletenode.sh把node applications從RAC刪除,并通過(guò)遠(yuǎn)程調(diào)用,在剩下的任意結(jié)點(diǎn)中運(yùn)行runInstaller更新結(jié)點(diǎn)列表;e)調(diào)用rootdelete.sh把本結(jié)點(diǎn)從CRS中刪除,并通過(guò)遠(yuǎn)程調(diào)用,在剩下的任意結(jié)點(diǎn)中運(yùn)行rootdeletenode.sh刪除本結(jié)點(diǎn)剩余資源,以及運(yùn)行runInstaller更新結(jié)點(diǎn)列表;f)通過(guò)遠(yuǎn)程調(diào)用,在每一個(gè)剩余結(jié)點(diǎn)上把本結(jié)點(diǎn)信息從/etc/hosts,/root/.rhosts,~oracle/.rhosts中刪除;g)修改IP地址配置文件,刪除在Oracle RAC中使用的IP地址;h)刪去Oracle相關(guān)文件和目錄。
全文摘要
本發(fā)明提供了一種自動(dòng)添加刪除Oracle RAC結(jié)點(diǎn)的方法。該方法假定管理結(jié)點(diǎn)可以與RAC中結(jié)點(diǎn)互相無(wú)密碼訪問(wèn),在管理結(jié)點(diǎn)上使用該方法只要提供要添加或者要?jiǎng)h除結(jié)點(diǎn)的IP地址、RAC中主結(jié)點(diǎn)的IP地址以及要添加或者刪除的數(shù)據(jù)庫(kù)實(shí)例名稱,就可自動(dòng)執(zhí)行添加刪除結(jié)點(diǎn)操作自動(dòng)完成在要添加結(jié)點(diǎn)上的環(huán)境變量的配置,完成Oracle RAC新結(jié)點(diǎn)的添加,結(jié)點(diǎn)列表的更新,完成新結(jié)點(diǎn)實(shí)例的創(chuàng)建;自動(dòng)停止要?jiǎng)h除結(jié)點(diǎn)上數(shù)據(jù)庫(kù)的實(shí)例,完成Oracle RAC中結(jié)點(diǎn)的刪除,完成在被刪除結(jié)點(diǎn)上的oracle相關(guān)文件的刪除工作。通過(guò)該方法可以自動(dòng)的、快速準(zhǔn)確的執(zhí)行Oracle RAC中添加刪除結(jié)點(diǎn)的操作,簡(jiǎn)化人工配置中繁瑣的輸入過(guò)程,提高工作效率;并且實(shí)時(shí)在線從Oracle RAC中自動(dòng)刪除結(jié)點(diǎn)和添加結(jié)點(diǎn),不影響現(xiàn)有數(shù)據(jù)庫(kù)操作和運(yùn)行,增加Oracle RAC的可擴(kuò)展性。
文檔編號(hào)G06F9/46GK101251803SQ200810014459
公開(kāi)日2008年8月27日 申請(qǐng)日期2008年3月11日 優(yōu)先權(quán)日2008年3月11日
發(fā)明者王守昊, 健 魏 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司