RAC 資料庫的啟動與關閉

caixingyun發表於2016-11-10

來自:http://blog.csdn.net/leshami/article/details/8129506

  RAC資料庫與單例項的差異主要表現在多個例項通過叢集件來統一管理共享的資源。因此原有的單例項的管理方式,如資料庫、監聽器等的關閉啟動等可以使用原有的方式進行,也可以通過叢集管理工具,命令列來集中管理,這也是推薦的管理方式。由於叢集件crs位於資料庫之上,即RAC資料庫依賴於叢集件,因此資料庫的啟動與關閉應該結合叢集來考慮,下面以10g RAC來描述資料庫啟動與關閉過程,不涉及叢集層的啟動與關閉。

 

一、RAC 資料庫啟動與關閉順序
1、關閉順序
  關閉OEM,關閉監聽,關閉 Oracle 例項,關閉 ASM 例項,關閉節點應用程式
  
2、啟動順序
  啟動節點應用程式,啟動ASM例項,啟動oracle例項,啟動監聽,啟動OEM<可選>
  如果未使用ASM,則啟動與關閉過程的有關ASM的操作可忽略
  
3、主要工具
  srvctl,OEM,sqlplus。本文主要描述的是使用srvctl命令來完成

 

二、演示環境

[python] view plain copy
 print?
  1. 1、環境  
  2.     主機名      庫名      例項名     asm例項  
  3.     --------    ------    -------    --------  
  4.     bo2dbp      GOBO4     GOBO4A     +ASM1  
  5.     bo2dbs     GOBO4        GOBO4B     +ASM2  
  6.   
  7. 2、資料庫狀態  
  8.     oracle@bo2dbp:~> ./crs_stat.sh  
  9.      Resource name                                Target     State               
  10.     --------------                                ------     -----               
  11.     ora.GOBO4.GOBO4A.inst                         ONLINE     ONLINE on bo2dbp    
  12.     ora.GOBO4.GOBO4B.inst                         ONLINE     ONLINE on bo2dbs    
  13.     ora.GOBO4.db                                  ONLINE     ONLINE on bo2dbp    
  14.     ora.bo2dbp.ASM1.asm                           ONLINE     ONLINE on bo2dbp    
  15.     ora.bo2dbp.LISTENER_BO2DBP.lsnr               ONLINE     ONLINE on bo2dbp    
  16.     ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr        ONLINE     ONLINE on bo2dbp    
  17.     ora.bo2dbp.gsd                                ONLINE     ONLINE on bo2dbp    
  18.     ora.bo2dbp.ons                                ONLINE     ONLINE on bo2dbp    
  19.     ora.bo2dbp.vip                                ONLINE     ONLINE on bo2dbp    
  20.     ora.bo2dbs.ASM2.asm                           ONLINE     ONLINE on bo2dbs    
  21.     ora.bo2dbs.LISTENER_BO2DBS.lsnr               ONLINE     ONLINE on bo2dbs    
  22.     ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr        ONLINE     ONLINE on bo2dbs    
  23.     ora.bo2dbs.gsd                                ONLINE     ONLINE on bo2dbs    
  24.     ora.bo2dbs.ons                                ONLINE     ONLINE on bo2dbs    
  25.     ora.bo2dbs.vip                                ONLINE     ONLINE on bo2dbs    
  26.     ora.ora10g.db                                 ONLINE     ONLINE on bo2dbs    
  27.     ora.ora10g.hr_ora10g.cs                       ONLINE     ONLINE on bo2dbp    
  28.     ora.ora10g.hr_ora10g.ora10g1.srv              ONLINE     ONLINE on bo2dbp    
  29.     ora.ora10g.ora10g1.inst                       ONLINE     ONLINE on bo2dbp    
  30.     ora.ora10g.ora10g2.inst                       ONLINE     ONLINE on bo2dbs  
  31.       
  32.     上面的查詢結果表明,當前叢集中存在2個RAC資料庫,一個是GOBO4,一個是ora10g  
  33.     每個節點上配置了兩個監聽器,一個是預設的1521埠監聽器,一個是非預設的監聽器(LISTENER_ORA10G_BO2DBP)  
  34.     資料庫ora10g上建立了service為hr_ora10g  
  35.   
  36. 3、srvctl 命令  
  37.     srvctl是管理RAC資料庫使用最頻繁的命令,是service control的縮寫,基本的用法是srvctl <command> <object> [<options>]。  
  38.     直接在命令列下輸入srvctl 則出現該命令的用法說明  
  39.     該命令方式可以操作下列資源  
  40.     database,instance,asm,service,listener,node application(GSD,ONS,VIP)  

三、關閉資料庫

[python] view plain copy
 print?
  1. 1、關閉oem服務(如果啟動了oem,則應首先關閉oem服務,否則跳過)  
  2.     export ORACLE_SID=GOBO4A  
  3.     emctl stop dbconsole  
  4.       
  5. 2、關閉Oracle例項  
  6.     srvctl stop instance -d GOBO4 -i GOBO4A   
  7.   
  8. 3、關閉ASM例項  
  9.     srvctl stop asm -n bo2dbp  
  10.           
  11. 4、關閉節點服務(此操作將關閉指定節點的所有監聽以及GSD,ONS,VIP)  
  12.     srvctl stop nodeapps -n bo2dbp        
  13.           
  14.     節點bo2dbp關閉後的結果  
  15.     oracle@bo2dbp:~> ./crs_stat.sh   
  16.      Resource name                                Target     State               
  17.     --------------                                ------     -----               
  18.     ora.GOBO4.GOBO4A.inst                         OFFLINE    OFFLINE             
  19.     ora.GOBO4.GOBO4B.inst                         ONLINE     ONLINE on bo2dbs    
  20.     ora.GOBO4.db                                  ONLINE     ONLINE on bo2dbs    
  21.     ora.bo2dbp.ASM1.asm                           OFFLINE    OFFLINE             
  22.     ora.bo2dbp.LISTENER_BO2DBP.lsnr               OFFLINE    OFFLINE             
  23.     ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr        OFFLINE    OFFLINE             
  24.     ora.bo2dbp.gsd                                OFFLINE    OFFLINE             
  25.     ora.bo2dbp.ons                                OFFLINE    OFFLINE             
  26.     ora.bo2dbp.vip                                OFFLINE    OFFLINE             
  27.     ora.bo2dbs.ASM2.asm                           ONLINE     ONLINE on bo2dbs    
  28.     ora.bo2dbs.LISTENER_BO2DBS.lsnr               ONLINE     ONLINE on bo2dbs    
  29.     ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr        ONLINE     ONLINE on bo2dbs    
  30.     ora.bo2dbs.gsd                                ONLINE     ONLINE on bo2dbs    
  31.     ora.bo2dbs.ons                                ONLINE     ONLINE on bo2dbs    
  32.     ora.bo2dbs.vip                                ONLINE     ONLINE on bo2dbs    
  33.     ora.ora10g.db                                 ONLINE     ONLINE on bo2dbs    
  34.     ora.ora10g.hr_ora10g.cs                       ONLINE     ONLINE on bo2dbs    
  35.     ora.ora10g.hr_ora10g.ora10g1.srv              ONLINE     ONLINE on bo2dbs    
  36.     ora.ora10g.ora10g1.inst                       OFFLINE    OFFLINE    #注,由於bo2dbp上的ASM被關閉,所以例項ora10g1也被關閉        
  37.     ora.ora10g.ora10g2.inst                       ONLINE     ONLINE on bo2dbs    
  38.           
  39.     如果是關閉整個資料庫,則使用如下命令  
  40.     srvctl stop database -d <db_name>  
  41.     上述命令使用後則,所有該資料庫上的例項都將被關閉以及對應的.db的服務也會被關閉,如下  
  42.     oracle@bo2dbp:~> ./crs_stat.sh   
  43.      Resource name                                Target     State               
  44.     --------------                                ------     -----               
  45.     ora.GOBO4.GOBO4A.inst                         OFFLINE    OFFLINE             
  46.     ora.GOBO4.GOBO4B.inst                         OFFLINE    OFFLINE             
  47.     ora.GOBO4.db                                  OFFLINE    OFFLINE  
  48.           
  49.     對於監聽器也可以使用srvctl來完成  
  50.         srvctl stop listener -n bo2dbp #關閉節點上預設埠的監聽器  
  51.         srvctl stop listener -n bo2dbp -l LISTENER_ORA10G_BO2DBP #此監聽器為非預設的,因此指定-l 加監聽器的名字   

四、啟動資料庫
1、啟動節點服務
  srvctl start nodeapps -n bo2dbp
  
2、啟動ASM例項
  srvctl start asm -n bo2dbp
  
3、啟動Oracle例項
  srvctl start instance -d GOBO4 -i GOBO4A
  
4、啟動OEM
  export ORACLE_SID=GOBO4A
  emctl start dbconsole
    
  如果是啟動整個資料庫,則使用如下命令
  srvctl start database -d <db_name>

 

五、小結
1、RAC資料庫的啟動需要考慮各個層次之間的依賴關係。叢集資料庫依賴於叢集件上的服務,因此必須先啟動叢集上的相關服務(ONS,GSD,VIP)
2、接下來在叢集件服務之下的為ASM,ASM為共享儲存提供統一管理,因此需要於例項先啟動
3、啟動例項,將資料庫切換到open 模式
4、RAC資料庫的關閉則正好與之相反,同樣是按逐層遞進的關係來進行

 

六、RAC資料庫啟動關閉參考圖 

 

七、更多參考

有關Oracle RAC請參考
     使用crs_setperm修改RAC資源的所有者及許可權
     使用crs_profile管理RAC資源配置檔案
     RAC 資料庫的啟動與關閉
     再說 Oracle RAC services
     Services in Oracle Database 10g
     Migrate datbase from single instance to Oracle RAC
     Oracle RAC 連線到指定例項
     Oracle RAC 負載均衡測試(結合伺服器端與客戶端)
     Oracle RAC 伺服器端連線負載均衡(Load Balance)
     Oracle RAC 客戶端連線負載均衡(Load Balance)
     ORACLE RAC 下非預設埠監聽配置(listener.ora tnsnames.ora) 
     ORACLE RAC 監聽配置 (listener.ora tnsnames.ora) 
     配置 RAC 負載均衡與故障轉移
     CRS-1006 , CRS-0215 故障一例 
     基於Linux (RHEL 5.5) 安裝Oracle 10g RAC 
     使用 runcluvfy 校驗Oracle RAC安裝環境

有關Oracle 網路配置相關基礎以及概念性的問題請參考:
     配置非預設埠的動態服務註冊 
     配置sqlnet.ora限制IP訪問Oracle 
     Oracle 監聽器日誌配置與管理 
     設定 Oracle 監聽器密碼(LISTENER)
     配置ORACLE 客戶端連線到資料庫

有關基於使用者管理的備份和備份恢復的概念請參考
     Oracle 冷備份
     Oracle 熱備份
     Oracle 備份恢復概念
     Oracle 例項恢復
     Oracle 基於使用者管理恢復的處理
     SYSTEM 表空間管理及備份恢復
     SYSAUX表空間管理及恢復
     Oracle 基於備份控制檔案的恢復(unsing backup controlfile)

有關RMAN的備份恢復與管理請參考
     RMAN 概述及其體系結構
     RMAN 配置、監控與管理
     RMAN 備份詳解
     RMAN 還原與恢復
     RMAN catalog 的建立和使用
     基於catalog 建立RMAN儲存指令碼
     基於catalog 的RMAN 備份與恢復
     RMAN 備份路徑困惑
     使用RMAN實現異機備份恢復(WIN平臺)
     使用RMAN遷移檔案系統資料庫到ASM
     linux 下RMAN備份shell指令碼
     使用RMAN遷移資料庫到異機

有關ORACLE體系結構請參考
     Oracle 表空間與資料檔案
     Oracle 密碼檔案
     Oracle 引數檔案
     Oracle 聯機重做日誌檔案(ONLINE LOG FILE)
     Oracle 控制檔案(CONTROLFILE)
     Oracle 歸檔日誌
     Oracle 回滾(ROLLBACK)和撤銷(UNDO)
     Oracle 資料庫例項啟動關閉過程
     Oracle 10g SGA 的自動化管理
     Oracle 例項和Oracle資料庫(Oracle體系結構) 


相關文章