Oracle 10G R2 RAC日常管理

wangbinneuq發表於2017-06-16

一、使用srvctl管理RAC資料庫

[root@NODE01 bin]# pwd

/orac/crs/bin   # srvctl$CRS_HOME/bin目錄下,它可以在任何節點上維護。

[root@NODE01 bin]# ./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


常用的命令主要如下:



1、使用srvctl status命令

檢視資料庫的狀態:

[root@NODE01 bin]# ./srvctl status database -d racdb

Instance RACDB1 is running on node node01

Instance RACDB2 is running on node node02

檢視資料庫例項的狀態:

[root@NODE01 bin]# ./srvctl status instance -d racdb -i racdb1,racdb2

Instance racdb1 is running on node node01

Instance racdb2 is running on node node02

檢視ASM例項的狀態:

[root@NODE01 bin]# ./srvctl status asm -n node01

ASM instance +ASM1 is running on node node01.

[root@NODE01 bin]# ./srvctl status asm -n node02

ASM instance +ASM2 is running on node node02.

檢視節點應用程式(VIPGSDListenerONS)的狀態:

[root@NODE01 bin]# ./srvctl status nodeapps -n node01

VIP is running on node: node01

GSD is running on node: node01

Listener is running on node: node01

ONS daemon is running on node: node01

[root@NODE01 bin]#

[root@NODE01 bin]# ./srvctl status nodeapps -n node02

VIP is running on node: node02

GSD is running on node: node02

Listener is running on node: node02

ONS daemon is running on node: node02

以上的命令在任何節點上都可以執行。其中-d表示資料庫的名字,-i表示instance名稱,-n表示節點的主機名。


2、使用srvctl start/stop命令

srvctl start asm –n node01               # to start the ASM instance

srvctl stop asm –n node01               # to stop the ASM instance

srvctl start asm –n node02               # to start the ASM instance

srvctl stop asm –n node02               # to stop the ASM instance

# 這裡的node01node02是這個節點的機器名稱,透過以上命令,可以在任何節點上執行,用來關閉與啟動任何節點上的ASM


srvctl start database –d racdb     # to start the database instance

srvctl stop database –d racdb     # to stop the database instance

# for instance 1

srvctl start instance –d racdb –i racdb1

srvctl stop instance –d racdb –i racdb1

# for instance 2

srvctl start instance –d racdb –i racdb2

srvctl stop instance –d racdb –i racdb2


3、使用srvctl config命令

檢視資料庫的配置:

[root@NODE01 bin]# ./srvctl config database

RACDB

[root@NODE01 bin]# ./srvctl config database -d racdb

node01 RACDB1 /orac/orahome/oracle/product/10.2.0/db_1

node02 RACDB2 /orac/orahome/oracle/product/10.2.0/db_1

檢視ASM例項的配置:

[root@NODE01 bin]# ./srvctl config asm -n node01

+ASM1 /orac/orahome/oracle/product/10.2.0/db_1

[root@NODE01 bin]# ./srvctl config asm -n node02

+ASM2 /orac/orahome/oracle/product/10.2.0/db_1

檢視節點應用程式VIPGSDListenerONS的配置:

[root@NODE01 bin]# ./srvctl config nodeapps -h

Usage: srvctl config nodeapps -n [-a] [-g] [-o] [-s] [-l]

    -n            Node name

    -a                  Display VIP configuration

    -g                  Display GSD configuration

    -s                  Display ONS daemon configuration

    -l                  Display listener configuration

    -h                  Print usage

[root@NODE01 bin]#

[root@NODE01 bin]# ./srvctl config nodeapps -n node01

node01 RACDB1 /orac/orahome/oracle/product/10.2.0/db_1

[root@NODE01 bin]#

[root@NODE01 bin]# ./srvctl config nodeapps -n node01 -a -g -s -l

VIP exists.: /vip01/192.168.1.170/255.255.255.0/eth0

GSD exists.

ONS daemon exists.

Listener exists.

[root@NODE01 bin]# ./srvctl config nodeapps -n node02 -a -g -s -l

VIP exists.: /vip02/192.168.1.171/255.255.255.0/eth0

GSD exists.

ONS daemon exists.

Listener exists.



二、管理OCRVoting Disk

       Clusterware2個部分組成,分別是Voting DiskOCR。一旦它們丟失或者損壞的話,Clusterware將無法啟動,這樣整個RAC都將無法啟動。


1Voting Disk(表決磁碟方面)

Voting Disk裡面記錄著節點成員資訊,比如說RAC資料庫中有哪些節點成員,節點增加或者刪除時也同樣會將資訊記錄進來。Voting Disk必須存放在共享儲存上,通常來說是存放在裸裝置上。為保證Voting Disk的安全,需要配置多個Voting DiskOracle建議Voting Disk的個數應該配置為奇數個,每個Voting Disk的大小約為20MB


檢視Voting Disk位置:

 [root@NODE01 bin]# crsctl query css votedisk

 0.     0    /orac/orahome/clusterdata/votedisk


located 1 votedisk(s).

[root@NODE01 bin]# ll /orac/orahome/clusterdata/votedisk

-rw-rw---- 1 oracle oinstall 10240000 Dec 25 02:13 /orac/orahome/clusterdata/votedisk

如果需要更改Voting Disk的配置,對Voting Disk的更改必須以root使用者進行修改。如:

新增一個Voting Disk成員:crsctl add css votedisk ‘/dev/raw/raw3’ 

刪除一個Voting Disk成員:crsctl delete css votedisk ‘/dev/raw/raw3’ 

Voting Disk的備份與恢復可以透過dd命令來操作。

備份Voting Diskdd if=/dev/rhdisk3 of=/tmp/votedisk.bak
恢復Voting Diskdd if=/tmp/votedisk.bak of=/dev/rhdisk3


2OCR方面

       OCR記錄的是節點成員的配置資訊,比如資料庫、ASM、例項、監聽、VIPCRS資源的配置資訊,CRS程式管理的資訊來自於OCR的內容。OCR記錄這CRS程式管理資源的所有配置資訊,大小約為100MB

       預設情況下RAC會在其中一個節點每4個小時都自動進行一次OCR的備份,並且保留最近的3次備份。可以透過命令ocrconfig –showbackup來檢視。

[root@NODE01 bin]# ocrconfig -showbackup

node02     2008/12/19 03:38:17     /orac/crs/cdata/crs

node02     2008/12/18 20:23:45     /orac/crs/cdata/crs

node01     2008/12/18 04:15:47     /orac/crs/cdata/crs

node01     2008/12/18 04:15:47     /orac/crs/cdata/crs

node01     2008/12/14 04:21:00     /orac/crs/cdata/crs

[root@NODE01 bin]#

[root@NODE01 bin]# ll /orac/crs/cdata/crs/

total 15696

-rw-r--r-- 1 root root 4014080 Dec 18 04:15 backup00.ocr

-rw-r--r-- 1 root root 4014080 Dec 14 04:21 backup01.ocr

-rw-r--r-- 1 root root 4014080 Dec 18 04:15 day.ocr

-rw-r--r-- 1 root root 4014080 Dec 14 04:21 week.ocr

       OCR預設的備份路徑為$CRS_HOME/cdata/crs,可以透過ocrconfig –backuploc來更改OCR的備份路徑;

可以透過ocrconfig –export來匯出OCR的內容;

可以透過ocrconfig –import匯入OCR的內容;

可以透過ocrconfig –restore命令對OCR進行恢復。


3、其它一些常用命令:

$ORA_CRS_HOME/bin/crsctl check crs          # 用於檢查後臺程式狀態

$ORA_CRS_HOME/bin/crsctl start resources     # 啟動crs資源

$ORA_CRS_HOME/bin/crsctl start crs           # 啟動crs,需要超級使用者操作

$ORA_CRS_HOME/bin/crsctl stop crs           # 關閉crs,需要超級使用者操作

$ORA_CRS_HOME/bin/crs_unregister           # 取消註冊crs

$ORA_CRS_HOME/bin/ocrcheck                # 檢查ocr設定資訊用ocrcheck

$ORA_CRS_HOME/bin/crsctl query css votedisk  # 檢查表決磁碟資訊

注意:

執行crsctl命令的可以是root使用者,也可以是oracle使用者,如果是root使用者要指定絕對路徑,但是對於crsctl start crscrsctl stop crs必須是root使用者來執行。

crs主要程式:

(1)crsd

負責管理ha操作

管理crs資源,如listenerviponsgsn

root使用者管理、啟動

(2)ocssd

管理各節點的關係,用於節點間通訊

oracle使用者執行管理

(3)oprocd

叢集程式管理 Process monitor for the cluster.

僅在沒有使用vendor的叢集軟體狀態下執行

(4)evmd

事件檢測程式,由oracle使用者執行管理

(5)主要log位置

$ORA_CRS_HOME/log/節點主機名/racg

$ORA_CRS_HOME/log/節點主機名/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

 
 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CRS的管理
CRSCTL命令控制著本地節點的CRS服務(Oracle clusterware processes)
停止CRS:
$ crsctl stop crs或者
$ /etc/init.crs stop或者
$ crs_stop –all
啟動CRS:
$ crsctl start crs或者
$ /etc/init.crs start
禁止Clusterware在系統重啟後自動啟動的方法:
$ /etc/init.crs disable
啟動Clusterware在系統重啟後自動啟動的方法:
$ /etc/init.crs enable
檢視CRS服務狀態
$ crsctl check crs
OCR的資源管理
OCR的資源,當RAC cluster啟動併成功執行以後,你可以使用crs_stat工具看到如下內容:
$ORA_CRS_HOME/bin/crs_stat
通常情況下,所有的資源的狀態都應該是online。另外,OCR每4個小時會備份一次。有一些情況你可以透過恢復的OCR的配置檔案來恢復出現問題的OCR。
比如使用出現如下情況:
$ crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
$ crsctl check boot
Failure 4 at procr_open_key with status 4.
PROC-4: The cluster registry key to be operated on does not exist.
$ crsctl check crs
Failure 1 contacting CSS daemon
Cannot communicate with CRS
Cannot communicate with EVM
引起這個錯誤的一種可能原因是OCR配置丟了。這個我們可以利用這些備份來還原以前的配置。
# /etc/init.crs disable
# /etc/init.crs stop
先保證所有的crs程式全部停止。
# su – oracle
$ cd $ORA_CRS_HOME/bin
$./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr
然後切換到root使用者下,重新enable CRS
# /etc/init.crs enable
最後reboot兩個節點
SRVCTL命令介紹
SRVCTL命令可以控制RAC資料庫中的instance,listener以及services。
通常SRVCTL在ORACLE使用者下執行。下面我們來介紹srvctl命令。
1、透過SRVCTL命令來start/stop/check所有的例項:
$ srvctl start|stop|status database -d 
2、start/stop指定的例項:
$ srvctl start|stop|status instance -d -i 
3、列出當前RAC下所有的
$ srvctl config database -d 
4、start/stop/check所有的nodeapps,比如:VIP, GSD, listener, ONS:
$ srvctl start|stop|status nodeapps -n 
5、如果你使用ASM,srvctl也可以start/stop ASM例項:
$ srvctl start|stop asm -n [-i ] [-o]
6、可以獲取所有的環境資訊:
$ srvctl getenv database -d [-i ]
7、設定全域性環境和變數:
$ srvctl setenv database -d -t LANG=en
8、從OCR中刪除已有的資料庫:
$ srvctl remove database -d 
9、向OCR中新增一個資料庫:
$ srvctl add database -d -o 
[-m ] [-p] [-A /netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s ]
10、向OCR中新增一個資料庫的例項:
$ srvctl add instance -d -i -n 
$ srvctl add instance -d -i -n 
11、向OCR中新增一個ASM例項:
$ srvctl add asm -n -i -o 
12、新增一個service
$ srvctl add service -d -s -r [-a ] [-P ] [-u]
13、修改在其他節點上的service
$ srvctl modify service -d -s -I -t 
14、relocate某個節點的service到其他節點
srvctl relocate service -d -s -I
CRS及相關服務的常用命令的演示
1、檢視狀態的命令
# su–oracle --先切換到oracle使用者
$ crs_stat -t --檢視crs及所有的service的狀態
$ crsctl check crs --用crsctl命令,檢查crs相關服務的狀態
$ srvctl status nodeapps -n db01 (db02) --使用srvctl檢視所有節點上的服務是否正常
$ srvctl status database -d db --使用srvctl檢視資料庫狀態
啟動和關閉相關服務的命令
# su – oracle
$ crs_start–all --啟動所有的crs服務
$ crs_stop–all --停止所有的crs服務
$ crsctl start crs --啟動crs服務
$ crsctl stop crs --停止crs服務
$ srvctl start nodeapps -n db01(db02) --啟動某節點上所有的應用
$ srvctl stop nodeapps -n db01(db02) --停止某節點上所有的應用
$ srvctl start listener -n db01(db02) --啟動某個節點的listener
$ srvctl stop listener -n db01(db02) --停止某個節點的listener
$ srvctl start instance–d db–i db01(db02) --啟動某個instance
$ srvctl stop instance–d db–i db01(db02) --停止某個instance
$ srvctl start database–d db --啟動資料庫
$ srvctl stop database–d db --停止資料

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

相關文章