【ORACLE RAC】维护:asm维护, srvctl、crsctl,orcconfig等指令的使用。

2 asm ************************************************************************ ****原文:blog.csdn.net/clark_xu  徐长亮的专栏 ************************************************************************ 管理

2.1查看数据文件所在位置

select name from v$datafile

union

select member from v$logfile

union

select name from v$controlfile

union

select name from v$tempfile;

2.2在库实例中查看asm diskgroup

视图:V$asm_diskgroup, v$asm_disk,

Select GROUP_NUMBER,NAME,STATE,TYPE,TOTAL_MB,FREE_MBUNBALANCED from v$asm_diskgroup ;

查看更详细的信息

select STATE,REDUNDANCY,TOTAL_MB,FREE_MB,NAME,FAILGROUP from v$asm_disk;

TATE    REDUNDA  TOTAL_MB    FREE_MB NAME

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

FAILGROUP

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

NORMAL   UNKNOWN      2048          0 DGDATA_0000

NORMAL   UNKNOWN      2048          0 DGDATA_0001

NORMAL   UNKNOWN        512          0 DGFRA_0000

查看asm disk

SQL>select path,group_number from v$asm_disk;

2.3 asmcmd的使用

[oracle@host1 crs]$ export ORACLE_SID=+ASM1

[oracle@host1 crs]$ asmcmd

ASMCMD> ls

DGDATA/

DGFRA/

 [oracle@host1 ~]$ asmcmd lsdg

State    Type   Rebal  Unbal  Sector Block       AU  Total_MB Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks Name

MOUNTED  EXTERN N      N         512  4096  1048576      4096    2777                0            2777              0 DGDATA/

MOUNTED  EXTERN N      N         512  4096  1048576       512     178                0             178              0 DGFRA/

[oracle@host1 ~]$ asmcmd lsct

DB_Name   Status       Software_Version Compatible_version  Instance_Name

EDWPRD    CONNECTED           10.2.0.1.0          10.2.0.1.0  EDWPRD1

EDWPRD    CONNECTED           10.2.0.1.0          10.2.0.1.0  EDWPRD1

[oracle@host1 ~]$ asmcmd ls -l

State    Type   Rebal  Unbal  Name

MOUNTED  EXTERN N      N      DGDATA/

MOUNTED  EXTERN N      N      DGFRA/

3.监听的管理

LSNRCTL> help

The following operations are available

An asterisk (*) denotes a modifierorextended command:

start               stop                status             

services            version             reload             

save_config         trace               spawn              

change_password     quit                exit               

set*                show*              

LSNRCTL> status

Connectingto(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.10.173)(PORT=1521)))(连接监听器的名称和信息:主机名+监听端口号)

STATUS of the LISTENER

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

Alias                     LISTENER

Version                   TNSLSNR for Linux:Version10.2.0.5.0 Production(Listener版本信息,在一台机器多实例的情况下,很重要!因为版本对应向下兼容)

Start Date                05-DEC-2012 16:29:42

Uptime                    47 days 17 hr. 58 min. 56sec

Trace Level               off(调试信息,可以设置针对监听器的跟踪)

Security                  ON: Local OS Authentication(表明启动、关闭监听器的操作权限是通过OS验证实现的。也就意味着,可以对监听器设置密码项目,也是Oracle安全配置的一个重要方面)

SNMP                      OFF

Listener Parameter File  /u01/app/oracle/product/10.2/db_1/network/admin/listener.ora(参数文件位置)

Listener Log File       /u01/app/oracle/product/10.2/db_1/network/log/listener.log(日志文件位置)

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.10.173)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

Services Summary... (当前已经注册在监听器中的服务列表)

4节点层和网络层维护

4.1 olsnodes

oracle@host1 ~]$ olsnodes -n

host1  1

host2  2

[oracle@host1 ~]$ olsnodes -p

host1  host1-priv

host2  host2-priv

[oracle@host1 ~]$ olsnodes -i

host1  host1-vip

host2  host2-vip

[oracle@host1 ~]$ olsnodes -l

host1

4.2 oifcfg

Oracle的每个网络接口包括名称,网段地址,接口类型3个属性

Oifcfg 命令的格式如下:interface_name/subnet:interface_type

接口类型有两种,publicprivate,前者说明接口用于外部通信,用于Oracle NetVIP地址,而后者说明接口用于Interconnect。接口的配置方式分为两类: globalnode-specific。前者说明集群所有节点的配置信息相同,而后者意味着这个节点的配置和其他节点配置不同

Iflist:显示网口列表

Getif: 获得单个网口信息

Setif:配置单个网口

Delif:删除网口

oifcfg getif

eth0 100.100.100.0  global  public

eth1 10.10.10.0  global  cluster_interconnect

#删除接口配置

[root@raw1 bin]# ./oifcfg delif -global

#添加接口配置

[root@raw1 bin]# ./oifcfg setif -globaleth0/192.168.1.119:public

[root@raw1 bin]# ./oifcfg setif -globaleth1/10.85.10.119:cluster_interconnect

5集群层管理

5.1 crsctl

#检查crs状态

[oracle@host1 ~]$ crsctl check crs

CSS appears healthy

CRS appears healthy

EVM appears healthy

CRS 进程栈默认随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令,这个命令实际是修改了/etc/oracle/scls_scr/raw/root/crsstart这个文件里的内容。

[oracle@host1 ~]$ crsctl disable crs

Insufficient user privileges.

[oracle@host1 ~]$ su -

Password:

[root@host1 ~]# /oracle/product/crs/bin/crsctldisable crs

#查看 votedisk

[oracle@host1 ~]$ crsctl query css votedisk

 0.    0    /dev/raw/raw3

 1.    0    /dev/raw/raw4

 2.    0    /dev/raw/raw5

located 3 votedisk(s).

查看服务模块

[oracle@host1 ~]$ crsctl lsmodules css

The following are the CSS modules ::

   CSSD

   COMMCRS

COMMNS

5.1.1添加votedisk

1)  停止所有节点的CRS

[root@raw1 bin]# ./crsctl stop crs

2)添加Votedisk

    [root@raw1 bin]# ./crsctl add css votedisk /dev/raw/raw1 -force

注意:即使在CRS 关闭后,也必须通过-force 参数来添加和删除Votedisk,并且-force参数只有在CRS关闭的场合下使用才安全。

否则会报:Cluter is not a ready state for online disk addition.

3)  确认添加后的情况:

[root@raw1 bin]# ./crsctl query cssvotedisk

4)启动CRS

[root@raw1 bin]# ./crsctl start crs

5.2 ocrdump

只有一个节点能对OCR Disk进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时哟一个OCR Process从这个内存中读取内容。 OCR 内容发生改变时,由Master NodeOCR Process负责同步到其他节点的OCR Process。因为OCR的内容如此重要,Oracle4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME/crs/cdata/<cluster_name>目录下。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障

#ocrdump:打印orcdump的内容

-stdout: 把内容打印输出到屏幕上

Filename:内容输出到文件中

-keyname:只打印某个键及其子健内容

-xml:以xml格式打印输出

5.3 ocrcheck

 [oracle@host1crs]$ ocrcheck

Status of Oracle Cluster Registry is asfollows :

        Version                  :          2

        Total space (kbytes)     :     204712

        Used space (kbytes)      :       3804

        Available space (kbytes) :    200908

        ID                       :1631858718

         Device/File Name         : /dev/raw/raw1

                                    Device/Fileintegrity check succeeded

        Device/File Name         :/dev/raw/raw2

                                    Device/Fileintegrity check succeeded

命令执行过程会在$CRS_HOME/log/nodename/client目录下产生ocrcheck_pid.log日志文件

5.4 ocrconfig

OCR磁盘最多只能有两个,一个PrimaryOCR和一个Mirror OCR

-- 查看自助备份

[oracle@host1 crs]$ ocrconfig -showbackup

 

host1    2014/02/17 04:40:40    /oracle/product/crs/cdata/crs

Oracle 建议使用 cluvfy comp ocr-n all命令来做一次全面的检查。

[oracle@host1 crs]$ cluvfy comp ocr -n all

Verifying OCR integrity

Checking OCR integrity...

Checking the absence of a non-clusteredconfiguration...

All nodes free of non-clustered, local-onlyconfigurations.

Uniqueness check for OCR device passed.

Checking the version of OCR...

OCR of correct Version "2"exists.

Checking data integrity of OCR...

Data integrity check for OCR passed.

OCR integrity check passed.

Verification of OCR integrity wassuccessful.

5.4.1 ocr disk备份和恢复测试

1)首先关闭所有节点的CRS

[root@raw1 bin]# ./crsctl stop crs

2)用root用户导出OCR内容

[root@raw1 bin]# ./ocrconfig -export/u01/ocr.exp

3)重启CRS

[root@raw1 bin]# ./crsctl start crs

Attempting to start CRS stack

The CRS stack will be started shortly

 4)检查CRS状态

[root@raw1 bin]# ./crsctl check crs

CSS appears healthy

CRS appears healthy

EVM appears healthy

 5)破坏OCR内容

[root@raw1 bin]# dd if=/dev/zeroof=/dev/raw/raw1 bs=1024 count=102400

102400+0 records in

102400+0 records out

6)检查OCR一致性

[root@raw1 bin]# ./ocrcheck

PROT-601: Failed to initialize ocrcheck

7)使用cluvfy工具检查一致性

[root@raw1 cluvfy]# ./runcluvfy.sh comp ocr-n all

Verifying OCR integrity

Unable to retrieve nodelist from Oracleclusterware.

Verification cannot proceed.

8)使用Import恢复OCR 内容

[root@raw1 bin]# ./ocrconfig -import/u01/ocr.exp

9)再次检查OCR

[root@raw1 bin]# ./ocrcheck

6应用层

6.1 crs_stat

#crs_stat:

查看制定资源状态

[root@raw1 bin]# ./crs_stat ora.raw2.vip

使用-v 选项,查看详细内容,这时输出多出4项内容,分别是允许重启次数,已执行重启次数,失败阀值,失败次数

使用-p 选项查看更详细内容

使用-ls 选项,可以查看每个资源的权限定义

6.2 onsctl

这个命令用于管理配置ONS(Oracle Notification Service).

查看进程状态

Onsctl ping

 

ONS Oracle Clusterware实现FAN EventPush模型的基础。RAC环境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS,这点需要注意配置文件在$CRS_HOME/opmn/conf/ons.config.

6.3 srvctl

6.3.1config

对象:DatabaseInstanceASMServiceListener Node Application,其中Node application又包括GSDONSVIPONS可以使用onsctl命令进行管理;Listener可以通过lsnrctl 管理

使用config查看配置

[oracle@host1 crs]$ srvctl config database-d EDWPRD -a

host1 EDWPRD1 /oracle/product/10.2.0

host2 EDWPRD2 /oracle/product/10.2.0

DB_NAME: EDWPRD

ORACLE_HOME: /oracle/product/10.2.0

SPFILE: +DGDATA/EDWPRD/spfileEDWPRD.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

[oracle@host1 crs]$ srvctl config nodeapps-n host2 -a

VIP exists.: /host2-vip/100.100.100.21/255.255.255.0/eth0

[oracle@host1 crs]$ srvctl config nodeapps-n host2 -g

GSD exists.

[oracle@host1 crs]$ srvctl config nodeapps-n host2 -s

ONS daemon exists.

[oracle@host1 crs]$ srvctl config nodeapps-n host2 -l

Listener exists.

[oracle@host1 crs]$ srvctl config listener-n host1

host1 LISTENER_HOST1

[oracle@host1 crs]$ srvctl config asm -nhost1

+ASM1 /oracle/product/10.2.0

[oracle@host1 crs]$

6.3.2 add

一般情况下,应用层资源通过dbca netca,vipca自动注册到OCR中的.

但是有些时候需要手工把资源注册到OCR中。这时候就需要add命令了。

1)添加数据库

[root@raw1 bin]# ./srvctl add database -ddmm -o $ORACLE_HOME

2)  添加实例

[root@raw1 bin]# ./srvctl add instance -ddmm -n rac1 -i dmm1

[root@raw1 bin]# ./srvctl add instance -ddmm -n rac2 -i dmm2

6.3.3 enable

缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性。

-- 启用数据库的自启动:

[root@raw1 bin]# ./srvctl enable database-d raw

-- 禁止数据库在CRS启动后自启动,这时需要手动启动

[root@raw1 bin]# ./srvctl disable database-d raw

关闭某个实例的自动启动

[root@raw1 bin]# ./srvctl disable instance-d raw -i raw1

[root@raw1 bin]# ./srvctl enable instance -draw -i raw1

禁止某个服务在实例上运行

[root@raw1 bin]# ./srvctl enable service -draw -s rawservice -i raw1

[root@raw1 bin]# ./srvctl disable service-d raw -s rawservice -i raw1

6.3.4 remove

 

使用remove命令删除的是对象在OCR中的定义信息,对象本身比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到OCR中。

1) 删除Service,在删除之前,命令会给出确定提示

[root@raw1 bin]# ./srvctl remove service -draw -s rawservice

2)删除实例,删除之前同样会给出提示

[root@raw1 bin]# ./srvctl remove instance-d raw -i raw1

3)删除数据库

[root@raw1 bin]# ./srvctl remove database-d raw

6.3.5启动和关闭模式

启动数据库,默认启动到open状态

[root@raw1 bin]# ./srvctl start database -draw

2)指定启动状态

[root@raw1 bin]# ./srvctl start database -draw -i raw1 -o mount

[root@raw1 bin]# ./srvctl start database -draw -i raw1 -o nomount

3)关闭对象,并指定关闭方式

[root@raw1 bin]# ./srvctl stop instance -draw -i raw1 -o immediate

[root@raw1 bin]# ./srvctl stop instance -draw -i raw1 -o abort

4)  在指定实例上启动服务:

[root@raw1 bin]# ./srvctl start service -draw -s rawservice -i raw1

-- 查看服务状态

[root@raw1 bin]# ./srvctl status service -draw -v

5)关闭指定实例上的服务

[root@raw1 bin]# ./srvctl stop service -draw -s rawservice -i raw1

你可能感兴趣的:(crsctl,维护,srvctl,CRS,orcconfig,asm维护)