Oracle 的管理可以通過OEM或者命令行接口。 Oracle Clusterware的命令集可以分為以下4種:
節(jié)點(diǎn)層:osnodes
網(wǎng)絡(luò)層:oifcfg
集群層:crsctl, ocrcheck,ocrdump,ocrconfig
應(yīng)用層:srvctl,onsctl,crs_stat
下面分別來介紹這些命令。
一. 節(jié)點(diǎn)層
只有一個命令: osnodes, 這個命令用來顯示集群點(diǎn)列表,可用的參數(shù)如下,這些參數(shù)可以混合使用。
[root@raw1 bin]# ./olsnodes --help
Usage: olsnodes [-n] [-p] [-i] [<node> | -l] [-g] [-v]
where
-n print node number with the node name
-p print private interconnect name with the node name
-i print virtual IP name with the node name
<node> print information for the specified node
-l print information for the local node
-g turn on logging
-v run in verbose mode
[root@raw1 bin]# ./olsnodes -n -p -i
raw1 1 raw1-priv raw1-vip
raw2 2 raw2-priv raw2-vip
二. 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層由各個節(jié)點(diǎn)的網(wǎng)絡(luò)組件組成,包括2個物理網(wǎng)卡和3個IP 地址。 也只有一個命令:oifcfg.
Oifctg 命令用來定義和修改Oracle 集群需要的網(wǎng)卡屬性,這些屬性包括網(wǎng)卡的網(wǎng)段地址,子網(wǎng)掩碼,接口類型等。 要想正確的使用這個命令, 必須先知道Oracle 是如何定義網(wǎng)絡(luò)接口的,Oracle的每個網(wǎng)絡(luò)接口包括名稱,網(wǎng)段地址,接口類型3個屬性。
Oifcfg 命令的格式如下: interface_name/subnet:interface_type
這些屬性中沒有IP地址,但接口類型有兩種,public和private,前者說明接口用于外部通信,用于Oracle Net和VIP 地址,而后者說明接口用于Interconnect。
接口的配置方式分為兩類: global 和node-specific。 前者說明集群所有節(jié)點(diǎn)的配置信息相同,也就是說所有節(jié)點(diǎn)的配置是對稱的;而后者意味著這個節(jié)點(diǎn)的配置和其他節(jié)點(diǎn)配置不同,是非對稱的。
Iflist:顯示網(wǎng)口列表
Getif: 獲得單個網(wǎng)口信息
Setif:配置單個網(wǎng)口
Delif:刪除網(wǎng)口
[root@raw1 bin]# ./oifcfg --help
PRIF-9: incorrect usage
Name:
oifcfg - Oracle Interface Configuration Tool.
Usage: oifcfg iflist [-p [-n]]
oifcfg setif {-node <nodename> | -global} {<if_name>/<subnet>:<if_type>}...
oifcfg getif [-node <nodename> | -global] [ -if <if_name>[/<subnet>] [-type <if_type>] ]
oifcfg delif [-node <nodename> | -global] [<if_name>[/<subnet>]]
oifcfg [-help]
<nodename> - name of the host, as known to a communications network
<if_name> - name by which the interface is configured in the system
<subnet> - subnet address of the interface
<if_type> - type of the interface { cluster_interconnect | public | storage }
[root@raw1 bin]# ./oifcfg iflist
eth0 10.85.10.0
eth1 192.168.1.0
[root@raw1 bin]# ./oifcfg getif
eth0 10.85.10.119 global public
eth0 10.85.10.121 global public
eth0 10.85.10.0 global public
eth1 192.168.1.119 global cluster_interconnect
eth1 192.168.1.121 global cluster_interconnect
eth1 192.168.1.0 global cluster_interconnect
-- 查看public 類型的網(wǎng)卡
[root@raw1 bin]# ./oifcfg getif -type public
eth0 10.85.10.119 global public
eth0 10.85.10.121 global public
eth0 10.85.10.0 global public
-- 刪除接口配置
[root@raw1 bin]# ./oifcfg delif -global
-- 添加接口配置
[root@raw1 bin]# ./oifcfg setif -global eth0/192.168.1.119:public
[root@raw1 bin]# ./oifcfg setif -global eth1/10.85.10.119:cluster_interconnect
三. 集群層
集群層是指由Clusterware組成的核心集群, 這一層負(fù)責(zé)維護(hù)集群內(nèi)的共享設(shè)備,并為應(yīng)用集群提供完整的集群狀態(tài)視圖,應(yīng)用集群依據(jù)這個視圖進(jìn)行調(diào)整。 這一層共有4個命令: crsctl, ocrcheck,ocrdump,ocrconfig. 后三個是針對OCR 磁盤的。
3.1 CRSCTL
Crsctl 命令可以用來檢查CRS 進(jìn)程棧,每個crs 進(jìn)程狀態(tài),管理Votedisk,跟蹤C(jī)RS進(jìn)程功能。
[root@raw1 bin]# ./crsctl
Usage: crsctl check crs - checks the viability of the CRS stack
crsctl check cssd - checks the viability of CSS
crsctl check crsd - checks the viability of CRS
crsctl check evmd - checks the viability of EVM
crsctl set css <parameter> <value> - sets a parameter override
crsctl get css <parameter> - gets the value of a CSS parameter
crsctl unset css <parameter> - sets CSS parameter to its default
crsctl query css votedisk - lists the voting disks used by CSS
crsctl add css votedisk <path> - adds a new voting disk
crsctl delete css votedisk <path> - removes a voting disk
crsctl enable crs - enables startup for all CRS daemons
crsctl disable crs - disables startup for all CRS daemons
crsctl start crs - starts all CRS daemons.
crsctl stop crs - stops all CRS daemons. Stops CRS resources in case of cluster.
crsctl start resources - starts CRS resources.
crsctl stop resources - stops CRS resources.
crsctl debug statedump evm - dumps state info for evm objects
crsctl debug statedump crs - dumps state info for crs objects
crsctl debug statedump css - dumps state info for css objects
crsctl debug log css [module:level]{,module:level} ...
- Turns on debugging for CSS
crsctl debug trace css - dumps CSS in-memory tracing cache
crsctl debug log crs [module:level]{,module:level} ...
- Turns on debugging for CRS
crsctl debug trace crs - dumps CRS in-memory tracing cache
crsctl debug log evm [module:level]{,module:level} ...
- Turns on debugging for EVM
crsctl debug trace evm - dumps EVM in-memory tracing cache
crsctl debug log res <resname:level> turns on debugging for resources
crsctl query crs softwareversion [<nodename>] - lists the version of CRS software installed
crsctl query crs activeversion - lists the CRS software operating version
crsctl lsmodules css - lists the CSS modules that can be used for debugging
crsctl lsmodules crs - lists the CRS modules that can be used for debugging
crsctl lsmodules evm - lists the EVM modules that can be used for debugging
If necesary any of these commands can be run with additional tracing by
adding a "trace" argument at the very front.
Example: crsctl trace check css
3.1.1 檢查CRS 狀態(tài)
[root@raw1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
-- 檢查單個狀態(tài)
[root@raw1 bin]# ./crsctl check cssd
CSS appears healthy
[root@raw1 bin]# ./crsctl check crsd
CRS appears healthy
[root@raw1 bin]# ./crsctl check evmd
EVM appears healthy
3.1.2 配置CRS 棧是否自啟動
CRS 進(jìn)程棧默認(rèn)隨著操作系統(tǒng)的啟動而自啟動,有時出于維護(hù)目的需要關(guān)閉這個特性,可以用root 用戶執(zhí)行下面命令。
[root@raw1 bin]# ./crsctl disable crs
[root@raw1 bin]# ./crsctl enable crs
這個命令實(shí)際是修改了/etc/oracle/scls_scr/raw/root/crsstart 這個文件里的內(nèi)容。
3.1.3 啟動,停止CRS 棧。
Oracle 在10.1時,必須通過重新啟動系統(tǒng)重啟Clusterware,但是從Oracle 10.2 開始,可以通過命令來啟動和停止CRS.
-- 啟動CRS:
[root@raw1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
-- 關(guān)閉CRS:
[root@raw1 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
3.1.4 查看Votedisk 磁盤位置
[root@raw1 bin]# ./crsctl query css votedisk
0. 0 /dev/raw/raw2
located 1 votedisk(s).
3.1.5 查看和修改CRS 參數(shù)
-- 查看參數(shù):用get
[root@raw1 bin]# ./crsctl get css misscount
60
-- 修改參數(shù): 用set, 但是這個功能要慎用
[root@raw1 bin]# ./crsctl set css miscount 60
3.1.6 跟蹤C(jī)RS 模塊,提供輔助功能
CRS由CRS,CSS,EVM 三個服務(wù)組成,每個服務(wù)又是由一系列module組成,crsctl 允許對每個module進(jìn)行跟蹤,并把跟蹤內(nèi)容記錄到日志中。
[root@raw1 bin]# ./crsctl lsmodules css
The following are the CSS modules ::
CSSD
COMMCRS
COMMNS
[root@raw1 bin]# ./crsctl lsmodules crs
The following are the CRS modules ::
CRSUI
CRSCOMM
CRSRTI
CRSMAIN
CRSPLACE
CRSAPP
CRSRES
CRSCOMM
CRSOCR
CRSTIMER
CRSEVT
CRSD
CLUCLS
CSSCLNT
COMMCRS
COMMNS
[root@raw1 bin]# ./crsctl lsmodules evm
The following are the EVM modules ::
EVMD
EVMDMAIN
EVMCOMM
EVMEVT
EVMAPP
EVMAGENT
CRSOCR
CLUCLS
CSSCLNT
COMMCRS
COMMNS
--跟蹤C(jī)SSD模塊,需要root 用戶執(zhí)行:
[root@raw1 bin]# ./crsctl debug log css "CSSD:1"
Configuration parameter trace is now set to 1.
Set CRSD Debug Module: CSSD Level: 1
-- 查看跟蹤日志
[root@raw1 cssd]# pwd
/u01/app/oracle/product/crs/log/raw1/cssd
[root@raw1 cssd]# more ocssd.log
...
[ CSSD]2010-03-08 00:19:27.160 [36244384] >TRACE: clssscSetDebugLevel: The logging level is set to 1 ,the cache level is set to 2
[ CSSD]2010-03-08 00:19:52.139 [119085984] >TRACE: clssgmClientConnectMsg: Connect from con(0x834fd18) proc(0x8354c70) pid() proto(10:2:1:1)
...
3.1.7 維護(hù)Votedisk
以圖新方式安裝Clusterware的過程中,在配置Votedisk時,如果選擇External Redundancy策略。則只能填寫一個Votedisk。但是即使使用External Redundancy作為冗余策略,也可以添加多個Vodedisk,只是必須通過crsctl 命令來添加,添加多個Votedisk后,這些Votedisk 互為鏡像,可以防止Votedisk的單點(diǎn)故障。
需要注意的是,Votedisk使用的是一種“多數(shù)可用算法”,如果有多個Votedisk,,則必須一半以上的Votedisk同時使用,Clusterware才能正常使用。 比如配置了4個Votedisk,壞一個Votedisk,集群可以正常工作,如果壞了2個,則不能滿足半數(shù)以上,集群會立即宕掉,所有節(jié)點(diǎn)立即重啟,所以如果添加Votedisk,盡量不要只添加一個,而應(yīng)該添加2個。這點(diǎn)和OCR 不一樣。OCR 只需配置一個。
添加和刪除Votedisk的操作比較危險(xiǎn),必須停止數(shù)據(jù)庫,停止ASM,停止CRS Stack后操作,并且操作時必須使用-force參數(shù)。
1) 查看當(dāng)前配置
[root@raw1 bin]# ./crsctl query css votedisk
2) 停止所有節(jié)點(diǎn)的CRS:
[root@raw1 bin]# ./crsctl stop crs
3) 添加Votedisk
[root@raw1 bin]# ./crsctl add css votedisk /dev/raw/raw1 -force
注意:即使在CRS 關(guān)閉后,也必須通過-force 參數(shù)來添加和刪除Votedisk,并且-force 參數(shù)只有在CRS關(guān)閉的場合下使用才安全。 否則會報(bào):Cluter is not a ready state for online disk addition.
4) 確認(rèn)添加后的情況:
[root@raw1 bin]# ./crsctl query css votedisk
5) 啟動CRS
[root@raw1 bin]# ./crsctl start crs
3.2 OCR命令系列
Oracle Clusterware把整個集群的配置信息放在共享存儲上,這個存儲就是OCR Disk. 在整個集群中,只有一個節(jié)點(diǎn)能對OCR Disk 進(jìn)行讀寫操作,這個節(jié)點(diǎn)叫作Master Node,所有節(jié)點(diǎn)都會在內(nèi)存中保留一份OCR的拷貝,同時喲一個OCR Process 從這個內(nèi)存中讀取內(nèi)容。 OCR 內(nèi)容發(fā)生改變時,由Master Node的OCR Process負(fù)責(zé)同步到其他節(jié)點(diǎn)的OCR Process。
因?yàn)镺CR的內(nèi)容如此重要,Oracle 每4個小時對其做一次備份,并且保留最后的3個備份,以及前一天,前一周的最后一個備份。 這個備份由Master Node CRSD進(jìn)程完成,備份的默認(rèn)位置是$CRS_HOME\crs\cdata\<cluster_name>目錄下。 每次備份后,備份文件名自動更改,以反應(yīng)備份時間順序,最近一次的備份叫作backup00.ocr。這些備份文件除了保存在本地,DBA還應(yīng)該在其他存儲設(shè)備上保留一份,以防止意外的存儲故障。
3.2.1 ocrdump
該命令能以ASCII的方式打印出OCR的內(nèi)容,但是這個命令不能用作OCR的備份恢復(fù),也就是說產(chǎn)生的文件只能用作閱讀,而不能用于恢復(fù)。
命令格式: ocrdump [-stdout] [filename] [-keyname name] [-xml]
參數(shù)說明:
-stdout: 把內(nèi)容打印輸出到屏幕上
Filename:內(nèi)容輸出到文件中
-keyname:只打印某個鍵及其子健內(nèi)容
-xml:以xml格式打印輸出
示例:把system.css鍵的內(nèi)容以.xml格式打印輸出到屏幕
[root@raw1 bin]# ./ocrdump -stdout -keyname system.css -xml|more
<OCRDUMP>
<TIMESTAMP>03/08/2010 04:28:41</TIMESTAMP>
<DEVICE>/dev/raw/raw1</DEVICE>
<COMMAND>./ocrdump.bin -stdout -keyname system.css -xml </COMMAND>
......
這個命令在執(zhí)行過程中,會在$CRS_HOME\log\<node_name>\client 目錄下產(chǎn)生日志文件,文件名ocrdump_<pid>.log,如果命令執(zhí)行出現(xiàn)問題,可以從這個日志查看問題原因。
3.2.2 ocrcheck
Ocrcheck 命令用于檢查OCR內(nèi)容的一致性,命令執(zhí)行過程會在$CRS_HOME\log\nodename\client 目錄下產(chǎn)生ocrcheck_pid.log 日志文件。 這個命令不需要參數(shù)。
[root@raw1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 147352
Used space (kbytes) : 4360
Available space (kbytes) : 142992
ID : 1599790592
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded
3.2.3 ocrconfig
該命令用于維護(hù)OCR 磁盤,安裝clusterware過程中,如果選擇External Redundancy冗余方式,則只能輸入一個OCR磁盤位置。 但是Oracle允許配置兩個OCR 磁盤互為鏡像,以防止OCR 磁盤的單點(diǎn)故障。 OCR 磁盤和Votedisk磁盤不一樣,OCR磁盤最多只能有兩個,一個Primary OCR 和一個Mirror OCR。
[root@raw1 bin]# ./ocrconfig --help
Name:
ocrconfig - Configuration tool for Oracle Cluster Registry.
Synopsis:
ocrconfig [option]
option:
-export <filename> [-s online]
- Export cluster register contents to a file
-import <filename> - Import cluster registry contents from a file
-upgrade [<user> [<group>]]
- Upgrade cluster registry from previous version
-downgrade [-version <version string>]
- Downgrade cluster registry to the specified version
-backuploc <dirname> - Configure periodic backup location
-showbackup - Show backup information
-restore <filename> - Restore from physical backup
-replace ocr|ocrmirror [<filename>] - Add/replace/remove a OCR device/file
-overwrite - Overwrite OCR configuration on disk
-repair ocr|ocrmirror <filename> - Repair local OCR configuration
-help - Print out this help information
Note:
A log file will be created in
$ORACLE_HOME/log/<hostname>/client/ocrconfig_<pid>.log. Please ensure
you have file creation privileges in the above directory before
running this tool.
-- 查看自助備份
[root@raw1 bin]# ./ocrconfig -showbackup
在缺省情況下,OCR自動備份在$CRS_HOME\CRS\CDATA\cluster_name 目錄下,可以通過ocrconfig -backuploc <directory_name> 命令修改到新的目錄
3.2.4 使用導(dǎo)出,導(dǎo)入進(jìn)行備份和恢復(fù)
Oracle 推薦在對集群做調(diào)整時,比如增加,刪除節(jié)點(diǎn)之前,應(yīng)該對OCR做一個備份,可以使用export 備份到指定文件,如果做了replace或者restore 等操作,Oracle 建議使用 cluvfy comp ocr -n all 命令來做一次全面的檢查。該命令在clusterware 的安裝軟件里。
1) 首先關(guān)閉所有節(jié)點(diǎn)的CRS
[root@raw1 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
2) 用root 用戶導(dǎo)出OCR內(nèi)容
[root@raw1 bin]# ./ocrconfig -export /u01/ocr.exp
3) 重啟CRS
[root@raw1 bin]# ./crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
4) 檢查CRS 狀態(tài)
[root@raw1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
5)破壞OCR內(nèi)容
[root@raw1 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400
102400 0 records in
102400 0 records out
6) 檢查OCR一致性
[root@raw1 bin]# ./ocrcheck
PROT-601: Failed to initialize ocrcheck
7)使用cluvfy 工具檢查一致性
[root@raw1 cluvfy]# ./runcluvfy.sh comp ocr -n all
Verifying OCR integrity
Unable to retrieve nodelist from Oracle clusterware.
Verification cannot proceed.
8) 使用Import 恢復(fù)OCR 內(nèi)容
[root@raw1 bin]# ./ocrconfig -import /u01/ocr.exp
9)再次檢查OCR
[root@raw1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 147352
Used space (kbytes) : 4364
Available space (kbytes) : 142988
ID : 610419116
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded
10) 使用cluvfy工具檢查
[root@raw1 cluvfy]# ./runcluvfy.sh comp ocr -n all
Verifying OCR integrity
WARNING:
These nodes cannot be reached:
raw2
Verification will proceed with nodes:
raw1
ERROR:
User equivalence unavailable on all the nodes.
Verification cannot proceed.
Verification of OCR integrity was unsuccessful on all the nodes.
注:此處不成功是因?yàn)槲业臋C(jī)器卡,故raw2節(jié)點(diǎn)沒有啟動
3.2.5 移動OCR 文件位置
實(shí)例演示將OCR從/dev/raw/raw1 移動到/dev/raw/raw3上。
1) 查看是否有OCR備份
[root@raw1 bin]# ./ocrconfig -showbackup
如果沒有備份,可以立即執(zhí)行一次導(dǎo)出作為備份:
[root@raw1 bin]# ./ocrconfig -export /u01/ocrbackup -s online
2) 查看當(dāng)前OCR配置
[root@raw1 bin]# ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 147352
Used space (kbytes) : 4364
Available space (kbytes) : 142988
ID : 610419116
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded
輸出顯示當(dāng)前只有一個Primary OCR,在/dev/raw/raw1。 沒有Mirror OCR。 因?yàn)楝F(xiàn)在只有一個OCR文件,所以不能直接改變這個OCR的位置,必須先添加鏡像后在修改,否則會報(bào):Failed to initialize ocrconfig.
3) 添加一個Mirror OCR
[root@raw1 bin]# ./ocrconfig -replace ocrmirror /dev/raw/raw4
4) 確認(rèn)添加成功
[root@raw1 bin]# ./ocrcheck
5)改變primary OCR 位置
[root@raw1 bin]# ./ocrconfig -replace ocr /dev/raw/raw3
確認(rèn)修改成功:
[root@raw1 bin]# ./ocrcheck
6)使用ocrconfig命令修改后,所有RAC節(jié)點(diǎn)上的/etc/oracle/ocr.loc 文件內(nèi)容也會自動同步了,如果沒有自動同步,可以手工的改成以下內(nèi)容。
[root@raw1 bin]# more /etc/oracle/ocr.loc
ocrconfig_loc=/dev/raw/raw1
Ocrmirrorconfig_loc=/dev/raw/raw3
local_only=FALSE
四. 應(yīng)用層
應(yīng)用層就是指RAC數(shù)據(jù)庫了,這一層有若干資源組成,每個資源都是一個進(jìn)程或者一組進(jìn)程組成的完整服務(wù),這一層的管理和維護(hù)都是圍繞這些資源進(jìn)行的。 有如下命令: srvctl, onsctl, crs_stat 三個命令。
4.1 crs_stat
Crs_stat 這個命令用于查看CRS維護(hù)的所有資源的運(yùn)行狀態(tài),如果不帶任何參數(shù)時,顯示所有資源的概要信息。每個資源顯示是各個屬性:資源名稱,類型,目錄,資源運(yùn)行狀態(tài)等。
[root@raw1 bin]# ./crs_stat
NAME=ora.raw.db
TYPE=application
TARGET=ONLINE
STATE=OFFLINE
......
也可以指定資源名,查看指定資源的狀態(tài),并可以使用-V 和-P 選項(xiàng),以查看詳細(xì)信息,其中-p 參數(shù)顯示的內(nèi)容比-V 更詳細(xì)。
1) 查看制定資源狀態(tài)
[root@raw1 bin]# ./crs_stat ora.raw2.vip
NAME=ora.raw2.vip
TYPE=application
TARGET=ONLINE
STATE=OFFLINE
2) 使用-v 選項(xiàng),查看詳細(xì)內(nèi)容,這時輸出多出4項(xiàng)內(nèi)容,分別是允許重啟次數(shù),已執(zhí)行重啟次數(shù),失敗閥值,失敗次數(shù)。
[root@raw1 bin]# ./crs_stat -v ora.raw2.vip
NAME=ora.raw2.vip
TYPE=application
RESTART_ATTEMPTS=0
RESTART_COUNT=0
FAILURE_THRESHOLD=0
FAILURE_COUNT=0
TARGET=ONLINE
STATE=OFFLINE
3) 使用-p 選項(xiàng)查看更詳細(xì)內(nèi)容
[root@raw1 bin]# ./crs_stat -p ora.raw2.vip
NAME=ora.raw2.vip
TYPE=application
ACTION_SCRIPT=/u01/app/oracle/product/crs/bin/racgwrap
ACTIVE_PLACEMENT=1
AUTO_START=1
CHECK_INTERVAL=60
DESCRIPTION=CRS application for VIP on a node
FAILOVER_DELAY=0
FAILURE_INTERVAL=0
FAILURE_THRESHOLD=0
HOSTING_MEMBERS=raw2
OPTIONAL_RESOURCES=
PLACEMENT=favored
REQUIRED_RESOURCES=
RESTART_ATTEMPTS=0
SCRIPT_TIMEOUT=60
START_TIMEOUT=0
STOP_TIMEOUT=0
UPTIME_THRESHOLD=7d
USR_ORA_ALERT_NAME=
USR_ORA_CHECK_TIMEOUT=0
USR_ORA_CONNECT_STR=/ as sysdba
USR_ORA_DEBUG=0
USR_ORA_DISCONNECT=false
USR_ORA_FLAGS=
USR_ORA_IF=eth0
USR_ORA_INST_NOT_SHUTDOWN=
USR_ORA_LANG=
USR_ORA_NETMASK=255.255.255.0
USR_ORA_OPEN_MODE=
USR_ORA_OPI=false
USR_ORA_PFILE=
USR_ORA_PRECONNECT=none
USR_ORA_SRV=
USR_ORA_START_TIMEOUT=0
USR_ORA_STOP_MODE=immediate
USR_ORA_STOP_TIMEOUT=0
USR_ORA_VIP=10.85.10.123
這些字段是所有資源共有的,但是根據(jù)資源類型不同,某些字段可以空值。
4) 使用-ls 選項(xiàng),可以查看每個資源的權(quán)限定義,權(quán)限定義格式和Linux 一樣。
[root@raw1 bin]# ./crs_stat -ls
Name Owner Primary PrivGrp Permission
-----------------------------------------------------------------
ora.raw.db oracle oinstall rwxrwxr--
ora.raw.dmm.cs oracle oinstall rwxrwxr--
ora....aw2.srv oracle oinstall rwxrwxr--
ora....w1.inst oracle oinstall rwxrwxr--
ora....w2.inst oracle oinstall rwxrwxr--
ora....SM1.asm oracle oinstall rwxrwxr--
ora....W1.lsnr oracle oinstall rwxrwxr--
ora.raw1.gsd oracle oinstall rwxr-xr--
ora.raw1.ons oracle oinstall rwxr-xr--
ora.raw1.vip root oinstall rwxr-xr--
ora....SM2.asm oracle oinstall rwxrwxr--
ora....W2.lsnr oracle oinstall rwxrwxr--
ora.raw2.gsd oracle oinstall rwxr-xr--
ora.raw2.ons oracle oinstall rwxr-xr--
ora.raw2.vip root oinstall rwxr-xr--
4.2 onsctl
這個命令用于管理配置ONS(Oracle Notification Service). ONS 是Oracle Clusterware 實(shí)現(xiàn)FAN Event Push模型的基礎(chǔ)。
在傳統(tǒng)模型中,客戶端需要定期檢查服務(wù)器來判斷服務(wù)端狀態(tài),本質(zhì)上是一個pull模型,Oracle 10g 引入了一個全新的PUSH 機(jī)制--FAN(Fast Application Notification),當(dāng)服務(wù)端發(fā)生某些事件時,服務(wù)器會主動的通知客戶端這種變化,這樣客戶端就能盡早得知服務(wù)端的變化。 而引入這種機(jī)制就是依賴ONS實(shí)現(xiàn), 在使用onsctl命令之前,需要先配置ONS服務(wù)。
4.2.1 ONS 配置內(nèi)容
在RAC 環(huán)境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 這點(diǎn)需要注意。 配置文件在$CRS_HOME\opmn\conf\ons.config.
[root@raw1 conf]# pwd
/u01/app/oracle/product/crs/opmn/conf
[root@raw1 conf]# more ons.config
localport=6100
remoteport=6200
loglevel=3
useocr=on
參數(shù)說明:
Localport: 這個參數(shù)代表本地監(jiān)聽端口,這里本地特指:127.0.0.1 這個回環(huán)地址,用來和運(yùn)行在本地的客戶端進(jìn)行通信
Remoteport:這個參數(shù)代表的是遠(yuǎn)程監(jiān)聽端口,也就是除了127.0.0.1 以外的所有本地IP地址,用來和遠(yuǎn)程的客戶端進(jìn)行通信。
Loglevel: Oracle 允許跟蹤ONS進(jìn)程的運(yùn)行,并把日志記錄到本地文件中,這個參數(shù)用來定義ONS進(jìn)程要記錄的日志級別,從1-9,缺省值是3.
Logfile: 這個參數(shù)和loglevel參數(shù)一起使用,用于定義ONS進(jìn)程日志文件的位置,缺省值是$CRS_HOME\opmn\logs\opmn.log
nodes和useocr: 這兩個參數(shù)共同決定餓了本地的ONS daemon要和哪些遠(yuǎn)程節(jié)點(diǎn)上的ONS daemon進(jìn)行通信。
Nodes 參數(shù)值格式如下:Hostname/IP:port[hostname/ip:port]
如:useoce=off
Nodes=rac1:6200,rac2:6200
而useocr 參數(shù)值為on/off, 如果useocr 是ON, 說明信息保存在OCR中,如果是OFF,說明信息取nodes中的配置。對于單實(shí)例而言,要把useocr設(shè)置為off。
4.2.2 配置ONS
可以直接編譯ONS的配置文件來修改配置,如果使用了OCR,則可以通過racgons命令進(jìn)行配置,但必須以root用戶來執(zhí)行,如果用oracle 用戶來執(zhí)行,不會提示任何錯誤,但也不會更改任何配置。
若要添加配置,可以使用下面命令:
Racgons add_config rac1:6200 rac2:6200
若要刪除配置,可以用下面命令:
Racgons remove_config rac1:6200 rac2:6200
4.2.3 onsctl 命令
使用onsctl命令可以啟動,停止,調(diào)試ONS,并重新載入配置文件,其命令格式如下:
[root@raw1 bin]# ./onsctl
usage: ./onsctl start|stop|ping|reconfig|debug
start - Start opmn only.
stop - Stop ons daemon
ping - Test to see if ons daemon is running
debug - Display debug information for the ons daemon
reconfig - Reload the ons configuration
help - Print a short syntax description (this).
detailed - Print a verbose syntax description.
ONS 進(jìn)程運(yùn)行,并不一定代表ONS 正常工作,需要使用ping命令來確認(rèn)。
1) 在OS級別查看進(jìn)程狀態(tài)。
[root@raw1 bin]# ps -aef|grep ons
root 1924 6953 0 03:17 pts/1 00:00:00 grep ons
oracle 30723 1 0 Mar08 ? 00:00:00 /u01/app/oracle/product/crs/opmn/bin/ons -d
oracle 30724 30723 0 Mar08 ? 00:00:04 /u01/app/oracle/product/crs/opmn/bin/ons -d
2) 確認(rèn)ONS服務(wù)的狀態(tài)
[root@raw1 bin]# ./onsctl ping
Number of onsconfiguration retrieved, numcfg = 2
onscfg[0]
{node = raw1, port = 6200}
Adding remote host raw1:6200
onscfg[1]
{node = raw2, port = 6200}
Adding remote host raw2:6200
ons is running ...
3) 啟動ONS服務(wù)
[root@raw1 bin]# ./onsctl start
4) 使用debug 選項(xiàng),可以查看詳細(xì)信息,其中最有意義的就是能顯示所有連接。
[root@raw1 bin]# ./onsctl debug
Number of onsconfiguration retrieved, numcfg = 2
onscfg[0]
{node = raw1, port = 6200}
Adding remote host raw1:6200
onscfg[1]
{node = raw2, port = 6200}
Adding remote host raw2:6200
HTTP/1.1 200 OK
Content-Length: 1357
Content-Type: text/html
Response:
======== ONS ========
Listeners:
NAME BIND ADDRESS PORT FLAGS SOCKET
------- --------------- ----- -------- ------
Local 127.000.000.001 6100 00000142 7
Remote 010.085.010.119 6200 00000101 8
Request No listener
Server connections:
ID IP PORT FLAGS SENDQ WORKER BUSY SUBS
---------- --------------- ----- -------- ---------- -------- ------ -----
1 010.085.010.121 6200 00104205 0 1 0
Client connections:
ID IP PORT FLAGS SENDQ WORKER BUSY SUBS
---------- --------------- ----- -------- ---------- -------- ------ -----
3 127.000.000.001 6100 0001001a 0 1 0
4 127.000.000.001 6100 0001001a 0 1 1
Pending connections:
ID IP PORT FLAGS SENDQ WORKER BUSY SUBS
---------- --------------- ----- -------- ---------- -------- ------ -----
0 127.000.000.001 6100 00020812 0 1 0
Worker Ticket: 3/3, Idle: 180
THREAD FLAGS
-------- --------
17faba0 00000012
67f6ba0 00000012
32d6ba0 00000012
Resources:
Notifications:
Received: 1, in Receive Q: 0, Processed: 1, in Process Q: 0
Pools:
Message: 24/25 (1), Link: 25/25 (1), Subscription: 24/25 (1)
[root@raw1 bin]#
4.3 srvctl
該命令是RAC維護(hù)中最常用的命令,也是最復(fù)雜的命令。 這個工具可以操作下面的幾種資源:Database,Instance,ASM,Service,Listener 和 Node Application,其中Node application又包括GSD,ONS,VIP。 這些資源除了使用srvctl工具統(tǒng)一管理外,某些資源還有自己獨(dú)立的管理工具,比如ONS可以使用onsctl命令進(jìn)行管理;Listener 可以通過lsnrctl 管理。
[root@raw1 bin]# ./srvctl --help
Usage: srvctl <command> <object> [<options>]
command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config
objects: database|instance|service|nodeapps|asm|listener
For detailed help on each command and object and its options use:
srvctl <command> <object> -h
4.3.1 使用config查看配置
1)查看數(shù)據(jù)庫配置
-- 不帶任何參數(shù)時,顯示OCR中注冊的所有數(shù)據(jù)庫
[root@raw1 bin]# ./srvctl config database
raw
-- 使用-d 選項(xiàng),查看某個數(shù)據(jù)庫配置
[root@raw1 bin]# ./srvctl config database -d raw
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
raw2 raw2 /u01/app/oracle/product/10.2.0/db_1
注: 該輸出結(jié)果顯示數(shù)據(jù)庫raw由2個節(jié)點(diǎn)組成,各自實(shí)例名交raw1和raw2. 兩個實(shí)例的$ORACLE_HOME是/u01/app/oracle/product/10.2.0/db_1
-- 使用-a 選項(xiàng)查看配置的詳細(xì)信息
[root@raw1 bin]# ./srvctl config database -d raw
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
raw2 raw2 /u01/app/oracle/product/10.2.0/db_1
[root@raw1 bin]# ./srvctl config database -d raw -a
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
raw2 raw2 /u01/app/oracle/product/10.2.0/db_1
DB_NAME: raw
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
SPFILE: DATA/raw/spfileraw.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
2)查看Node Application的配置
-- 不帶任何參數(shù),返回節(jié)點(diǎn)名,實(shí)例名和$ORACLE_HOME
[root@raw1 bin]# ./srvctl config nodeapps -n raw1
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
-- 使用-a 選項(xiàng),查看VIP 配置
[root@raw1 bin]# ./srvctl config nodeapps -n raw1 -a
VIP exists.: /raw1-vip/10.85.10.122/255.255.255.0/eth0
-- 使用-g 選項(xiàng), 查看GSD:
[root@raw1 bin]# ./srvctl config nodeapps -n raw1 -g
GSD exists.
-- 使用-s 選項(xiàng),查看ONS:
[root@raw1 bin]# ./srvctl config nodeapps -n raw1 -s
ONS daemon exists.
-- 使用-l 選項(xiàng),查看Listener:
[root@raw1 bin]# ./srvctl config nodeapps -n raw1 -l
Listener exists.
3) 查看 Listener.
[root@raw1 bin]# ./srvctl config listener -n raw1
raw1 LISTENER_RAW1
[root@raw1 bin]# ./srvctl config listener -n raw2
raw2 LISTENER_RAW2
4) 查看ASM
[root@raw1 bin]# ./srvctl config asm -n raw1
ASM1 /u01/app/oracle/product/10.2.0/db_1
[root@raw1 bin]# ./srvctl config asm -n raw2
ASM2 /u01/app/oracle/product/10.2.0/db_1
5) 查看Service
-- 查看數(shù)據(jù)庫所有service配置
[root@raw1 bin]# ./srvctl config service -d raw -a
dmm PREF: raw2 AVAIL: raw1 TAF: basic
-- 查看某個Service 配置
[root@raw1 bin]# ./srvctl config service -d raw -s dmm
dmm PREF: raw2 AVAIL: raw1
-- 使用-a 選項(xiàng),查看TAF 策略
[root@raw1 bin]# ./srvctl config service -d raw -s dmm -a
dmm PREF: raw2 AVAIL: raw1 TAF: basic
4.3.2 使用add 添加對象
一般情況下,應(yīng)用層資源都是在圖形界面的幫助下注冊到OCR中的,比如VIP,ONS實(shí)在安裝最后階段創(chuàng)建的,而數(shù)據(jù)庫,ASM是執(zhí)行DBCA的過程中自動注冊到OCR中的,Listener是通過netca工具。 但是有些時候需要手工把資源注冊到OCR中。 這時候就需要add 命令了。
1) 添加數(shù)據(jù)庫
[root@raw1 bin]# ./srvctl add database -d dmm -o $ORACLE_HOME
2) 添加實(shí)例
[root@raw1 bin]# ./srvctl add instance -d dmm -n rac1 -i dmm1
[root@raw1 bin]# ./srvctl add instance -d dmm -n rac2 -i dmm2
3) 添加服務(wù),需要使用4個參數(shù)
-s : 服務(wù)名
-r:首選實(shí)例名
-a:備選實(shí)例名
-P:TAF策略,可選值為None(缺省值),Basic,preconnect。
[root@raw1 bin]# ./srvctl add service -d dmm -s dmmservice -r rac1 -a rac2 -P BASIC
4) 確認(rèn)添加成功
[root@raw1 bin]# ./srvctl config service -d dmm -s dmmservice -a
4.3.3 使用enable/disable 啟動,禁用對象
缺省情況下數(shù)據(jù)庫,實(shí)例,服務(wù),ASM都是隨著CRS的啟動而自啟動的,有時候由于維護(hù)的需要,可以先關(guān)閉這個特性。
1) 配置數(shù)據(jù)庫隨CRS的啟動而自動啟動
-- 啟用數(shù)據(jù)庫的自啟動:
[root@raw1 bin]# ./srvctl enable database -d raw
--查看配置
[root@raw1 bin]# ./srvctl config database -d raw -a
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
raw2 raw2 /u01/app/oracle/product/10.2.0/db_1
DB_NAME: raw
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
SPFILE: DATA/raw/spfileraw.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
-- 禁止數(shù)據(jù)庫在CRS啟動后自啟動,這時需要手動啟動
[root@raw1 bin]# ./srvctl disable database -d raw
2) 關(guān)閉某個實(shí)例的自動啟動
[root@raw1 bin]# ./srvctl disable instance -d raw -i raw1
[root@raw1 bin]# ./srvctl enable instance -d raw -i raw1
-- 查看信息
[root@raw1 bin]# ./srvctl config database -d raw -a
raw1 raw1 /u01/app/oracle/product/10.2.0/db_1
raw2 raw2 /u01/app/oracle/product/10.2.0/db_1
DB_NAME: raw
ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
SPFILE: DATA/raw/spfileraw.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
3) 禁止某個服務(wù)在實(shí)例上運(yùn)行
[root@raw1 bin]# ./srvctl enable service -d raw -s rawservice -i raw1
[root@raw1 bin]# ./srvctl disable service -d raw -s rawservice -i raw1
-- 查看
[root@raw1 bin]# ./srvctl config service -d raw -a
dmm PREF: raw2 AVAIL: raw1 TAF: basic
4.3.4 使用remove 刪除對象
使用remove命令刪除的是對象在OCR中的定義信息,對象本省比如數(shù)據(jù)庫的數(shù)據(jù)文件等不會被刪除,以后隨時可以使用add命令重新添加到OCR中。
1) 刪除Service,在刪除之前,命令會給出確定提示
[root@raw1 bin]# ./srvctl remove service -d raw -s rawservice
2)刪除實(shí)例,刪除之前同樣會給出提示
[root@raw1 bin]# ./srvctl remove instance -d raw -i raw1
3)刪除數(shù)據(jù)庫
[root@raw1 bin]# ./srvctl remove database -d raw
4.3.5 啟動,停止對象與查看對象
在RAC 環(huán)境下啟動,關(guān)閉數(shù)據(jù)庫雖然仍然可以使用SQL/PLUS方法,但是更推薦使用srvctl命令來做這些工作,這可以保證即使更新CRS中運(yùn)行信息,可以使用start/stop 命令啟動,停止對象,然后使用status 命令查看對象狀態(tài)。
1) 啟動數(shù)據(jù)庫,默認(rèn)啟動到open狀態(tài)
[root@raw1 bin]# ./srvctl start database -d raw
2) 指定啟動狀態(tài)
[root@raw1 bin]# ./srvctl start database -d raw -i raw1 -o mount
[root@raw1 bin]# ./srvctl start database -d raw -i raw1 -o nomount
3) 關(guān)閉對象,并指定關(guān)閉方式
[root@raw1 bin]# ./srvctl stop instance -d raw -i raw1 -o immediate
[root@raw1 bin]# ./srvctl stop instance -d raw -i raw1 -o abort
4) 在指定實(shí)例上啟動服務(wù):
[root@raw1 bin]# ./srvctl start service -d raw -s rawservice -i raw1
-- 查看服務(wù)狀態(tài)
[root@raw1 bin]# ./srvctl status service -d raw -v
5) 關(guān)閉指定實(shí)例上的服務(wù)
[root@raw1 bin]# ./srvctl stop service -d raw -s rawservice -i raw1
-- 查看服務(wù)狀態(tài)
[root@raw1 bin]# ./srvctl status service -d raw -v
4.3.6 跟蹤srvctl
在Oracle 10g中要跟蹤srvctl 非常簡單,只要設(shè)置srvm_trace=true 這個OS環(huán)境變量即可,這個命令的所有函數(shù)調(diào)用都會輸出到屏幕上,可以幫助用戶進(jìn)行診斷。
[root@raw1 bin]# export SRVM_TRACE=TRUE
[root@raw1 bin]# ./srvctl config database -d raw
/u01/app/oracle/product/crs/jdk/jre/bin/java -classpath /u01/app/oracle/product/crs/jlib/netcfg.jar:/u01/app/oracle/product/crs/jdk/jre/lib/rt.jar:/u01/app/oracle/product/crs/jdk/jre/lib/i18n.jar:/u01/app/oracle/product/crs/jlib/srvm.jar:/u01/app/oracle/product/crs/jlib/srvmhas.jar:/u01/app/oracle/product/crs/jlib/srvmasm.jar:/u01/app/oracle/product/crs/srvm/jlib/srvctl.jar -DTRACING.ENABLED=true -DTRACING.LEVEL=2 oracle.ops.opsctl.OPSCTLDriver config database -d raw
[main] [6:58:44:858] [OPSCTLDriver.setInternalDebugLevel:165] tracing is true at level 2 to file null
[main] [6:58:44:911] [OPSCTLDriver.<init>:95] Security manager is set
[main] [6:58:44:955] [CommandLineParser.parse:173] parsing cmdline args
[main] [6:58:44:959] [CommandLineParser.parse2WordCommandOptions:940] parsing 2-word cmdline
[main] [6:58:44:961] [OPSCTLDriver.execute:174] executing srvctl command
[main] [6:58:44:963] [OPSCTLDriver.execute:199] executing 2-word command verb=10 noun=101
[main] [6:58:44:995] [Action.getOPSConfig:162] get db config for: raw
[main] [6:58:45:2] [CommandLineParser.obtainOPSConfig:1410] srvctl: get db config for: raw
[main] [6:58:45:47] [GetActiveNodes.create:213] Going into GetActiveNodes constructor...
... ...
4.4 恢復(fù)
假設(shè)OCR磁盤和Votedisk磁盤全部破壞,并且都沒有備份,該如何恢復(fù), 這時最簡單的方法就是重新初始話OCR和Votedisk, 具體操作如下:
4.4.1 停止所有節(jié)點(diǎn)的Clusterware Stack
Crsctl stop crs;
4.4.2 分別在每個節(jié)點(diǎn)用root用戶執(zhí)行$CRS_HOME\install\rootdelete.sh腳本
4.4.3 在任意一個節(jié)點(diǎn)上用root用戶執(zhí)行$CRS_HOME\install\rootinstall.sh 腳本
4.4.4 在和上一步同一個節(jié)點(diǎn)上用root執(zhí)行$CRS_HOME\root.sh腳本
4.4.5 在其他節(jié)點(diǎn)用root執(zhí)行行$CRS_HOME\root.sh腳本
4.4.6 用netca 命令重新配置監(jiān)聽,確認(rèn)注冊到Clusterware中
#crs_stat -t -v
到目前為止,只有Listener,ONS,GSD,VIP 注冊到OCR中,還需要把ASM, 數(shù)據(jù)庫都注冊到OCR中。
4.4.7 向OCR中添加ASM
#srvctl add asm -n rac1 -i ASM1 -o /u01/app/product/database
#srvctl add asm -n rac2 -i ASM2 -o /u01/app/product/database
4.4.8 啟動ASM
#srvctl start asm -n rac1
#srvctl start asm -n rac2
若在啟動時報(bào)ORA-27550錯誤。是因?yàn)镽AC無法確定使用哪個網(wǎng)卡作為Private Interconnect,解決方法:在兩個ASM的pfile文件里添加如下參數(shù):
ASM1.cluster_interconnects='10.85.10.119'
ASM2.cluster_interconnects='10.85.10.121'
4.4.9 手工向OCR中添加Database對象。
#srvctl add database -d raw -o /u01/app/product/database
4.4.10 添加2個實(shí)例對象
#srvctl add instance -d raw -i raw1 -n raw1
#srvctl add instance -d raw -i raw2 -n raw2
4.4.11 修改實(shí)例和ASM實(shí)例的依賴關(guān)系
#srvctl modify instance -d raw -i raw1 -s ASM1
#srvctl modify instance -d raw -i raw2 -s ASM2
4.4.12 啟動數(shù)據(jù)庫
#srvctl start database-d raw
若也出現(xiàn)ORA-27550錯誤。也是因?yàn)镽AC無法確定使用哪個網(wǎng)卡作為Private Interconnect,修改pfile參數(shù)在重啟動即可解決。
SQL>alter system set cluster_interconnects='10.85.10.119' scope=spfile sid='raw1';
SQL>alter system set cluster_interconnects='10.85.10.121' scope=spfile sid='raw2';
Srvctl 命令的用法還有很多,下面是在線文檔的一個目錄,感興趣的可以自己研究下。
srvctl add
srvctl add database
srvctl add instance
srvctl add service
srvctl add nodeapps
srvctl add asm
srvctl config
srvctl config database
srvctl config service
srvctl config nodeapps
srvctl config asm
srvctl config listener
srvctl enable
srvctl enable database
srvctl enable instance
srvctl enable service
srvctl enable asm
srvctl disable
srvctl disable database
srvctl disable instance
srvctl disable service
srvctl disable asm
srvctl start
srvctl start database
srvctl start instance
srvctl start service
srvctl start nodeapps
srvctl start asm
srvctl start listener
srvctl stop
srvctl stop database
srvctl stop instance
srvctl stop service
srvctl stop nodeapps
srvctl stop asm
srvctl stop listener
srvctl modify
srvctl modify database
srvctl modify instance
srvctl modify service
srvctl modify nodeapps
srvctl relocate
srvctl relocate service
srvctl status
srvctl status database
srvctl status instance
srvctl status service
srvctl status nodeapps
srvctl status asm
srvctl getenv
srvctl getenv database
srvctl getenv instance
srvctl getenv service
srvctl getenv nodeapps
srvctl setenv and unsetenv
srvctl setenv database
srvctl setenv instance
srvctl setenv service
srvctl setenv nodeapps
srvctl unsetenv database
srvctl unsetenv instance
srvctl unsetenv service
srvctl unsetenv nodeapps
srvctl remove
srvctl remove database
srvctl remove instance
srvctl remove service
srvctl remove nodeapps
srvctl remove asm
|