oracle 10g rac维护:asm维护, srvctl、crsctl,orcconfig等指令的使用。
2 asm管理
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
接口类型有两种,public和private,前者说明接口用于外部通信,用于Oracle Net和VIP 地址,而后者说明接口用于Interconnect。接口的配置方式分为两类: global 和node-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 Node的OCR Process负责同步到其他节点的OCR Process。因为OCR的内容如此重要,Oracle 每4个小时对其做一次备份,并且保留最后的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
对象:Database,Instance,ASM,Service,Listener 和 Node Application,其中Node application又包括GSD,ONS,VIP,ONS可以使用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
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。