Oracle 11g RAC的啟動、關閉及修改歸檔總結

luashin發表於2016-01-07
    在Oracle 11g R2下的RAC + ASM之間層次架構發生了變化,多了grid使用者、警告日誌位置也發生變化等。CRS的資訊被放在ASM例項裡,所以要關ASM必須先關閉CRS。如果使用了ACFS(ASM Cluster File System)一旦關閉了CRS,那麼ACFS裡的資訊就不能訪問了,所以一般不重啟機器,不要輕易關閉crs, 其它的Service可以根據自己的需要去stop/start。注意:11g RAC 開啟資源相對比較慢(即使命令後面顯示的資源都start succeeded,透過crs_stat -t檢視都不一定online)需要耐心等待並檢視log。

11g環境 RAC + ASM之間層次架構如下圖所示: 

                      
 
而Oracle10g的RAC環境中,CRS的資訊放在裸裝置上,因此關閉asm後才關閉CRS才是正確的。 

除以上資源之外,我們還需要了解OHASD 資源,英文解釋如下:  
     Oracle High Availability Services Daemon (OHASD) :This process anchors the lower part of the Oracle Clusterware stack, which consists of processes that facilitate cluster operations. 
在11gR2裡面啟動CRS的時候,會提示ohasd已經啟動。 那麼這個OHASD到底包含哪些資源。 可以透過如下命令來檢視:
[grid@oracle1 ~]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME          TARGET  STATE        SERVER                  STATE_DETAILS        
--------------------------------------------------------------------------------
Local Resources 
--------------------------------------------------------------------------------
ora.DATADG.dg  
              ONLINE  ONLINE      oracle1                                     
              ONLINE  ONLINE      oracle2                                       
ora.FRADG.dg  
              ONLINE  ONLINE      oracle1                                       
              ONLINE  ONLINE      oracle2                                       
ora.LISTENER.lsnr
              ONLINE  ONLINE      oracle1                                       
              ONLINE  ONLINE      oracle2                                       
ora.OCRVT.dg
              ONLINE  ONLINE      oracle1                                     
              ONLINE  ONLINE      oracle2                                     
ora.asm
              ONLINE  ONLINE      oracle1                  Started             
              ONLINE  ONLINE      oracle2                  Started             
ora.gsd
              OFFLINE OFFLINE      oracle1                                     
              OFFLINE OFFLINE      oracle2                                     
ora.net1.network
              ONLINE  ONLINE      oracle1                                     
              ONLINE  ONLINE      oracle2                                     
ora.ons 
              ONLINE  ONLINE      oracle1                                     
              ONLINE  ONLINE      oracle2                                     
ora.registry.acfs
              ONLINE  ONLINE      oracle1                                     
              ONLINE  ONLINE      oracle2                                     
--------------------------------------------------------------------------------
Cluster Resources  
-------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE      oracle1                                       
ora.cvu  
      1        ONLINE  ONLINE      oracle2                                       
ora.oc4j  
      1        ONLINE  ONLINE      oracle2                                     
ora.oracle1.vip
      1        ONLINE  ONLINE      oracle1                                       
ora.oracle2.vip  
      1        ONLINE  ONLINE      oracle2                                       
ora.scan1.vip  
      1        ONLINE  ONLINE      oracle1                                     
ora.sjjczr.db
      1        ONLINE  ONLINE      oracle1                  Open               
      2        ONLINE  ONLINE      oracle2                  Open               
[grid@oracle1 ~]$ 
     在Oracle 10g中CRS Resource 包括GSD(Global Serveice Daemon),ONS(Oracle Notification Service),VIP, Database, Instance 和 Service。在11.2中,對CRSD資源進行了重新分類:Local Resources和Cluster Resources。OHASD指的就是Cluster Resource. 

1.Oracle 11g RAC關閉和啟動相關命令 

1.1 使用crsctl stop has/crsctl stop crs
用root使用者,在Oracle11gR2中停止和啟動叢集的命令如下:
# crsctl stop has [-f]
# crsctl start has
    對於crsctl stop has 只有一個可選的引數就是-f,該命令只能停執行該命令伺服器上的HAS.而不能停所有節點上的。所以要把RAC 全部停掉,需要在所有節點執行該命令。
下面的2個命令:使用crs 和 使用has 效果是完全一樣的:
# crsctl stop crs [-f]
# crsctl start crs
    記得第一次在生產環境中安裝Oracle 11gR2 RAC + ASM時,當安裝完後透過crs_stat  -t 命令檢視狀態總覺得不太對(在節點二上是的online狀態的資源數量比節點一明顯少得多),想重啟CRS和ASM,用了#crsctl stop crs命令(未帶 [ -f ] 引數),總是不太順利。最終重啟了伺服器。後來想想,實際上也可以使用crsctl stop has [-f],沒比要重啟伺服器。
啟動HAS:
[root@rac1bin]# ./crsctl start has
CRS-4123:Oracle High Availability Services has been started.
[root@rac1bin]#
從上面看只是啟動了HAS。實際上後面會把Oracle Restart 管理的資源都會啟動。這個可以使用crs_stat命令來程式驗證。
[grid@oracle1 ~]$ crs_stat -t -v
Name          Type          R/RA  F/FT  Target    State    Host       
----------------------------------------------------------------------  
ora.DATADG.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1     
ora.FRADG.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1       
ora....ER.lsnr ora....er.type 0/5    0/    ONLINE    ONLINE    oracle1       
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    oracle1       
ora.OCRVT.dg  ora....up.type 0/5    0/    ONLINE    ONLINE    oracle1       
ora.asm        ora.asm.type  0/5    0/    ONLINE    ONLINE    oracle1     
ora.cvu        ora.cvu.type  0/5    0/0    ONLINE    ONLINE    oracle2       
ora.gsd        ora.gsd.type  0/5    0/    OFFLINE  OFFLINE                 
ora....network ora....rk.type 0/5    0/    ONLINE    ONLINE    oracle1       
ora.oc4j      ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    oracle2     
ora.ons        ora.ons.type  0/3    0/    ONLINE    ONLINE    oracle1       
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    oracle1     
ora....E1.lsnr application    0/5    0/0    ONLINE    ONLINE    oracle1       
ora....le1.gsd application    0/5    0/0    OFFLINE  OFFLINE                 
ora....le1.ons application    0/3    0/0    ONLINE    ONLINE    oracle1       
ora....le1.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oracle1       
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    oracle2       
ora....E2.lsnr application    0/5    0/0    ONLINE    ONLINE    oracle2       
ora....le2.gsd application    0/5    0/0    OFFLINE  OFFLINE                 
ora....le2.ons application    0/3    0/0    ONLINE    ONLINE    oracle2       
ora....le2.vip ora....t1.type 0/0    0/0    ONLINE    ONLINE    oracle2       
ora....ry.acfs ora....fs.type 0/5    0/    ONLINE    ONLINE    oracle1       
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    oracle1       
ora.sjjczr.db  ora....se.type 0/2    0/1    ONLINE    ONLINE    oracle1     
 
1.2 使用crsctl stop cluster [-all]…
該命令的語法如下:
crsctl stop cluster [[-all]|[-n[...]]] [-f]
crsctl start cluster [[-all]|[-n[...]]]
該引數支援的選項更多,可以同時操控所有的節點。如果不指定引數,那麼只對當前節點有效。
如:
[root@rac1 ~]# ./crsctl start cluster -n rac1 rac2
--停止當前節點叢集:
[root@rac1 bin]# ./crsctl stop cluster
 
2.停止和啟動Resource
    當直接停止叢集時,相關的Resource 也會被停止。 但實際情況下,我們操作更多的是對某些資源的啟動或關閉等操作。具體就是使用SRVCTL 命令。該命令不常用總被忘記,因此可以用幫助選項-h 來檢視命令幫助: 
[grid@rac1 ~]$  Srvclt -h 
這個命令顯示的結果太長,不好檢視,可以進一步的檢視幫助: 
[grid@rac1 ~]$ srvctl start -h 
RAC 執行狀態通用的命令如下: 
[root@vcdwdb1 ~]# su - grid 
[grid@vcdwdb1 ~]$ srvctl -h 
用法: srvctl [-V]    --顯示內容很多,如下對內容進行了挑選後貼上 
用法: srvctl start nodeapps [-n ] [-g] [-v] 
用法: srvctl stop nodeapps [-n ] [-g] [-f] [-r] [-v] 
用法: srvctl status nodeapps 
用法: srvctl start vip { -n | -i } [-v] 
用法: srvctl stop vip { -n   | -i } [-f] [-r] [-v] 
用法: srvctl relocate vip -i [-n ] [-f] [-v] 
用法: srvctl status vip { -n | -i } [-v] 
用法: srvctl start asm [-n ] [-o ] 
用法: srvctl stop asm [-n ] [-o ] [-f] 
用法: srvctl config asm [-a] 
用法: srvctl status asm [-n ] [-a] [-v] 
用法: srvctl config listener [-l ] [-a] 
用法: srvctl start listener [-l ] [-n ] 
用法: srvctl stop listener [-l ] [-n ] [-f] 
用法: srvctl status listener [-l ] [-n ] [-v] 
用法: srvctl start scan [-i ] [-n ] 
用法: srvctl stop scan [-i ] [-f] 
用法: srvctl relocate scan -i [-n ] 
用法: srvctl status scan [-i ] [-v] 
用法: srvctl config cvu 
用法: srvctl start cvu [-n ] 
用法: srvctl stop cvu [-f] 
用法: srvctl relocate cvu [-n ] 
用法: srvctl status cvu [-n ] 
也可以進一步檢視配置資訊,如下: 
[grid@vcdwdb1 ~]$ srvctl start -h 
SRVCTL start 命令啟動啟用 Oracle Clusterware 的未執行的物件。  
用法: srvctl start database -d [-o ] [-n ]  
用 法: srvctl start instance -d {-n [-i ] | -i } [-o ]  
用法: srvctl start service -d [-s "" [-n | -i ] ] [-o ]  
用法: srvctl start nodeapps [-n ] [-g] [-v]  
用法: srvctl start vip { -n | -i } [-v]  
用法: srvctl start asm [-n ] [-o ] 
用法: srvctl start listener [-l ] [-n ]  
用法: srvctl start scan [-i ] [-n ]  
用法: srvctl start scan_listener [-n ] [-i ]  
用法: srvctl start oc4j [-v]  
用法: srvctl start home -o -s -n  
用法: srvctl start filesystem -d [-n ]  
用法: srvctl start diskgroup -g [-n ""]  
用法: srvctl start gns [-l ] [-n ] [-v] 
用法: srvctl start cvu [-n ] 
有關各個命令和物件的詳細幫助, 請使用: 
srvctl -h  
[grid@vcdwdb1 ~]$ srvctl start listener -h 
啟動監聽程式。   
用法: srvctl start listener [-l ] [-n ]  
    -l           監聽程式名  
    -n           節點名  
    -h                      輸出用法 
[grid@vcdwdb1 ~]$ srvctl status -h  
SRVCTL status 命令顯示物件的當前狀態。  
用法: srvctl status database -d [-f] [-v]  
用法: srvctl status instance -d {-n | -i } [-f] [-v]  
用法: srvctl status service -d [-s ""] [-f] [-v]  
用法: srvctl status nodeapps  
用法: srvctl status vip { -n | -i } [-v]  
用法: srvctl status listener [-l ] [-n ] [-v]  
用法: srvctl status asm [-n ] [-a] [-v]  
用法: srvctl status scan [-i ] [-v]  
用法: srvctl status scan_listener [-i ] [-v]  
用法: srvctl status srvpool [-g ] [-a] 
用法: srvctl status server -n "" [-a]  
用法: srvctl status oc4j [-n ] [-v]  
用法: srvctl status home -o -s -n  
用法: srvctl status filesystem -d [-v]  
用法: srvctl status diskgroup -g [-n ""] [-a] [-v]  
用法: srvctl status cvu [-n ] 
用法: srvctl status gns [-n ] [-v] 

有關各個命令和物件的詳細幫助, 請使用: 
srvctl -h   
[grid@vcdwdb1 ~]$ srvctl config -h  
SRVCTL config 命令顯示儲存在 OCR 中的物件配置。  
用法: srvctl config database [-d [-a] ] [-v] 
用法: srvctl config service -d [-s ] [-v]  
用法: srvctl config nodeapps [-a] [-g] [-s]  
用法: srvctl config vip { -n | -i }  
用法: srvctl config network [-k ]  
用法: srvctl config asm [-a]  
用法: srvctl config listener [-l ] [-a]  
用法: srvctl config scan [-i ]  
用法: srvctl config scan_listener [-i ]  
用法: srvctl config srvpool [-g ]  
用法: srvctl config oc4j  
用法: srvctl config filesystem -d  
用法: srvctl config gns [-a] [-d] [-k] [-m] [-n ] [-p] [-s] [-V] [-q ] [-l] [-v] 
用法: srvctl config cvu 
 
有關各個命令和物件的詳細幫助, 請使用: 
srvctl -h  
例如: 
[grid@vcdwdb1 ~]$ srvctl config asm 
ASM 主目錄: /u01/app/11.2.0/grid_home 
ASM 監聽程式: LISTENER 
 
[grid@vcdwdb1 ~]$ srvctl config asm -a  
ASM 主目錄: /u01/app/11.2.0/grid_home 
ASM 監聽程式: LISTENER  
ASM 已啟用。 

[grid@vcdwdb1 ~]$ srvctl config listener -a 
名稱: LISTENER 
網路: 1, 所有者: grid 
主目錄:  
  節點 vcdwdb2,vcdwdb1 上的 /u01/app/11.2.0/grid_home  
端點: TCP:1521 



在Oracle 11g環境中,Oracle的關閉和啟動順序如下: 
關閉過程(關閉資料庫->關閉CRS叢集

1、關閉資料庫:
 用oracl使用者執行srvctl命令
 語法:srvctl stop database -d dbname [-o immediate]
 作用:可以一次性關閉dbname的所有例項

[oracle@rac1 ~]# su - oracle
[oracle@oeltan1 ~]$ export ORACLE_UNQNAME=orcl
[oracle@oeltan1 ~]$ emctl stop dbconsole

[oracle@rac1 ~]$ srvctl stop database -d orcl    ----停止所有節點上的例項

然後檢視狀態:
[oracle@rac1 ~]$ srvctl status database -d orcl     
Instance rac1 is not running on node rac1
Instance rac2 is not running on node rac2

2、停止HAS(High Availability Services),必須以root使用者
該命令的語法如下:
crsctl stop cluster [[-all]|[-n[...]]] [-f]
crsctl start cluster [[-all]|[-n[...]]]
該引數支援的選項更多,可以同時操控所有的節點。如果不指定引數,那麼只對當前節點有效。

[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop has -f        ----停止rac1節點has服務
[root@rac1 bin]# ./crsctl stop crs -f        ----停止rac1節點crs服務 

[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl stop has -f        ----停止rac2節點has服務

[root@rac2 bin]# ./crsctl stop crs -f        ----停止rac2節點crs服務 
對於crsctl stop has只有一個可選的引數就是-f,該命令只能停執行該命令伺服器上的HAS而不能停所有節點上的。所以要把RAC全部停掉,需要在所有節點執行該命令。


3、停止節點叢集服務,必須以root使用者:
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
停止所有節點服務
[root@rac1 bin]# ./crsctl stop cluster -all
控制所停節點:
[root@rac1 bin]#  ./crsctl stop cluster -n rac1 rac2
停止單節點叢集服務:

[root@rac1 bin]# ./crsctl stop cluster        ----停止rac1節點叢集服務
[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl stop cluster        ----停止rac2節點叢集服務

Oracle 11g R2的RAC預設開機會自啟動,當然如果需要手工啟動:也就是按照Cluster、HAS、Database的順序啟動即可。

4.檢查叢集程式狀態
[root@rac1 bin]# crsctl check cluster
詳細輸出
[root@rac1 bin]# crs_stat -t -v
只檢查本節點的叢集狀態
[root@rac1 bin]# crsctl check crs

啟動過程(啟動CRS叢集->啟動資料庫
5.啟動叢集CRS
所有節點啟動
[root@rac1 bin]# ./crsctl start cluster -n rac1 rac2
CRS-4123: Oracle High Availability Services has been started.
[root@rac1 bin]# ./crsctl start cluster -all
單個節點啟動
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl start cluster        ----啟動rac1節點叢集服務
[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl start cluster        ----啟動rac2節點叢集服務 

[root@rac2 ~]# ./crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
此命令會在後臺啟動所有RAC CRS相關程式
[root@rac2 ~]# ./crs_stat -t -v
CRS-0184: Cannot communicate with the CRS daemon.
因為start has啟動的crs程式比較多因此會啟動的比較慢,我的機器等待了5分鐘,在沒有完全啟動成功之前會報上述錯誤,需要耐心等待一段時間後執行下面命令即可檢視到所有CRS相關程式服務已經啟動。
[root@rac2 ~]# ./crs_stat -t -v
Name          Type          R/RA  F/FT  Target    State    Host        
----------------------------------------------------------------------
ora.DATA.dg    ora....up.type 0/5    0/    ONLINE    ONLINE    rac1        
ora....ER.lsnr ora....er.type 0/5    0/    ONLINE    ONLINE    rac1        
ora....N1.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac2        
ora....N2.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac1        
ora....N3.lsnr ora....er.type 0/5    0/0    ONLINE    ONLINE    rac1        
ora.asm        ora.asm.type  0/5    0/    ONLINE    ONLINE    rac1        
ora.cvu        ora.cvu.type  0/5    0/0    ONLINE    ONLINE    rac1        
ora.gsd        ora.gsd.type  0/5    0/    OFFLINE  OFFLINE              
ora....network ora....rk.type 0/5    0/    ONLINE    ONLINE    rac1        
ora.oc4j      ora.oc4j.type  0/1    0/2    ONLINE    ONLINE    rac1        
ora.ons        ora.ons.type  0/3    0/    ONLINE    ONLINE    rac1        
ora....SM1.asm application    0/5    0/0    ONLINE    ONLINE    rac1        
ora....C1.lsnr application    0/5    0/0    ONLINE    ONLINE    rac1        
ora.rac1.gsd  application    0/5    0/0    OFFLINE  OFFLINE              
ora.rac1.ons  application    0/3    0/0    ONLINE    ONLINE    rac1        
ora.rac1.vip  ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac1        
ora....SM2.asm application    0/5    0/0    ONLINE    ONLINE    rac2        
ora....C2.lsnr application    0/5    0/0    ONLINE    ONLINE    rac2        
ora.rac2.gsd  application    0/5    0/0    OFFLINE  OFFLINE              
ora.rac2.ons  application    0/3    0/0    ONLINE    ONLINE    rac2        
ora.rac2.vip  ora....t1.type 0/0    0/0    ONLINE    ONLINE    rac2        
ora....ry.acfs ora....fs.type 0/5    0/    ONLINE    ONLINE    rac1        
ora.scan1.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac2        
ora.scan2.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac1        
ora.scan3.vip  ora....ip.type 0/0    0/0    ONLINE    ONLINE    rac1 
說明:
 英文解釋
ora.gsd is OFFLINE by default ifthere is no 9i database in the cluster.
ora.oc4j is OFFLINE in 11.2.0.1 as DatabaseWorkload Management(DBWLM) is unavailable.  these can be ignored in11gR2 RAC.
中文解釋
ora.gsd是叢集服務中用於與9i資料庫進行通訊的一個程式,在當前版本中為了向後相容才儲存下來,狀態為OFFLINE不影響CRS的正常執行與效能,我們忽略即可
ora.oc4j是在11.2.0.2以上版本中有效的服務程式,用於DBWLM的資源管理,因此在11.2.0.1以下版本並沒有使用

6.啟動HAS
單一節點啟動
[root@rac1 ~]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 ~]# ./crsctl start has -f
[root@rac1 ~]# ./crsctl start crs -f
[root@rac1 ~]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
對於crsctl start has只有一個可選的引數就是-f,該命令只能啟動執行該命令伺服器上的HAS而不能啟動所有節點上的。所以要把RAC全部啟動,需要在所有節點執行該命令。
[root@rac2 ~]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 ~]# ./crsctl start has -f 
[root@rac2 ~]# ./crsctl start crs -f
[root@rac2 ~]# ./crsctl check crs -f
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

7.啟動資料庫:
Oracl使用者執行srvctl命令:
語法:srvctl start|stop|status database -d dbname [-o immediate]
作用:可以一次性啟動dbname的所有例項

以oracl使用者執行srvctl命令:
[oracle@rac1 ~]$ srvctl start database -d orcl    ----啟動所有節點上的例項
然後檢視狀態:
[oracle@rac1 ~]$ srvctl status database -d orcl     
Instance rac1 is not running on node rac1Instance rac2 is not running on node rac2
啟動EM
[oracle@oeltan1 ~]$ emctl start dbconsole 


8.詳細輸出資源全名稱並檢查狀態
crsctl status resource -t
crsctl status resource

9.常用srvctl命令

指定dbname上某個例項
srvctl start|stop|status instance -d -i

10.顯示RAC下所有例項配置與狀態

srvctl status|config database -d

11.顯示所有節點的應用服務(VIP,GSD,listener,ONS)

srvctl start|stop|status nodeapps -n

12.ASM程式服務管理

srvctl start|stop|status|config asm -n [-i ] [-o]
srvctl config asm -a
srvctl status asm -a

13.可以獲取所有的環境資訊:

srvctl getenv database -d [-i]

14.設定全域性環境和變數:

srvctl setenv database -d -t LANG=en

15.在OCR中刪除已有的資料庫資訊

srvctl remove database -d

16.向OCR中新增一個資料庫的例項:

srvctl add instance -d -i -n
srvctl add instance -d -i -n

17.檢查監聽的狀態

srvctl status listener
srvctl config listener -a
SCAN配置資訊
srvctl config scan
SCAN listener狀態資訊
srvctl status scan


小結:
crsctl命令是一個叢集級別命令,可以對所有叢集資源進行統一啟動、停止等管理操作

srvctl命令是一個服務級別命令,可以對單一服務資源進行統一啟動、停止等管理操作

附:srvctl命令啟動與停止的詳細幫助
[root@rac2 ~]# srvctl start -h

The SRVCTL start command starts, Oracle Clusterware enabled, non-running objects.

Usage: srvctl start database -d [-o ] [-n ]
Usage: srvctl start instance -d {-n [-i ] | -i } [-o ]
Usage: srvctl start service -d [-s "" [-n | -i ] ] [-o ]
Usage: srvctl start nodeapps [-n ] [-g] [-v]
Usage: srvctl start vip { -n | -i } [-v]
Usage: srvctl start asm [-n ] [-o ]
Usage: srvctl start listener [-l ] [-n ]
Usage: srvctl start scan [-i ] [-n ]
Usage: srvctl start scan_listener [-n ] [-i ]
Usage: srvctl start oc4j [-v]
Usage: srvctl start home -o -s -n
Usage: srvctl start filesystem -d [-n ]
Usage: srvctl start diskgroup -g [-n ""]
Usage: srvctl start gns [-l ] [-n ] [-v]
Usage: srvctl start cvu [-n ]
For detailed help on each command and object and its options use:
 srvctl -h


[root@rac2 ~]# srvctl stop -h

The SRVCTL stop command stops, Oracle Clusterware enabled, starting or running objects.

Usage: srvctl stop database -d [-o ] [-f]
Usage: srvctl stop instance -d {-n | -i }  [-o ] [-f]
Usage: srvctl stop service -d [-s "" [-n | -i ] ] [-f]
Usage: srvctl stop nodeapps [-n ] [-g] [-f] [-r] [-v]
Usage: srvctl stop vip { -n   | -i } [-f] [-r] [-v]
Usage: srvctl stop asm [-n ] [-o ] [-f]
Usage: srvctl stop listener [-l ] [-n ] [-f]
Usage: srvctl stop scan [-i ] [-f]
Usage: srvctl stop scan_listener [-i ] [-f]
Usage: srvctl stop oc4j [-f] [-v]
Usage: srvctl stop home -o -s -n [-t ] [-f]
Usage: srvctl stop filesystem -d [-n ] [-f]
Usage: srvctl stop diskgroup -g [-n ""] [-f]
Usage: srvctl stop gns [-n ] [-f] [-v]
Usage: srvctl stop cvu [-f]
For detailed help on each command and object and its options use:
 srvctl -h


If you want to check if the database is running you can run:

ps -ef | grep smon
oracle 246196 250208 0 14:29:11 pts/0 0:00 grep smon
 

If you want to check if the database listeners are running you can run:

ps -ef | grep lsnr
root 204886 229874 0 14:30:07 pts/0 0:00 grep lsnr

Here the listeners are running:

ps -ef | grep lsnr
oracle 282660 1 0 14:07:34 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN2 -inherit
oracle 299116 250208 0 14:30:00 pts/0 0:00 grep lsnr
oracle 303200 1 0 14:23:44 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN1 -inherit
oracle 315432 1 0 14:07:35 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN3 -inherit
oracle 323626 1 0 14:07:34 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER -inherit

 

If you want to check if any clusterware component is running you can run:

ps -ef | grep crs
root 204842 229874 0 14:27:19 pts/0 0:00 grep crs
 

Here the clusterware components (resources) are running:

ps -ef | grep crs
root 155856 1 1 14:05:47 - 0:22 /oracle/grid/crs/11.2/bin/ohasd.bin reboot
root 159940 1 0 14:07:08 - 0:01 /oracle/grid/crs/11.2/bin/oclskd.bin
oracle 221270 1 0 14:06:43 - 0:02 /oracle/grid/crs/11.2/bin/gpnpd.bin
root 225322 1 0 14:06:45 - 0:02 /oracle/grid/crs/11.2/bin/cssdmonitor
oracle 229396 1 0 14:06:41 - 0:00 /oracle/grid/crs/11.2/bin/gipcd.bin
oracle 233498 1 0 14:06:41 - 0:00 /oracle/grid/crs/11.2/bin/mdnsd.bin
root 253952 1 0 14:06:46 - 0:01 /oracle/grid/crs/11.2/bin/orarootagent.bin
root 258060 1 0 14:06:59 - 0:00 /oracle/grid/crs/11.2/bin/octssd.bin reboot
root 262150 1 0 14:06:47 - 0:00 /bin/sh /oracle/grid/crs/11.2/bin/ocssd
oracle 270344 262150 1 14:06:47 - 0:11 /oracle/grid/crs/11.2/bin/ocssd.bin
oracle 274456 156062 0 14:07:10 - 0:00 /oracle/grid/crs/11.2/bin/evmlogger.bin -o /oracle/grid/crs/11.2/evm/log/evmlogger.info -l /oracle/grid/crs/11.2/evm/log/evmlogger.log
oracle 282660 1 0 14:07:34 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN2 -inherit
root 286742 1 6 14:07:17 - 0:36 /oracle/grid/crs/11.2/bin/orarootagent.bin
oracle 303200 1 1 14:23:44 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN1 -inherit
oracle 315432 1 0 14:07:35 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER_SCAN3 -inherit
oracle 323626 1 0 14:07:34 - 0:00 /oracle/grid/crs/11.2/bin/tnslsnr LISTENER -inherit
oracle 156062 1 0 14:07:01 - 0:02 /oracle/grid/crs/11.2/bin/evmd.bin
root 229692 1 0 14:06:46 - 0:02 /oracle/grid/crs/11.2/bin/cssdagent
oracle 233762 1 0 14:06:40 - 0:01 /oracle/grid/crs/11.2/bin/oraagent.bin
oracle 246226 250208 0 14:32:34 pts/0 0:00 grep crs
oracle 254218 1 0 14:06:53 - 0:01 /oracle/grid/crs/11.2/bin/diskmon.bin -d -f
root 258554 1 0 14:07:01 - 0:09 /oracle/grid/crs/11.2/bin/crsd.bin reboot
oracle 270612 1 0 14:07:28 - 0:03 /oracle/grid/crs/11.2/bin/oraagent.bin 

REMARK: the database listeners are cluster resources and not database resources !

此外給大家推薦幾個日常的啟動關閉命令:

其他管理維護指南

.透過srvctl管理

1.關閉RAC資料庫服務順序
[oracle@dbp ~]$ srvctl stop
   database    -d RACwh
[oracle@dbp ~]$ srvctl stop
   asm         -n RAC01
[oracle@dbp ~]$ srvctl stop
   asm         -n RAC02
[oracle@dbp ~]$ srvctl stop
   nodeapps    -n RAC01
[oracle@dbp ~]$ srvctl stop
   nodeapps    -n RAC02

2.啟動RAC資料庫服務順序
[oracle@RAC01 ~]$ srvctl start
  nodeapps    -n RAC01
[oracle@RAC01 ~]$ srvctl start
  nodeapps    -n RAC02
[oracle@RAC01 ~]$ srvctl start
  asm         -n RAC01
[oracle@RAC01 ~]$ srvctl start
  asm         -n RAC02
[oracle@RAC01 ~]$ srvctl start
  database    -d RACwh

3.其他命令
例項管理

[oracle@RAC01 ~]$ srvctl status
instance    -d RACwh  -i RACwh1
[oracle@RAC01 ~]$ srvctl stop
   instance    -d RACwh  -i RACwh1
[oracle@RAC01 ~]$ srvctl start
  instance    -d RACwh  -i RACwh1

監聽管理

[oracle@RAC01 ~]$ srvctl status
listener    -n RAC01
[oracle@RAC01 ~]$ srvctl stop
   listener    -n RAC01
[oracle@RAC01 ~]$ srvctl start
  listener    -n RAC01

.透過crsctl工具管理

[oracle@RAC01 ~]$ crs_stat -t

[oracle@RAC01 ~]$ crs_stat

[oracle@RAC01 ~]$ crs_start -all

[oracle@RAC01 ~]$ crs_stop -all

[oracle@RAC01 ~]$ crs_stop "ora. RACwh.db"

crs_stat命令在oracle11g後逐漸趨於廢棄,如下即可明白:

[grid@RAC02 ~]$ crs_stat -h

This command is deprecated and has been replaced by 'crsctl status resource'

This command remains for backward compatibility only

Usage:  crs_stat [resource_name [...]] [-v] [-l] [-q] [-c cluster_member]

        crs_stat [resource_name [...]] -t [-v] [-q] [-c cluster_member]

        crs_stat -p [resource_name [...]] [-q]

        crs_stat [-a] application -g

        crs_stat [-a] application -r [-c cluster_member]

        crs_stat -f [resource_name [...]] [-q] [-c cluster_member]

        crs_stat -ls [resource_name [...]] [-q]


歸檔設定:
1、分別建立兩個例項的ASM目錄
任意一個例項,grid使用者下:
# su - grid
[grid@oeltan1 ~]$ sqlplus "/as sysasm"
SQL> select name from V$asm_diskgroup;
NAME
--------------------------------------------------------------------------------
CRS
DATA
FRA
SQL> alter diskgroup FRA add directory '+FRA/ORCL';
SQL> alter diskgroup FRA add directory '+FRA/ORCL/ARCH1';
SQL> asmcmd;
還可以透過asmcmd建立目錄:    
ASMCMD> pwd
+FRA/ORCL
ASMCMD> mkdir ARCH2

2、修改歸檔引數
任意一個例項,oracle使用者下:    
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+FRA/ORCL/ARCH1' SCOPE=both SID='orcl1';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+FRA/ORCL/ARCH2' SCOPE=both SID='orcl2';

3、兩個節點上分別都執行:    
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
--修改一個例項時,另一個例項不能在open狀態,否則報ORA-01126: database must be mounted in this instance and not open in any

4、分別檢查:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +FRA/orcl/arch1
Oldest online log sequence 14
Next log sequence to archive 15
Current log sequence 15
 
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +FRA/orcl/arch2
Oldest online log sequence 6
Next log sequence to archive 7
Current log sequence 7

具體描述可檢視連線:
http://blog.csdn.net/tianlesoftware/article/details/8435772




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

相關文章