Oracle RAC系列之:利用srvctl管理RAC數據庫

srvctl即Server Control,是Oracle提供的一個命令行工具,用以用於管理Oracle的RAC環境。srvctl在Oracle 9i中被引入,Oracle10g、11g對其功能進行了很大的增強和改進。下面介紹下此命令的簡單用法。

一、 查看實例狀態(srvctl status)
查詢所有實例和服務的狀態:
[oracle@node-rac1 ~]$ srvctl status database -d racdb
Instance racdb2 is running on node node-rac2
Instance racdb1 is running on node node-rac1
查詢實例racdb1的狀態:
[oracle@node-rac1 ~]$ srvctl status instance -d racdb -i racdb1 
Instance racdb1 is running on node node-rac1
查詢實例racdb2的狀態:
[oracle@node-rac1 ~]$ srvctl status instance -d racdb -i racdb2
Instance racdb2 is running on node node-rac2
查詢特定節點上應用程序的狀態:
[oracle@node-rac1 ~]$ srvctl status nodeapps -n node-rac2
VIP is running on node: node-rac2
GSD is running on node: node-rac2
Listener is running on node: node-rac2
ONS daemon is running on node: node-rac2
查詢特定節點上ASM實例的狀態
[oracle@node-rac1 ~]$ srvctl status asm -n node-rac2
ASM instance +ASM2 is running on node node-rac2.
在上面的命令行操作中,都用到的參數是:
 -d,即database name,表示數據庫名稱
 -n,即node name,表示節點名稱
 -i,即instance name,表示實例名稱

二、 查看RAC數據庫設置信息(srvctl config)
顯示 RAC 數據庫的配置:
[oracle@node-rac1 ~]$ srvctl config database -d racdb
node-rac2 racdb2 /u01/oracle/product/11.0.6/rac_db
node-rac1 racdb1 /u01/oracle/product/11.0.6/rac_db
列出配置的所有數據庫:
[oracle@node-rac1 ~]$ srvctl config database
racdb
顯示指定節點的應用程序配置:
[oracle@node-rac1 ~]$ srvctl config nodeapps -n node-rac2
VIP exists.: /node-vip2/192.168.12.240/255.255.255.0/eth0
GSD exists.
ONS daemon exists.
Listener exists.
顯示指定節點的ASM實例配置:
[oracle@node-rac1 ~]$ srvctl config asm -n node-rac2        
+ASM2 /u01/oracle/product/11.0.6/rac_db

三、 啓動/關閉實例(srvctl start/stop)
停止Oracle RAC所有服務:
[oracle@node-rac1 ~]$ emctl stop dbconsole
[oracle@node-rac1 ~]$ srvctl stop instance -d racdb -i racdb1
[oracle@node-rac1 ~]$ srvctl stop asm -n node-rac1
[oracle@node-rac1 ~]$ srvctl stop nodeapps -n node-rac1
也可以通過一條命令停止所有實例及其啓用的服務:
[oracle@node-rac1 ~]$srvctl stop database -d racdb
啓動Oracle RAC所有服務:
[oracle@node-rac1 ~]$ srvctl start nodeapps -n node-rac1
[oracle@node-rac1 ~]$ srvctl start asm -n node-rac1
[oracle@node-rac1 ~]$ srvctl start instance -d racdb -i racdb1
[oracle@node-rac1 ~]$ emctl start dbconsole
也可以通過一條命令啓動所有實例及其啓用的服務:
[oracle@node-rac1 ~]$srvctl start database -d racdb

四、 增加/刪除/修改實例(srvctl add/remove/modify)
增加一個服務,然後在節點間切換此服務:
[oracle@node-rac1 ~]$ srvctl add service -d racdb -s test -r racdb1 -a racdb2 -P BASIC
其中參數的含義如下:
 -r, 表示首選實例
 -a,表示可用的實例
 -P,表示故障切換策略,有none、BASIC、preconnect三個可選項
在集羣節點之間切換集羣服務:
[oracle@node-rac1 ~]$ srvctl start service -d racdb -s test -i racdb1
[oracle@node-rac1 ~]$ srvctl status service -d racdb -s test
Service test is running on instance(s) racdb1
[oracle@node-rac1 ~]$ srvctl stop  service  -d racdb -s test -i racdb1   
[oracle@node-rac1 ~]$ srvctl start  service  -d racdb -s test -i racdb2
[oracle@node-rac1 ~]$ srvctl status  service  -d  racdb -s test
Service test is running on instance(s) racdb2
從某個實例節點移除一個服務:
[oracle@node-rac1 ~]$ srvctl remove service -d racdb -s test -i racdb2
test PREF: racdb1 racdb2 AVAIL: 
Remove service test from the instance racdb2? (y/[n]) y
使數據庫服務對某個實例可用:
[oracle@node-rac1 ~]$ srvctl add service -d racdb -s test -u -a racdb2
[oracle@node-rac1 ~]$ srvctl start service -d racdb -s test           
[oracle@node-rac1 ~]$ srvctl modify service -d racdb -s test -i racdb2 –r
 

本文出自 “技術成就夢想” 博客,請務必保留此出處http://ixdba.blog.51cto.com/2895551/970802

發佈了29 篇原創文章 · 獲贊 5 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章