1、關閉數據庫
切換至oracle用戶
1.1 查看數據庫實例狀態
[oracle@db1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node db1
Instance orcl2 is running on node db2
1.2 停止所有節點上實例
[oracle@db1 ~]$ srvctl stop database -d orcl
1.3 確認數據庫實例狀態
[oracle@db1 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node db1
Instance orcl2 is not running on node db2
[oracle@db2 ~]$ srvctl status database -d orcl
Instance orcl1 is not running on node db1
Instance orcl2 is not running on node db2
2、停止HAS(High Availability Services),必須以root用戶操作
2.1 查看節點集群狀態
切換至grid用戶,查看本節點集群進程狀態
crsctl check crs
[grid@db1 ~]$ 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
[grid@db2 ~]$ 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
查看本節點集群狀態
[grid@db1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.FRA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE db1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE db2
ora.ORC.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.REDO.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE db1
ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE db2
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE db1
ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE db1
ora.db1.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db1.ons application 0/3 0/0 ONLINE ONLINE db1
ora.db1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE db2
ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE db2
ora.db2.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db2.ons application 0/3 0/0 ONLINE ONLINE db2
ora.db2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db2
ora.gsd ora.gsd.type 0/5 0/ ONLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE db1
ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE db2
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE db1
ora.orcl.db ora....se.type 0/2 0/1 ONLINE ONLINE db1
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE db1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE db2
[grid@db2 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.FRA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE db1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE db2
ora.ORC.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.REDO.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE db1
ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE db2
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE db1
ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE db1
ora.db1.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db1.ons application 0/3 0/0 ONLINE ONLINE db1
ora.db1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE db2
ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE db2
ora.db2.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db2.ons application 0/3 0/0 ONLINE ONLINE db2
ora.db2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db2
ora.gsd ora.gsd.type 0/5 0/ ONLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE db1
ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE db2
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE db1
ora.orcl.db ora....se.type 0/2 0/1 ONLINE ONLINE db1
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE db1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE db2
2.2 停止has服務
需要在RAC的所有節點上執行,啟動也一樣。has與crs等同
[root@db1 ~]# find / -name crsctl
/u01/app/grid/11.2.0/bin/crsctl
[root@db1 ~]# cd /u01/app/grid/11.2.0/bin/
[root@db1 bin]# ./crsctl stop has -f
[root@db2 ~]# find / -name crsctl
/u01/app/grid/11.2.0/bin/crsctl
[root@db2 ~]# cd /u01/app/grid/11.2.0/bin/
[root@db2 bin]# ./crsctl stop has -f
其實停止HAS服務以后集群已經關停,可以查看集群狀態確認,無需下面3、4步
2.3 停止crs服務
需要在RAC的所有節點上執行,啟動也一樣。has與crs等同
[root@db1 bin]# ./crsctl stop crs -f
CRS-4544: Unable to connect to OHAS
[root@db2 bin]# ./crsctl stop crs -f
CRS-4544: Unable to connect to OHAS
2.4 停止節點集群服務
停止節點集群服務,必須以root用戶:
[root@db1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@db1 bin]# ./crsctl stop cluster ----停止本節點集群服務
[root@db1 bin]# ./crsctl stop cluster -all ---停止所有節點服務
也可以如下控制所停節點:
[root@rac1 bin]# crsctl stop cluster -n rac1 rac2
CRS-2677: Stop of 'ora.cssd' on 'rac1' succeeded
CRS-2677: Stop of 'ora.cssd' on 'rac2' succeeded
3 啟動集群
可以單節點啟動也可以雙節點同時啟動,下面分別介紹
3.1 單節點啟動
兩個節點都要執行
節點1
[root@db1 bin]# ./crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[root@db1 bin]# ./crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.
[root@db1 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4534: Cannot communicate with Event Manager
節點2
[root@db2 bin]# ./crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[root@db2 bin]# ./crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.
[root@db2 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4534: Cannot communicate with Event Manager
3.2 所有節點啟動
單節點執行即可
[root@db2 bin]# ./crsctl start cluster -n db1 db2
CRS-4690: Oracle Clusterware is already running on 'db1'
CRS-4690: Oracle Clusterware is already running on 'db2'
CRS-4000: Command Start failed, or completed with errors.
或者
[root@db2 bin]# ./crsctl start cluster -all
CRS-4690: Oracle Clusterware is already running on 'db1'
CRS-4690: Oracle Clusterware is already running on 'db2'
CRS-4000: Command Start failed, or completed with errors.
3.3 檢查集群狀態
[root@db1 bin]# ./crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.FRA.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE db1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE db1
ora.ORC.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.REDO.dg ora....up.type 0/5 0/ ONLINE ONLINE db1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE db1
ora.cvu ora.cvu.type 0/5 0/0 ONLINE ONLINE db2
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE db1
ora....B1.lsnr application 0/5 0/0 ONLINE ONLINE db1
ora.db1.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db1.ons application 0/3 0/0 ONLINE ONLINE db1
ora.db1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE db2
ora....B2.lsnr application 0/5 0/0 ONLINE ONLINE db2
ora.db2.gsd application 0/5 0/0 ONLINE OFFLINE
ora.db2.ons application 0/3 0/0 ONLINE ONLINE db2
ora.db2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE db2
ora.gsd ora.gsd.type 0/5 0/ ONLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE db1
ora.oc4j ora.oc4j.type 0/1 0/2 ONLINE ONLINE db2
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE db1
ora.orcl.db ora....se.type 0/2 0/1 OFFLINE OFFLINE
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE db1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE db1
說明:
英文解釋:
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以下版本並沒有使用
4、啟動數據庫
oracl用戶執行srvctl命令:
語法:srvctl start|stop|status database -d dbname [-o immediate]
作用:可以一次性啟動dbname的所有實例
4.1 啟動所有節點數據庫實例
[oracle@db1 ~]$ srvctl start database -d orcl
4.2 查看多有節點數據庫實例狀態
[oracle@db1 ~]$ srvctl status database -d orcl
Instance orcl1 is running on node db1
Instance orcl2 is running on node db2
4.3.詳細輸出資源全名稱並檢查狀態
[grid@db1 ~]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.FRA.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.LISTENER.lsnr
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.ORC.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.REDO.dg
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.asm
ONLINE ONLINE db1 Started
ONLINE ONLINE db2 Started
ora.gsd
ONLINE OFFLINE db1
ONLINE OFFLINE db2
ora.net1.network
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.ons
ONLINE ONLINE db1
ONLINE ONLINE db2
ora.registry.acfs
ONLINE ONLINE db1
ONLINE ONLINE db2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE db1
ora.cvu
1 ONLINE ONLINE db2
ora.db1.vip
1 ONLINE ONLINE db1
ora.db2.vip
1 ONLINE ONLINE db2
ora.oc4j
1 ONLINE ONLINE db2
ora.orcl.db
1 ONLINE ONLINE db1 Open
2 ONLINE ONLINE db2 Open
ora.scan1.vip
1 ONLINE ONLINE db1
[grid@db1 ~]$ crsctl status resource
NAME=ora.DATA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.FRA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.LISTENER_SCAN1.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on db1
NAME=ora.ORC.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.REDO.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.asm
TYPE=ora.asm.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.cvu
TYPE=ora.cvu.type
TARGET=ONLINE
STATE=ONLINE on db2
NAME=ora.db1.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on db1
NAME=ora.db2.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on db2
NAME=ora.gsd
TYPE=ora.gsd.type
TARGET=ONLINE , ONLINE
STATE=OFFLINE, OFFLINE
NAME=ora.net1.network
TYPE=ora.network.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.oc4j
TYPE=ora.oc4j.type
TARGET=ONLINE
STATE=ONLINE on db2
NAME=ora.ons
TYPE=ora.ons.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.orcl.db
TYPE=ora.database.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.registry.acfs
TYPE=ora.registry.acfs.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on db1, ONLINE on db2
NAME=ora.scan1.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on db1
5、rac常用命令
5.1 常用srvctl命令
指定dbname上某個實例
srvctl start|stop|status instance -d
5.2 顯示RAC下所有實例配置與狀態
srvctl status|config database -d
5.3 顯示所有節點的應用服務(VIP,GSD,listener,ONS)
srvctl start|stop|status nodeapps -n<node_name>
5.4 ASM進程服務管理
srvctl start|stop|status|config asm -n
srvctl config asm -a
srvctl status asm -a
5.5 獲取所有的環境信息:
srvctl getenv database -d
5.6 設置全局環境和變量:
srvctl setenv database -d
5.7 在OCR中刪除已有的數據庫信息
srvctl remove database -d
5.8 向OCR中添加一個數據庫的實例:
srvctl add instance -d
srvctl add instance -d
5.9 檢查監聽的狀態
srvctl status listener -l +實例名
srvctl config listener -a
5.10 SCAN配置信息
srvctl config scan
5.11 SCAN listener狀態信息
srvctl status scan
小結:
crsctl命令是一個集群級別命令,可以對所有集群資源進行統一啟動、停止等管理操作
srvctl命令是一個服務級別命令,可以對單一服務資源進行統一啟動、停止等管理操作