爱悠闲 > Oracle 10G R2 RAC 日常管理

Oracle 10G R2 RAC 日常管理

标签: oracle,database,disk,数据库,service,command  |  作者: winsonyuan 相关  |  发布日期 : 2015-03-16  |  热度 : 592°

一、使用srvctl管理RAC数据库

[root@NODE01 bin]# pwd

/orac/crs/bin   # srvctl在$CRS_HOME/bin目录下,它可以在任何节点上维护。

[root@NODE01 bin]# ./srvctl

Usage: srvctl <command> <object> [<options>]

    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 <command> <object> -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.

查看节点应用程序(VIP、GSD、Listener、ONS)的状态:

[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

# 这里的node01和node02是这个节点的机器名称,通过以上命令,可以在任何节点上执行,用来关闭与启动任何节点上的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

查看节点应用程序(VIP、GSD、Listener、ONS)的配置:

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

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

    -n <node>           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.

 

 

二、管理OCR和Voting Disk

       Clusterware由2个部分组成,分别是Voting Disk和OCR。一旦它们丢失或者损坏的话,Clusterware将无法启动,这样整个RAC都将无法启动。

 

1、Voting Disk(表决磁盘方面)

Voting Disk里面记录着节点成员信息,比如说RAC数据库中有哪些节点成员,节点增加或者删除时也同样会将信息记录进来。Voting Disk必须存放在共享存储上,通常来说是存放在裸设备上。为保证Voting Disk的安全,需要配置多个Voting Disk,Oracle建议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 Disk:dd if=/dev/rhdisk3 of=/tmp/votedisk.bak
恢复Voting Disk:dd if=/tmp/votedisk.bak of=/dev/rhdisk3

 

2、OCR方面

       OCR记录的是节点成员的配置信息,比如数据库、ASM、实例、监听、VIP等CRS资源的配置信息,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 crs和crsctl stop crs必须是root用户来执行。

crs主要进程:

(1)crsd

负责管理ha操作

管理crs资源,如listener,vip,ons,gsn等

由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 --停止数据