您好,登錄后才能下訂單哦!
Oracle 10g時代,我們很羨慕那些懂得Oracle9i的DBA,而不知不覺中度過了Oracle11g并迎接了12c時代,但是還是有不少DBA習慣于Oracle 10g的管理思維,尤其是在管理或安裝Oracle 11g RAC時,偶爾感到不知錯所。
在Oracle 11gR2 下的RAC,架構發生了變化,多了grid用戶、警告日志位置也發生變化等。CRS的信息也是放在ASM 實例里的,所以要關asm,必須關閉crs,在Oracle
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<server>[...]]] [-f]
crsctl start cluster [[-all]|[-n<server>[...]]]
該參數支持的選項更多,可以同時操控所有的節點。如果不指定參數,那么只對當前節點有效。
如:
[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 ~]# srvctl -h
-bash: srvctl: command not found
[root@vcdwdb1 ~]# su - grid
[grid@vcdwdb1 ~]$ srvctl -h
用法: srvctl [-V] --顯示內容很多,如下對內容進行了挑選后粘貼
用法: srvctl start nodeapps [-n <node_name>] [-g] [-v]
用法: srvctl stop nodeapps [-n <node_name>] [-g] [-f] [-r] [-v]
用法: srvctl status nodeapps
用法: srvctl start vip { -n <node_name> | -i <vip_name> } [-v]
用法: srvctl stop vip { -n <node_name> | -i <vip_name> } [-f] [-r] [-v]
用法: srvctl relocate vip -i <vip_name> [-n <node_name>] [-f] [-v]
用法: srvctl status vip { -n <node_name> | -i <vip_name> } [-v]
用法: srvctl start asm [-n <node_name>] [-o <start_options>]
用法: srvctl stop asm [-n <node_name>] [-o <stop_options>] [-f]
用法: srvctl config asm [-a]
用法: srvctl status asm [-n <node_name>] [-a] [-v]
用法: srvctl config listener [-l <lsnr_name>] [-a]
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>]
用法: srvctl stop listener [-l <lsnr_name>] [-n <node_name>] [-f]
用法: srvctl status listener [-l <lsnr_name>] [-n <node_name>] [-v]
用法: srvctl start scan [-i <ordinal_number>] [-n <node_name>]
用法: srvctl stop scan [-i <ordinal_number>] [-f]
用法: srvctl relocate scan -i <ordinal_number> [-n <node_name>]
用法: srvctl status scan [-i <ordinal_number>] [-v]
用法: srvctl config cvu
用法: srvctl start cvu [-n <node_name>]
用法: srvctl stop cvu [-f]
用法: srvctl relocate cvu [-n <node_name>]
用法: srvctl status cvu [-n <node_name>]
也可以進一步查看配置信息,如下:
[grid@vcdwdb1 ~]$ srvctl start -h
SRVCTL start 命令啟動啟用 Oracle Clusterware 的未運行的對象。
用法: srvctl start database -d <db_unique_name> [-o <start_options>] [-n <node>]
用法: srvctl start instance -d <db_unique_name> {-n <node_name> [-i <inst_name>] | -i <inst_name_list>} [-o <start_options>]
用法: srvctl start service -d <db_unique_name> [-s "<service_name_list>" [-n <node_name> | -i <inst_name>] ] [-o <start_options>]
用法: srvctl start nodeapps [-n <node_name>] [-g] [-v]
用法: srvctl start vip { -n <node_name> | -i <vip_name> } [-v]
用法: srvctl start asm [-n <node_name>] [-o <start_options>]
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>]
用法: srvctl start scan [-i <ordinal_number>] [-n <node_name>]
用法: srvctl start scan_listener [-n <node_name>] [-i <ordinal_number>]
用法: srvctl start oc4j [-v]
用法: srvctl start home -o <oracle_home> -s <state_file> -n <node_name>
用法: srvctl start filesystem -d <volume_device> [-n <node_name>]
用法: srvctl start diskgroup -g <dg_name> [-n "<node_list>"]
用法: srvctl start gns [-l <log_level>] [-n <node_name>] [-v]
用法: srvctl start cvu [-n <node_name>]
有關各個命令和對象的詳細幫助, 請使用:
srvctl <command> <object> -h
[grid@vcdwdb1 ~]$ srvctl start listener -h
啟動監聽程序。
用法: srvctl start listener [-l <lsnr_name>] [-n <node_name>]
-l <lsnr_name> 監聽程序名
-n <node_name> 節點名
-h 輸出用法
[grid@vcdwdb1 ~]$
[grid@vcdwdb1 ~]$ srvctl status -h
SRVCTL status 命令顯示對象的當前狀態。
用法: srvctl status database -d <db_unique_name> [-f] [-v]
用法: srvctl status instance -d <db_unique_name> {-n <node_name> | -i <inst_name_list>} [-f] [-v]
用法: srvctl status service -d <db_unique_name> [-s "<service_name_list>"] [-f] [-v]
用法: srvctl status nodeapps
用法: srvctl status vip { -n <node_name> | -i <vip_name> } [-v]
用法: srvctl status listener [-l <lsnr_name>] [-n <node_name>] [-v]
用法: srvctl status asm [-n <node_name>] [-a] [-v]
用法: srvctl status scan [-i <ordinal_number>] [-v]
用法: srvctl status scan_listener [-i <ordinal_number>] [-v]
用法: srvctl status srvpool [-g <pool_name>] [-a]
用法: srvctl status server -n "<server_list>" [-a]
用法: srvctl status oc4j [-n <node_name>] [-v]
用法: srvctl status home -o <oracle_home> -s <state_file> -n <node_name>
用法: srvctl status filesystem -d <volume_device> [-v]
用法: srvctl status diskgroup -g <dg_name> [-n "<node_list>"] [-a] [-v]
用法: srvctl status cvu [-n <node_name>]
用法: srvctl status gns [-n <node_name>] [-v]
有關各個命令和對象的詳細幫助, 請使用:
srvctl <command> <object> -h
[grid@vcdwdb1 ~]$ srvctl config -h
SRVCTL config 命令顯示存儲在 OCR 中的對象配置。
用法: srvctl config database [-d <db_unique_name> [-a] ] [-v]
用法: srvctl config service -d <db_unique_name> [-s <service_name>] [-v]
用法: srvctl config nodeapps [-a] [-g] [-s]
用法: srvctl config vip { -n <node_name> | -i <vip_name> }
用法: srvctl config network [-k <network_number>]
用法: srvctl config asm [-a]
用法: srvctl config listener [-l <lsnr_name>] [-a]
用法: srvctl config scan [-i <ordinal_number>]
用法: srvctl config scan_listener [-i <ordinal_number>]
用法: srvctl config srvpool [-g <pool_name>]
用法: srvctl config oc4j
用法: srvctl config filesystem -d <volume_device>
用法: srvctl config gns [-a] [-d] [-k] [-m] [-n <node_name>] [-p] [-s] [-V] [-q <name>] [-l] [-v]
用法: srvctl config cvu
有關各個命令和對象的詳細幫助, 請使用:
srvctl <command> <object> -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 ~]$
[grid@vcdwdb1 ~]$ srvctl config listener -a
名稱: LISTENER
網絡: 1, 所有者: grid
主目錄: <CRS home>
節點 vcdwdb2,vcdwdb1 上的 /u01/app/11.2.0/grid_home
端點: TCP:1521
總結:
在Oracle 11g環境中,Oracle的關閉和啟動順序如下:
關閉順序:
1、關閉數據庫,oracl用戶執行srvctl命令:
[oracle@rac1 ~]$ srvctl stop database -d ORCL ---停止所有節點上的實例
或者每個節點登錄數據庫后執行SQL>shutdown immediate
2,停止HAS(High Availability Services),必須以root用戶
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop has –f
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 ----停止本節點集群服務,每個節點分別執行
也可以如下控制所停節點:
[root@rac1 bin]# ./crsctl stop cluster -n rac1 rac2
如果在一個節點停止其他所有節點的,而不一一執行命令,則也可以采用:
[root@rac1 bin]# ./crsctl stop cluster –all
啟動順序:
11g R2的RAC默認開機會自啟動,當然如果需要手工啟動。手工啟動按照cluster, HAS, database的順序啟動即可,具體命令如下:
1、啟動集群(cluster)
[root@rac1 ~]# ./crsctl start cluster -all --所有節點同時啟動
或者只啟動指定節點的
[root@rac1 ~]# ./crsctl start cluster -n rac1 rac2 --兩個節點同時啟動
2、啟動HAS(High Availability Services),必須以root用戶
[root@rac1 bin]# ./crsctl start has
以上has啟動命令需要在每個節點分別執行
3、啟動數據庫,oracl用戶執行srvctl命令(假設數據庫名為ORCL):
[oracle@rac1 ~]$ srvctl start database -d ORCL ---停止所有節點上的實例
或者每個節點登錄數據庫后執行SQL>startup
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。