官术网_书友最值得收藏!

4.1 使用Oracle Restart管理組件

Oracle Restart是GI提供的一個服務,它包含一組由操作系統(tǒng)啟動和監(jiān)控的進程。其中的一些進程用根(或管理員)權限來運行。其他進程用安裝GI的用戶權限來運行。Oracle Restart可以配置為自動或手動啟動。

在這里,資源是可以由GI管理的對象。所有資源都在Oracle Local Registry(OLR)中注冊。一旦注冊,它們就在Oracle Restart控制之下。一些配置工具如果檢測到Oracle Restart配置,就隱式注冊資源。其他配置工具就不是這樣。對于后者,資源必須顯式注冊。一旦注冊,資源就可以用GI實用工具(GI也能停止或啟動任何依賴的資源)或資源內(nèi)置的實用工具來啟動或停止。

最重要的是可用性高的功能。GI包含一個事件監(jiān)控機制,它會檢測已注冊資源的任何狀態(tài)變化,傳遞與狀態(tài)變化相關的消息,如果需要,還嘗試自動重啟失敗的資源。

4.1.1 管理Oracle Restart進程

按照GI的安裝過程進行,在啟動服務器時,Oracle Restart 進程會自動啟動。在Linux上,核心進程是init.ohasd守護進程。它通過rc腳本啟動,監(jiān)控和重啟功能由/etc/inittab文件中的一個選項啟用。如果守護進程停止,init會重啟它。在Windows上,該功能由Windows服務OracleOHService提供,該服務啟動、監(jiān)控、重啟ohasd.exe進程。

為了手工控制Oracle Restart,可以使用crsctl實用程序。圖4-1顯示了在Windows系統(tǒng)上管理Oracle Restart最常用的crsctl命令。這些命令在語法上與Linux相同。注意大多數(shù)命令都只能由具備管理員(Windows)或根(Linux)權限的用戶執(zhí)行。

圖4-1 使用crsctl實用程序管理Oracle Restart(Windows)

表4-1所示是圖4-1中使用的命令:

表4-1 圖4-1中使用的命令

圖4-2顯示了更多的crsctl命令,這次是用于Linux系統(tǒng)的。

圖4-2 使用crsctl實用程序管理Oracle Restart(Linux)

表4-2所示是圖4-2中使用的命令:

表4-2 圖4-2中使用的命令

4.1.2 管理注冊的資源

如果要為資源提供高可用性的服務,就必須用Oracle Restart注冊資源。一些工具在創(chuàng)建資源時注冊它們,另外一些則不然。例如,如果用DBCA實用工具創(chuàng)建數(shù)據(jù)庫,它就會檢測到Oracle Restart的存在,于是運行注冊數(shù)據(jù)庫的命令。在DBCA生成的腳本中可以看到這些命令。如果用SQL *Plus創(chuàng)建數(shù)據(jù)庫,就必須自己注冊。如果用Net Configuration Assistant創(chuàng)建一個偵聽器,就會注冊它。如果用Net Manager創(chuàng)建它,就不會注冊它。如果在已經(jīng)安裝了其他產(chǎn)品后安裝GI,所有以前創(chuàng)建的資源就必須顯式注冊。

可以用 crsctl 實用工具注冊資源,但這是一個一般意義的工具,說得好聽一些,添加資源的語法是很麻煩的。注冊資源時,至少要給Oracle Restart提供如下信息:

● 如何啟動、停止、監(jiān)控資源

● 資源失敗時該怎么辦

● 它可能依賴什么其他資源

而且,對于不同類型的資源,所需信息的本質(zhì)是不同的。處理Oracle資源的一種更好方法是使用srvctl實用工具。它用DBA可能需要的、處理所有資源的命令預先配置。但是,這僅限于Oracle資源;不能使用它(例如)把Apache網(wǎng)絡偵聽器注冊為托管資源。

srvctl實用工具的一般語法如下:

        srvctl <command> <object> <options>

常用命令如表4-3所示:

表4-3 常用命令

常用對象如表4-4所示:

表4-4 常用對象

在srvctl命令中使用的選項取決于命令和對象的本質(zhì)。

提示:

srvctl實用工具有一個superb幫助功能。運行srvctl -help,就會看到每個資源類型的每個命令的完整語法??上?,不能在考試時這么做。

要注冊數(shù)據(jù)庫,可使用如下命令:

        srvctl add database -db orclz -oraclehome /u01/db_home1

第一個選項是數(shù)據(jù)庫的DB_UNIQUE_NAME,它一般是DB_NAME。第二個選項是Oracle Home,打開數(shù)據(jù)庫的實例就運行在該Oracle Home上。其他不常用的選項可以指定需要的磁盤組,指定服務器參數(shù)文件(spfile)和密碼文件,控制自動啟動。默認情況下,數(shù)據(jù)庫配置為Oracle Restart在OPEN模式下自動啟動它。要顯示數(shù)據(jù)庫orclz的配置,可以使用如下命令:

        srvctl config database -db orclz -all

下面啟動、停止、檢查數(shù)據(jù)庫的狀態(tài):

        srvctl start database -db orclz -startoption open
        srvctl stop database -db orclz -stopoption immediate
        srvctl status database -db orclz

變元STARTOPTION和STOPOPTION的值默認為OPEN和IMMEDIATE, STARTOPTION的其他值是NOMOUNT、MOUNT和READONLY。STOPOPTION的其他值是NORMAL、TRANSACTIONAL和ABORT。

考點:

srvctl實用工具安裝在數(shù)據(jù)庫Oracle Home和GI Oracle Home下,可以從這兩個目錄下運行。crsctl實用工具只能在GI Oracle Home下使用。

4.1.3 重啟功能

資源在Oracle Restart的控制下放置,由GI監(jiān)控,在失敗時重啟。資源的可控關閉(使用srvctl實用工具或內(nèi)置于資源的工具)不會重啟它。

考點:

使用SRVCTl ADD時沒有進行“實際的檢查”。數(shù)據(jù)庫在OLR中成功注冊,并不意味著它實際存在。

重啟行為由傳遞給SRVCTL ADD命令的POLICY參數(shù)確定,或者由以后傳遞給SRVCTL MODIFY命令的POLICY參數(shù)確定。默認值是啟用自動的重啟。

        -POLICY AUTOMATIC | MANUAL | NORESTART

練習4-1 用Oracle Restart配置數(shù)據(jù)庫

本練習用Oracle Restart配置數(shù)據(jù)庫。假定練習3-1已完成。

(1) 在操作系統(tǒng)的提示下,確認配置并運行了OHASD,注意這需要管理員權限或根權限,并確保搜索路徑包括GI主目錄下的bin目錄。接著使用crsctl實用工具,如下:

        crsctl config has
        crsctl check has

(2) 演示實現(xiàn)Oracle Restart的GI過程本身由操作系統(tǒng)防止失敗。在Linux上,根用戶標識守護進程的進程號,再關閉它。使用這些命令,用自己的init.ohasd進程的進程號替代12345:

        ps -ef | grep init.ohasd
        kill -9 12345
        ps -ef | grep init.ohasd

在Windows上,使用任務管理器定位ohasd.exe進程,再單擊“結束任務”按鈕,關閉它。

不一會兒,進程重啟了,但進程ID不同。

(3) 使用srvctl實用工具通過Oracle Restart注冊數(shù)據(jù)庫。所有變元都可以使用默認值,但數(shù)據(jù)庫的唯一名稱和Oracle Home除外。如果把ORACLE_HOME環(huán)境變量設置為數(shù)據(jù)庫的主目錄,就可以使用它。下面的例子在Linux上注冊數(shù)據(jù)庫orclz:

        srvctl add database -d orclz -oraclehome $ORACLE_HOME

(4) 確定數(shù)據(jù)庫已成功注冊,再檢查其狀態(tài):

        srvctl config database -d orclz
        srvctl status database -d orclz

無論數(shù)據(jù)庫是否運行,都會報告“未運行”。這是因為自從它注冊以來,就沒有啟動過。

(5) 發(fā)出一個啟動命令,強制GI進行實際的檢查,再次檢查狀態(tài)。

        srvctl start database -db orclz
        srvctl status database -db orclz

圖4-3顯示了Windows系統(tǒng)上的第2~4步。

圖4-3 顯示W(wǎng)indows系統(tǒng)上的第2~4步

(6) 用srvctl和SQL *Plus試驗啟動和關閉命令。每次都檢查狀態(tài)。

(7) 數(shù)據(jù)庫運行時,演示重啟功能。在Linux上,使用ps命令標識smon背景進程,再關閉它。這會立即中斷實例。在Windows上,使用任務管理器的“結束任務”按鈕關閉oracle.exe進程。

不一會兒,實例重啟了。

圖4-4顯示了在Linux上的實例重啟測試:

圖4-4 Linux上的實例重啟測試

Oracle Restart可以保護數(shù)據(jù)庫之外的資源,包括Oracle提供的服務和第三方服務。如果Oracle Restart已經(jīng)安裝,大多數(shù)后續(xù)安裝的Oracle服務就在其安裝過程中注冊。如果沒有安裝Oracle Restart,它們就可以在以后注冊。

練習4-2 把偵聽器注冊為托管資源

把數(shù)據(jù)庫偵聽器放在Oracle Restart的控制下,演示其作用。需要的命令如下(沒有換行符):

        srvctl add listener
        [ -listener <lsnr_name> ]
        [ -oraclehome <path> ]
        [ -endpoints "<port>" ]

變元的默認值假定,偵聽器的名稱是LISTENER,偵聽的端點是1521。Oracle Home是GI主目錄(如果完成了前面的練習,它就是不正確的)。接著檢查其配置和狀態(tài),停止并啟動偵聽器,用操作系統(tǒng)實用工具觀察關閉偵聽器進程的效果。

下面是可用的命令(使用Windows Oracle Home):

        srvctl add listener -listener listener -oraclehome
        c:\app\oracle\product\12.1.0\dbhome_1
        srvctl config listener -listener listener
        srvctl stop listener -listener listener
        srvctl start listener -listener listener

這是在Windows上模擬失敗的一種方式:

        net stop OracleOraDB12Home1TNSListener

在Linux上,找到tnslsnr進程的進程ID,關閉它。

注意偵聽器稍后會重啟。

推薦閱讀
  1. 房地產(chǎn)估價師《房地產(chǎn)估價案例與分析》歷年真題與模擬試題詳解
  2. 2019年下半年全國統(tǒng)考教師資格考試《體育與健康學科知識與教學能力》(初級中學)復習全書【核心講義+歷年真題詳解】
  3. 人力資源管理專業(yè)知識與實務歷年真題及押題精選試卷
  4. 2020年中國科學院大學601高等數(shù)學(甲)考試大綱解析
  5. 企業(yè)人力資源管理師職業(yè)資格考試專用輔導教材(二級):教材精解(圖解版)+題庫解析+歷年真題+押題預測
  6. 2019年山西省農(nóng)村信用社公開招聘工作人員考試復習全書【核心講義+歷年真題詳解】
  7. 2019年下半年全國統(tǒng)考教師資格考試《語文學科知識與教學能力》(高級中學)復習全書【核心講義+歷年真題詳解】
  8. 2015心理咨詢師國家職業(yè)資格考試專用輔導教材(三級):教材精解(圖解版)+題庫解析+歷年真題+押題預測
  9. 房地產(chǎn)經(jīng)紀人《房地產(chǎn)經(jīng)紀專業(yè)基礎》歷年真題與模擬試題詳解
  10. 公共營養(yǎng)師(基礎知識)過關必做習題集(含歷年真題)
  11. 2019年下半年全國統(tǒng)考教師資格考試《美術學科知識與教學能力》(高級中學)題庫【歷年真題+章節(jié)題庫+模擬試題】
  12. 招標師《招標采購專業(yè)知識與法律法規(guī)》歷年真題與模擬試題詳解
  13. 多媒體課件設計與制作(視頻指導版)
  14. 汽車駕駛考證全程通(第2版)
  15. 微課制作實例教程(第2版)(微課版)
主站蜘蛛池模板: 衡阳县| 肥城市| 东阿县| 扶沟县| 盐城市| 越西县| 密云县| 德兴市| 沈丘县| 泌阳县| 上饶县| 沈丘县| 乌兰察布市| 陇南市| 定兴县| 舞阳县| 宣汉县| 呼和浩特市| 合水县| 平山县| 贺州市| 海兴县| 木兰县| 噶尔县| 东台市| 崇礼县| 剑河县| 涞水县| 广河县| 瑞安市| 铜川市| 于田县| 英超| 肇庆市| 正镶白旗| 莲花县| 金山区| 静宁县| 东台市| 平泉县| 云霄县|