【原創】Oracle RAC 日常管理

leonarding發表於2013-07-08

更多精彩內容盡在 


RAC環境

RAC架構,2節點資訊

節點1

SQL> show parameter instance

NAME                                 TYPE        VALUE

------------------------------------ ----------- -----------------------------------------------

active_instance_count                    integer

cluster_database_instances                integer     2

instance_groups                         string

instance_name                          string      RACDB1

instance_number                        Integer     1

instance_type                           string      RDBMS

open_links_per_instance                  integer     4

parallel_instance_group                   string

parallel_server_instances                  integer     2

節點2

SQL> show parameter instance

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

active_instance_count                    integer

cluster_database_instances                integer     2

instance_groups                         string

instance_name                          string      RACDB2

instance_number                        integer     2

instance_type                           string      RDBMS

open_links_per_instance                  integer     4

parallel_instance_group                   string

parallel_server_instances                  integer     2

資料庫版本

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

作業系統資訊

節點1

[oracle@rac1 ~]$ uname -a

Linux rac1 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

節點2

[oracle@rac2 ~]$ uname -a

Linux rac2 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:02 EDT 2007 i686 i686 i386 GNU/Linux

[oracle@leonarding1 admin]$ uname -a

Linux leonarding1.oracle.com 2.6.32-200.13.1.el5uek #1 SMP Wed Jul 27 21:02:33 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

RAC所有資源資訊

[oracle@rac2 ~]$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    ONLINE    ONLINE    rac1        

ora....B2.inst application    ONLINE    ONLINE    rac2        

ora....DB1.srv application    ONLINE    ONLINE    rac2        

ora.....TAF.cs application    ONLINE    ONLINE    rac2        

ora.RACDB.db   application    ONLINE    ONLINE    rac2        

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2


 演示啟動和關閉crs主程式

1)簡單說說RAC日常管理都有哪些內容

1.節點管理:node日常管理

2.網路管理:例如 網路卡配置   VIP虛擬ip   外部網路   內部網路

3.叢集管理:CRS 叢集資源管理   OCR oracle叢集登錄檔   srv 服務管理   votedisk表決磁碟

4.應用管理:資料庫、例項、監聽器、虛擬ip、註冊到RAC中的各種資源

2RAC叢集守護程式

[oracle@rac1 init.d]$ pwd

/etc/init.d

[oracle@rac1 init.d]$ ll | grep init*

init.crsd:# init.crsd - Control script. for the CRS daemon.

init.crsd:#   only be invoked from init.crs or from inittab.

init.crsd:#     No manual invocation of init.crsd is supported.

init.crsd:# or on an automatic startup, this file will exist. init.crsd run will

init.cssd:#   directory. It should only be invoked from init.crs.

init.evmd:#   be invoked from init.crs.

[oracle@rac1 init.d]$ ls init*

init.crs  init.crsd  init.cssd  init.evmd

這些就是RAC叢集守護程式,存放在Linux開機啟動的指令碼目錄下,可以隨作業系統的啟動而啟動。

./init.crs  start              啟動叢集程式

./init.crs  stop              停止叢集程式

./init.crs  enable            隨作業系統的啟動而啟動

./init.crs  disable            不隨作業系統的啟動而啟動

注:init.crs 指令碼是init.crsd  init.cssd  init.evmd指令碼的引導指令碼

crs主要程式

(1)crsd
負責管理HA 高可靠性操作
  
管理crs資源,如linstenerviponsgsn

root使用者管理、啟動
(2)ocssd
管理各節點的關係,用於節點間通訊
oracle使用者執行管理
(3)oprocd
叢集程式管理 —Process monitor for the cluster.  叢集監控程式
僅在沒有使用vendor的叢集軟體狀態下執行
(4)evmd
事件檢測程式,由oracle使用者執行管理
(5)主要log位置 
$ORA_CRS_HOME/log/
節點主機名(rac1  rac2)/racg    節點日誌

$ORA_CRS_HOME/log/節點主機名(rac1  rac2)/crsd    叢集軟體日誌
$ORA_CRS_HOME/crs/init
$ORA_CRS_HOME/css/log                            
節點間通訊的日誌
$ORA_CRS_HOME/css/init
$ORA_CRS_HOME/evm/log                            
事件監控日誌
$ORA_CRS_HOME/evm/init
$ORA_CRS_HOME/srvm/log

演示

[oracle@rac1 init.d]$ su – root           必須使用root使用者執行RAC叢集指令碼

Password:

[root@rac1 ~]# cd /etc/init.d

[root@rac1 init.d]# ./init.crs  disable

Automatic startup disabled for system boot.

[root@rac1 init.d]# ./init.crs  enable

Automatic startup enabled for system boot.

[root@rac1 init.d]# ./init.crs  stop                             停止CRS主程式

Shutting down Oracle Cluster Ready Services (CRS):

Stopping resources.

Successfully stopped CRS resources                             包含crsd

Stopping CSSD.

Shutting down CSS daemon.                                   包含cssd

Shutdown request successfully issued.

Shutdown has begun. The daemons should exit soon.

[root@rac1 init.d]# ./init.crs start                              啟動CRS主程式

Startup will be queued to init within 90 seconds.                  啟動將會在90秒內完成

[root@rac1 init.d]# crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    ONLINE    ONLINE    rac1        

ora....B2.inst application    ONLINE    ONLINE    rac2        

ora....DB1.srv application    ONLINE    ONLINE    rac2        

ora.....TAF.cs application    ONLINE    ONLINE    rac2        

ora.RACDB.db   application    ONLINE    ONLINE    rac2        

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2      

等待一會並不一定是90秒,CRS叢集資源全部啟動了

3RAC叢集命令集目錄

$ORACLE_HOME/crs_1/bin

所有叢集命令都放在這個目錄下

4)節點層命令

[oracle@rac1 init.d]$ olsnodes -n

rac1    1

rac2    2

[oracle@rac1 init.d]$ olsnodes -n -p

rac1    1       rac1-priv

rac2    2       rac2-priv

[oracle@rac1 init.d]$ olsnodes -n -p -i

rac1    1       rac1-priv       rac1-vip

rac2    2       rac2-priv       rac2-vip

這個命令用來顯示叢集節點的資訊

引數解釋:n                    列印節點號

          P                    列印私有網路名

          i                     列印虛擬ip

2)網路層命令

[oracle@rac1 init.d]$ oifcfg                               Oracle網路卡配置工具

Name:

        oifcfg - Oracle Interface Configuration Tool.

Usage:  oifcfg iflist [-p [-n]]

        oifcfg setif {-node | -global} {/:}...

        oifcfg getif [-node | -global] [ -if [/] [-type ] ]

        oifcfg delif [-node | -global] [[/]]

        oifcfg [-help]

         - name of the host, as known to a communications network

          - name by which the interface is configured in the system

           - subnet address of the interface

          - type of the interface { cluster_interconnect | public | storage }

[oracle@rac1 init.d]$ oifcfg iflist                          檢視網路卡對應的網段,oracle網路卡配置工具

eth0  192.168.1.0

eth1  192.168.2.0

eth2  192.168.61.0

$ oifcfg getif                                                                                               沒有配置之前是什麼內容也沒有

oifcfg setif -global eth0/192.168.1.0:public                                   oracle網路卡配置工具指定公有網路卡

oifcfg setif -global eth1/192.168.2.0:cluster_interconnect       oracle網路卡配置工具指定私有網

[oracle@rac1 init.d]$ oifcfg getif                                                       獲取配置結果

eth0  192.168.1.0  global  public                                                         eth0是全域性公共網路卡

eth1  192.168.2.0  global  cluster_interconnect                            eth1是全域性私有網路卡


 檢視OCR磁碟的資訊,並列印出OCR磁碟的內容

OCR:稱為Oracle 叢集登錄檔,一般RAC叢集中至少有2OCR磁碟互為映象,OCR裡面註冊了叢集中的所有資源資訊(資料庫 例項 監聽器VIP OCR磁碟 表決磁碟 服務 節點應用 網路卡等)

我們可以使用ocrcheck命令檢查OCR磁碟狀態

節點1

RACDB1@rac1 /home/oracle$ ocrcheck

Status of Oracle Cluster Registry is as follows :

         Version                  :          2

         Total space (kbytes)     :     104344                總空間

         Used space (kbytes)      :       4324               使用空間

         Available space (kbytes) :     100020                 剩餘空間

         ID                       : 1752469369

         Device/File Name         : /dev/raw/raw1            磁碟路徑

                                    Device/File integrity check succeeded

                                    Device/File not configured

         Cluster registry integrity check succeeded

節點2

RACDB2@rac2 /home/oracle$ ocrcheck

Status of Oracle Cluster Registry is as follows :

         Version                  :          2

         Total space (kbytes)     :     104344

         Used space (kbytes)      :       4324

         Available space (kbytes) :     100020

         ID                       : 1752469369

         Device/File Name         : /dev/raw/raw1

                                    Device/File integrity check succeeded

                                    Device/File not configured

         Cluster registry integrity check succeeded

使用ocrdump命令檢視OCR內容,但這個命令不能用於OCR的備份恢復只可以用於閱讀

RACDB1@rac1 /home/oracle$ ocrdump -stdout | more

[SYSTEM.evm.acceptor]

UNDEF :

SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}

[SYSTEM.evm.acceptor.rac1]

ORATEXT : (ADDRESS=(PROTOCOL=ipc)(KEY=Arac1_crs_evm))

SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}

[SYSTEM.evm.acceptor.rac2]

ORATEXT : (ADDRESS=(PROTOCOL=ipc)(KEY=Arac2_crs_evm))

SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}

使用ocrconfig命令配置維護OCR磁碟,例如 匯出備份OCRDUMP檔案再匯入來恢復OCR

[oracle@rac1 init.d]$ su - root

Password:

[root@rac1 ~]# cd /home/oracle

[root@rac1 oracle]# ll

total 4

drwxr-xr-x 3 oracle oinstall 4096 Jul  5  2013 Desktop

[root@rac1 oracle]# ocrconfig -export ocr_bk.dmp             匯出OCR磁碟內容,一旦有問題可以匯入恢復

[root@rac1 oracle]# ll

total 104

drwxr-xr-x 3 oracle oinstall  4096 Jul  5  2013 Desktop

-rw-r--r-- 1 root   root     97517 Jul  4 17:57 ocr_bk.dmp

[root@rac1 oracle]# strings ocr_bk.dmp                     可以使用這個命令來檢視dump檔案內容

[root@rac1 oracle]# ocrconfig -import ocr_bk.dmp             匯入dump檔案恢復OCR

[root@rac1 oracle]# ocrconfig –replace ocrmirror /dev/raw/raw2  建立新的OCR磁碟映象


 檢視voting disk磁碟資訊

Voting Disk 這個檔案主要用於記錄節點成員狀態,在出現腦裂時,決定那個Partion獲得控制權,其他的Partion必須從叢集中剔除。Voting disk使用的是一種“多數可用演算法”,如果有多個Voting disk,,則必須一半以上的Votedisk同時存活,Clusterware才能正常使用。 比如配置了4Votedisk,壞一個Votedisk,叢集可以正常工作,如果壞了2個,則不能滿足半數以上,叢集會立即宕掉,所有節點立即重啟,所以如果新增Votedisk,儘量不要只新增一個,而應該新增2,總共的數量保證為奇數。

1)表決磁碟檢查,必須為單數

RACDB2@rac2 /home/oracle$ crsctl query css votedisk

0.     0    /dev/raw/raw2

located 1 votedisk(s).       定位1個表決磁碟

2)備份votedisk

因為我們的表決磁碟使用的是裸裝置,因此使用裸裝置的dd命令來備份表決磁碟,使用root使用者

[root@rac1 oracle]# dd if=/dev/raw/raw2 f=/home/oracle/voting_disk.bak

208864+0 records in                                        表決磁碟中的記錄數

208864+0 records out

106938368 bytes (107 MB) copied, 104.614 seconds, 1.0 MB/s

[root@rac1 oracle]# ll

total 104644

drwxr-xr-x 3 oracle oinstall      4096 Jul  5  2013 Desktop

-rw-r--r-- 1 root   root         97517 Jul  4 17:57 ocr_bk.dmp

-rw-r--r-- 1 root   root     106938368 Jul  4 18:37 voting_disk.bak

[root@rac1 oracle]# du -sm voting_disk.bak                     備份檔案103MB

103     voting_disk.bak

3)恢復votedisk

[root@rac1 oracle]# dd if=/home/oracle/voting_disk.bak f=/dev/raw/raw2

使用上述命令即可恢復表決磁碟,由於我們的表決磁碟是正常狀態,因此不做恢復演示

4)透過strings命令檢視votedisk內容

[root@rac1 oracle]# strings voting_disk.bak |sort -u

fSLC

ssLckcoT

SslcLlik

sSlcrEp0

}|{z


 srvctl分別啟動ASM,資料庫例項和資料庫

srvctl是應用層命令,稱作“服務管理工具”可以操作databaseinstancelistenernodesASMserviceapplication

,其中application又包括“GSD  ONS  VIP”,這些資源都可以透過srvctl工具統一管理。

演示

1)關閉節點1RAC例項

RACDB1@rac1 /home/oracle$ srvctl stop instance -d racdb -i racdb1 -o immediate

RACDB1@rac1 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    OFFLINE   OFFLINE               

ora....B2.inst application    ONLINE    ONLINE    rac2        

ora....DB1.srv application    ONLINE    ONLINE    rac2        

ora.....TAF.cs application    ONLINE    ONLINE    rac2        

ora.RACDB.db   application    ONLINE    ONLINE    rac2        

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2  

節點2還是可以正常登陸資料庫

RACDB2@rac2 /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 4 19:39:02 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL>

2)關閉節點2RAC例項,當srvctl監測到RAC叢集的所有例項都關閉後會自動關閉資料庫

RACDB2@rac2 /home/oracle$ srvctl stop instance -d racdb -i racdb2 -o immediate

RACDB2@rac2 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    OFFLINE   OFFLINE               

ora....B2.inst application    OFFLINE   OFFLINE               

ora....DB1.srv application    OFFLINE   OFFLINE               

ora.....TAF.cs application    OFFLINE   OFFLINE               

ora.RACDB.db   application    OFFLINE   OFFLINE               

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2  

ASM例項還在啟動狀態,監聽lsnr也在啟動狀態,application程式也在啟動狀態

RACDB2@rac2 /home/oracle$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 4 19:45:15 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

此時已經不能連線到資料庫了

3)當我們忘了命令語法的時候,直接srvctl就可以檢視幫助資訊了

RACDB1@rac1 /home/oracle$ srvctl stop asm

PRKO-2001 : Invalid command line syntax

RACDB1@rac1 /home/oracle$ srvctl

Usage: srvctl []

    command: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config

    objects: database|instance|service|nodeapps|asm|listener

For detailed help on each command and object and its options use:

    srvctl -h         

可以使用-h選項開啟幫助資訊

RACDB1@rac1 /home/oracle$ srvctl start asm -h

Usage: srvctl start asm -n [-i ] [-o ] [-c | -q]

    -n            Node name

    -i   ASM instance name

    -o   Options to startup command (e.g. open, mount, or nomount)

    -c         Connect string (default: / as sysdba)

    -q                  Query connect string from standard input

    -h                  Print usage

先關閉節點2ASM例項

RACDB2@rac2 /home/oracle$ srvctl stop asm -n rac2

RACDB2@rac2 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    OFFLINE   OFFLINE               

ora....B2.inst application    OFFLINE   OFFLINE               

ora....DB1.srv application    OFFLINE   OFFLINE               

ora.....TAF.cs application    OFFLINE   OFFLINE               

ora.RACDB.db   application    OFFLINE   OFFLINE               

ora....SM1.asm application    ONLINE    ONLINE    rac1          節點1ASM例項還在啟動

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    OFFLINE   OFFLINE                  節點2ASM例項已經關閉

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2     

再關閉節點1ASM例項

RACDB1@rac1 /home/oracle$ srvctl stop asm -n rac1

RACDB1@rac1 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    OFFLINE   OFFLINE               

ora....B2.inst application    OFFLINE   OFFLINE               

ora....DB1.srv application    OFFLINE   OFFLINE               

ora.....TAF.cs application    OFFLINE   OFFLINE               

ora.RACDB.db   application    OFFLINE   OFFLINE               

ora....SM1.asm application    OFFLINE   OFFLINE               

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    OFFLINE   OFFLINE               

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2     

我們在把ASM  資料庫  例項啟動起來,操作的順序是相反的

4)先啟動ASM

在節點1和節點2分別啟動ASM

RACDB1@rac1 /home/oracle$ srvctl start asm -n rac1

RACDB2@rac2 /home/oracle$ srvctl start asm -n rac2

RACDB2@rac2 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    OFFLINE   OFFLINE               

ora....B2.inst application    OFFLINE   OFFLINE               

ora....DB1.srv application    OFFLINE   OFFLINE               

ora.....TAF.cs application    OFFLINE   OFFLINE               

ora.RACDB.db   application    OFFLINE   OFFLINE               

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2        

5)再啟動資料庫和例項

RACDB1@rac1 /home/oracle$ srvctl start database -d racdb

RACDB1@rac1 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    ONLINE    ONLINE    rac1        

ora....B2.inst application    ONLINE    ONLINE    rac2        

ora....DB1.srv application    OFFLINE   OFFLINE                 注意這裡service沒有啟動

ora.....TAF.cs application    OFFLINE   OFFLINE               

ora.RACDB.db   application    ONLINE    ONLINE    rac2        

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2   

6)再啟動服務service

RACDB1@rac1 /home/oracle$ srvctl start service -d racdb

RACDB1@rac1 /home/oracle$ crs_stat -t

Name           Type           Target    State     Host        

------------------------------------------------------------

ora....B1.inst application    ONLINE    ONLINE    rac1        

ora....B2.inst application    ONLINE    ONLINE    rac2        

ora....DB1.srv application    ONLINE    ONLINE    rac1        

ora.....TAF.cs application    ONLINE    ONLINE    rac1        

ora.RACDB.db   application    ONLINE    ONLINE    rac2        

ora....SM1.asm application    ONLINE    ONLINE    rac1        

ora....C1.lsnr application    ONLINE    ONLINE    rac1        

ora.rac1.gsd   application    ONLINE    ONLINE    rac1        

ora.rac1.ons   application    ONLINE    ONLINE    rac1        

ora.rac1.vip   application    ONLINE    ONLINE    rac1        

ora....SM2.asm application    ONLINE    ONLINE    rac2        

ora....C2.lsnr application    ONLINE    ONLINE    rac2        

ora.rac2.gsd   application    ONLINE    ONLINE    rac2        

ora.rac2.ons   application    ONLINE    ONLINE    rac2        

ora.rac2.vip   application    ONLINE    ONLINE    rac2    

 分別檢視RAC的引數檔案,REDO日誌,UNDO表空間,TEMP表空間的資訊,說明一下在RAC環境下每個例項是否擁有專屬自己的上述物件

RAC環境下資料庫引數檔案的位置

1)放在各自例項的本地

2)放在共享儲存上,建議使用這種

我們既可以讓兩個例項使用共享儲存上的引數檔案

SQL> show parameter spfile;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ---------------------------------------------

spfile                                  string      +DATA/racdb/spfileracdb.ora  共享ASM磁碟上的引數檔案

也可以讓兩個例項使用各自本地的引數檔案

[oracle@rac1 dbs]$ ll

total 52

-rw-rw---- 1 oracle oinstall  1506 Jul  8 12:37 ab_+ASM1.dat

-rw-rw---- 1 oracle oinstall  1544 Jan  1  2012 hc_+ASM1.dat

-rw-rw---- 1 oracle oinstall  1544 Jan  1  2012 hc_RACDB1.dat

lrwxrwxrwx 1 oracle oinstall    41 Jan  1  2012 init+ASM1.ora -> /u01/app/oracle/admin/+ASM/pfile/init.ora

-rw-r----- 1 oracle oinstall 12920 May  3  2001 initdw.ora

-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora

-rw-r----- 1 oracle oinstall    37 Jan  1  2012 initRACDB1.ora      各自本地的引數檔案

如果想使用共享儲存上的引數檔案,需要在本地引數檔案中指定其路徑(新增一條spfile重定向),如果不想使用,則無需新增,只在本地引數檔案中定義各自例項引數即可。

[oracle@rac1 dbs]$ cat initRACDB1.ora

SPFILE='+DATA/RACDB/spfileRACDB.ora'

SQL> select instance_name,host_name,status from gv$instance order by 1;

INSTANCE_NAME    HOST_N   STATUS

---------------- ------ ----------------------------------

RACDB1            rac1      OPEN

RACDB2            rac2      OPEN

gv$instanceglobal 動態效能檢視,這是在RAC模式下特有的動態效能檢視,可以顯示所有例項的屬性資訊。

每個例項都有各自的undo表空間

RAC模式下防止2個例項爭用undo回滾段的考慮,每個例項的事務都放在各自的undo表空間上。如果一個例項shutdown,另外的例項可以訪問這個例項的undo回滾段。

SQL> select inst_id,name,value from gv$parameter where name='undo_tablespace' order by 1;

   INST_ID NAME                 VALUE

---------- -------------------- ----------------------------------

         1 undo_tablespace      UNDOTBS1

         2 undo_tablespace      UNDOTBS2

兩個節點的RAC每個節點都有自己的undo表空間

每個例項都有各自的redo日誌

RAC模式下每個例項自己管理自己的redo日誌,防止爭用。如果有一個例項shutdown,另外的例項可以訪問這個例項的redo日誌用來例項恢復。

SQL> select thread#,group#,sequence#,members,status from v$log;

   THREAD#     GROUP#  SEQUENCE#    MEMBERS STATUS

---------- ---------- ---------- ---------- ---------------------------------------------

         1          1          8          2 INACTIVE

         1          2          9          2 CURRENT

         2          3          5          2 INACTIVE

         2          4          6          2 CURRENT

Thread#=1 是一個節點的redo日誌

Thread#=2 是另一個節點的redo日誌

因此每個節點有自己的redo日誌

所有例項可以共享TEMP臨時表空間

因為temp表空間只是負責排序和hash操作的,不存在空間爭用的問題,並且只儲存資料中間狀態,一旦完成操作可以立即釋放資源,因此可以是共享狀態。

SQL> select tablespace_name from dba_temp_files;

TABLESPACE_NAME

------------------------------

TEMP

RAC模式下只有一個TEMP表空間

RAC   CRS   OCR磁碟  表決磁碟  ASM

Leonarding

2013.07.04

北京&summer

分享技術~成就夢想

Blog


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

相關文章