Oacle Rac 精华概要
在RAC安装前利用CLU进行检查预安装完整性
./runcluvfy.sh stage -pre crsinst -n node1,node2,node3 -verbose
预安装之前检查必要的安装组件
./runcluvfy.sh stage -pre crsinst -n rac-a,rac-b -r 10gR2 –verbose
预安装检查10gR2的完整性条件
runcluvfy.sh comp nodecon -n node1,node2 –verbose
预安装检查RAC网络环境
./runcluvfy.sh stage -post hwos -n rac-a,rac-b –verbose
预安装检查硬件条件的完整性
./runcluvfy.sh comp sys -n rac-a,rac-b -p crs -osdba dba -orainv oinstall –verbose 预安装检查RAC软件环境的必要条件
Oracle rac 检查CRS 服务状态
bash-3.00$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
Oracle rac 检查OCR磁盘状态
bash-3.00$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 1043180
Used space (kbytes) : 4584
Available space (kbytes) : 1038596
ID : 253220107
Device/File Name : /dev/rdsk/c2t0d0s6
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded
Oracle rac 查看Voting设备
bash-3.00$ crsctl query css votedisk 0. 0 /dev/rdsk/c2t1d0s6
located 1 votedisk(s).
RAC环境中一般开启数据库的步骤
Oracle10g RAC + Linux AS5.0
一般标准关闭开启步骤是下面的顺序:SHUTDOWN:
rac1->srvctl stop service -d devdb
rac1->srvctl stop database -d devdb
rac1->srvctl stop asm -n rac2
rac1->srvctl stop asm -n rac1
rac1->srvctl stop nodeapps -n rac2
rac1->srvctl stop nodeapps -n rac1
rac1->crs_stat–t
STARTUP:
rac1->srvctl start nodeapps -n rac1
rac1->srvctl start nodeapps -n rac2
rac1->srvctl start asm -n rac1
rac1->srvctl start asm -n rac2
rac1->srvctl start database -d devdb
rac1->srvctl start service -d devdb
rac1->crs_stat -t
其中srvctl stop service -d devdb 是在关闭哪些服务?都是CRS服务吗?CRSD ,ORSD , OCSSD , EVMD ?
srvctl stop database -d devdb 是在关闭两个节点上的inst (也就是关闭整个数据库) ?
srvctl stop nodeapps -n rac1 是在停止节点1 上的vip, ons , gsd,lsnr , inst 等节点应用程序?
这里的服务(service)和节点应用程序(nodeapps) 有什么关联?节点应用程序是数据库Level ,而服务是crs 的东西,是os level ?
-----------------------
一般在开关机保养的时候需要srvctl stop service -d devdb 这个吗?
因为好像CRS会随着OS的关闭自动关闭,随OS开启自动开启?
--------------------------
平时常用的开启关闭,没有涉及到service 部分。
ecsrac01$emctl stop dbconsole
ecsrac01$srvctl stop database -d ecsdb
ecsrac01$srvctl stop asm -n ecsrac01
ecsrac01$srvctl stop asm -n ecsrac02
ecsrac01$srvctl stop nodeapps -n ecsrac01
ecsrac01$srvctl stop nodeapps -n ecsrac02
ecsrac01$srvctl start nodeapps -n ecsrac01
ecsrac01$srvctl start nodeapps -n ecsrac02
ecsrac01$srvctl start asm -n ecsrac01
ecsrac01$srvctl start asm -n ecsrac02
ecsrac01$srvctl start database -d ecsdb
ecsrac01$emctl start dbconsole
关于service的描述,十分精准
下面我补充一下其他部分:
其中srvctl stop service -d devdb 是在关闭哪些服务?都是CRS服务吗?CRSD ,ORSD , OCSSD , EVMD ?
=======》这里的service跟CRS服务没什么关系,CRS的服务包含三个部分,CRSD, OCSSD and EVMD,没有ORSD
srvctl stop database -d devdb 是在关闭两个节点上的inst (也就是关闭整个数据库) ?
==========>srvctl stop databas是关闭整个数据库,srvctl stop instance 是关闭指定节点上的instance
srvctl stop nodeapps -n rac1 是在停止节点1 上的vip, ons , gsd,lsnr , inst 等节点应用程序?
======》在RAC中,nodeapps是vip, ons and gsd的总称,stop nodeapps就是停止这三种资源,跟lsnr 和instance没关系
这里的服务(service)和节点应用程序(nodeapps) 有什么关联?节点应用程序是数据库Level ,而服务是crs 的东西,是os level ?
==========>service和nodeapps没多大关系,但是其他资源之间有一些依赖关系
比如service depends on instance
listener depends on vip
instance depends on asm
这种依赖关系在不同版本之间会略微有些差异。
所有实例和服务的状态
$ srvctl status database -d racdb
Instance racdb1 is running on node linux1
Instance racdb2 is running on node linux2
单个实例的状态
$ srvctl status instance -d racdb -i racdb2
Instance racdb2 is running on node linux2
在数据库全局命名服务的状态
$ srvctl status service -d racdb -s racdb_taf
Service racdb_taf is running on instance(s) racdb1, racdb2
特定节点上节点应用程序的状态
$ srvctl status nodeapps -n linux1
VIP is running on node: linux1
GSD is running on node: linux1
Listener is running on node: linux1
ONS daemon is running on node: linux1
ASM 实例的状态
$ srvctl status asm -n linux1
ASM instance +ASM1 is running on node linux1.
列出配置的所有数据库
$ srvctl config database
racdb
显示RAC 数据库的配置
$ srvctl config database -d racdb
linux1 racdb1 /u01/app/oracle/product/10.2.0/db_1
linux2 racdb2 /u01/app/oracle/product/10.2.0/db_1
显示指定集群数据库的所有服务
$ srvctl config service -d racdb
racdb_taf PREF: racdb1 racdb2 AVAIL:
显示节点应用程序的配置—(VIP、GSD、ONS、监听器)$ srvctl config nodeapps -n linux1 -a -g -s -l
VIP exists.: /linux1-vip/192.168.1.200/255.255.255.0/eth0 GSD exists.
ONS daemon exists.
Listener exists.
显示ASM 实例的配置
$ srvctl config asm -n linux1
+ASM1 /u01/app/oracle/product/10.2.0/db_1
集群中所有正在运行的实例
SELECT
inst_id
, instance_number inst_no
, instance_name inst_name
, parallel
, status
, database_status db_status
, active_state state
, host_name host
FROM gv$instance
ORDER BY inst_id;
INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST -------- -------- ---------- --- ------- ------------ --------- -------
1 1 racdb1 YES OPEN ACTIVE NORMAL linux1
2 2 racdb2 YES OPEN ACTIVE NORMAL linux2 位于磁盘组中的所有数据文件
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile
union
select name from v$tempfile;
NAME
-------------------------------------------
+FLASH_RECOVERY_AREA/racdb/controlfile/current.258.570913191
+FLASH_RECOVERY_AREA/racdb/onlinelog/group_1.257.570913201
+FLASH_RECOVERY_AREA/racdb/onlinelog/group_2.256.570913211
+FLASH_RECOVERY_AREA/racdb/onlinelog/group_3.259.570918285
+FLASH_RECOVERY_AREA/racdb/onlinelog/group_4.260.570918295
+RACDB_DATA1/racdb/controlfile/current.259.570913189
+RACDB_DATA1/racdb/datafile/example.257.570913311
+RACDB_DATA1/racdb/datafile/indx.270.570920045
+RACDB_DATA1/racdb/datafile/sysaux.260.570913287
+RACDB_DATA1/racdb/datafile/system.262.570913215
+RACDB_DATA1/racdb/datafile/undotbs1.261.570913263
+RACDB_DATA1/racdb/datafile/undotbs1.271.570920865
+RACDB_DATA1/racdb/datafile/undotbs2.265.570913331
+RACDB_DATA1/racdb/datafile/undotbs2.272.570921065
+RACDB_DATA1/racdb/datafile/users.264.570913355
+RACDB_DATA1/racdb/datafile/users.269.570919829
+RACDB_DATA1/racdb/onlinelog/group_1.256.570913195 +RACDB_DATA1/racdb/onlinelog/group_2.263.570913205 +RACDB_DATA1/racdb/onlinelog/group_3.266.570918279 +RACDB_DATA1/racdb/onlinelog/group_4.267.570918289 +RACDB_DATA1/racdb/tempfile/temp.258.570913303
21 rows selected.
属于“RACDB_DATA1”磁盘组的所有ASM 磁盘
SELECT path
FROM v$asm_disk
WHERE group_number IN (select group_number
from v$asm_diskgroup
where name = 'RACDB_DATA1');
PATH
----------------------------------
ORCL:VOL1
ORCL:VOL2
启动/停止集群
此时,我们已经完全安装并配置了Oracle RAC 10g并拥有了一个功能完善的集群化数据库。
至此完成所有工作后,您可能会问“那我又怎样启动和停止服务呢?”如果您遵循了本指南中的说明,则所有服务(包括Oracle 集群件、所有Oracle 实例、企业管理器数据库控制台等)应在Linux 节点每次重新引导时自动启动。
但有时您可能想要关闭某个节点,然后手动重新启动它。或者,您可能发现企业管理器没有启动它而需要启动它。本节提供了启动和停止集群环境的命令。
确保您是以oracle UNIX 用户登录的。我们将从linux1 运行本节中的所有命令:
# su - oracle
$ hostname
linux1
停止Oracle RAC 10g环境
第一步是停止Oracle 实例。当此实例(和相关服务)关闭后,关闭ASM 实例。最后,关闭节点应用程序(虚拟IP、GSD、TNS 监听器和ONS)。
$ export ORACLE_SID=racdb1
$ emctl stop dbconsole
$ srvctl stop instance -d racdb -i racdb1
$ srvctl stop asm -n linux1
$ srvctl stop nodeapps -n linux1
启动Oracle RAC 10g环境
第一步是启动节点应用程序(虚拟IP、GSD、TNS 监听器和ONS)。当成功启动节点应用程序后,启动ASM 实例。最后,启动Oracle 实例(和相关服务)以及企业管理器数据库控制台。
$ export ORACLE_SID=racdb1
$ srvctl start nodeapps -n linux1
$ srvctl start asm -n linux1
$ srvctl start instance -d racdb -i racdb1
$ emctl start dbconsole
使用SRVCTL 启动/停止所有实例
启动/停止所有实例及其启用的服务。我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!
$ srvctl start database -d racdb
$ srvctl stop database -d racdb
查看Enterperise Manager端口
bash-3.00$ more /u01/app/oracle/product/10.2.0/db_1/install/portlist.ini iSQL*Plus HTTP port number =5561
Enterprise Manager Console HTTP Port (racdb) = 1158
Enterprise Manager Agent Port (racdb) = 3938
检查RAC中的主要服务行程信息
bash-3.00$ ps -aef | grep "init\."
root 704 1 0 23:42:12 ? 0:03 /bin/sh /etc/init.d/init.cssd fatal
root 915 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd oclsomon root 919 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd daemon root15403 15391 0 00:10:03 ? 0:00 /bin/sh /etc/init.d/init.cssd bootid
root15391 704 0 00:10:03 ? 0:00 /bin/sh /etc/init.d/init.cssd runcheck root 906 704 0 23:42:56 ? 0:00 /bin/sh /etc/init.d/init.cssd oprocd
进程含义解释
Fatal:
RAC安装后的任务
备份SPFILE文件到PFILE
bash-3.00$ sqlplus /nolog
SQL*Plus: Release 10.2.0.2.0 - Production on Tue Sep 7 12:27:19 2010
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
SQL>conn /as sysdba
Connected.
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +ORADATA/racdb/spfileracdb.ora SQL> create pfile='?/dbs/initracdb.ora' from spfile;
File created.
bash-3.00$ ls -la
total 89000
drwxr-x--- 2 oracle oinstall 1024 Sep 7 12:36 .
drwxr-x--- 55 oracle oinstall 1024 Sep 3 20:25 ..
-rw-rw---- 1 oracle oinstall 1460 Sep 7 11:35 ab_+ASM1.dat
-rw-rw---- 1 oracle oinstall 6645760 Sep 4 12:03 arch1_33_728766842.dbf
-rw-rw---- 1 oracle oinstall 8290816 Sep 4 12:19 arch1_34_728766842.dbf
-rw-rw---- 1 oracle oinstall 172032 Sep 4 12:37 arch1_35_728766842.dbf
-rw-rw---- 1 oracle oinstall 47104 Sep 5 13:03 arch1_36_728766842.dbf
-rw-rw---- 1 oracle oinstall 5180928 Sep 5 14:56 arch1_37_728766842.dbf
-rw-rw---- 1 oracle oinstall 1571840 Sep 5 15:43 arch1_38_728766842.dbf
-rw-rw---- 1 oracle oinstall 96256 Sep 5 16:06 arch1_40_728766842.dbf
-rw-rw---- 1 oracle oinstall 168960 Sep 5 16:20 arch1_41_728766842.dbf
-rw-rw---- 1 oracle oinstall 285696 Sep 5 16:38 arch1_42_728766842.dbf
-rw-rw---- 1 oracle oinstall 1676288 Sep 5 17:30 arch1_43_728766842.dbf
-rw-rw---- 1 oracle oinstall 18564096 Sep 6 10:24 arch1_44_728766842.dbf
-rw-rw---- 1 oracle oinstall 329728 Sep 6 10:45 arch1_45_728766842.dbf
-rw-rw---- 1 oracle oinstall 2028032 Sep 6 10:24 arch2_11_728766842.dbf
-rw-rw---- 1 oracle oinstall 1024 Sep 4 12:38 arch2_6_728766842.dbf
-rw-r----- 1 oracle oinstall 1544 Sep 7 11:36 hc_+ASM1.dat
-rw-r----- 1 oracle oinstall 1544 Sep 7 11:36 hc_racdb1.dat
-rw-r----- 1 oracle oinstall 28 Sep 3 18:04 init+ASM1.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 28 Sep 3 18:04 init+.ora
-rw-r----- 1 oracle oinstall 38 Sep 7 11:28 initracdb1.ora
-rw-r--r-- 1 oracle oinstall 1229 Sep 7 12:36 initracdb.ora备份的SPFILE
-rw-r----- 1 oracle oinstall 1536 Sep 3 18:04 orapw+ASM1
-rw-r----- 1 oracle oinstall 1536 Sep 3 20:13 orapwracdb1
当SPFILE文件丢失,此时可以利用PFILE恢复到SPFILE文件中,具体步骤如下
SQL>startup pfile=$ORACLE_HOME/dbs/initracdb.ora从PFILE启动
ORACLE instance started.
Total System Global Area 260046848 bytes改变后的SGA大小
Fixed Size 1279648 bytes
Variable Size 79694176 bytes
Database Buffers 176160768 bytes
Redo Buffers 2912256 bytes
Database mounted.
Database opened.
SQL>create spfile='+ORADATA/racdb/spfileracdb.ora' from pfile;创建一个SPFILE从PFILE文件中
File created.
如果我们在这里未指定SPFILE的绝对路径,默认会存储$ORACLE_HOME/dbs/spfile racdb1.ora 在此黄色部分是以节点自动命令名也就是与当前的SID同名。如下
bash-3.00$ ls -la
total 89012
drwxr-x--- 2 oracle oinstall 1024 Sep 7 12:48 .
drwxr-x--- 55 oracle oinstall 1024 Sep 3 20:25 ..
-rw-rw---- 1 oracle oinstall 1460 Sep 7 11:35 ab_+ASM1.dat
-rw-rw---- 1 oracle oinstall 8290816 Sep 4 12:19 arch1_34_728766842.dbf
-rw-rw---- 1 oracle oinstall 172032 Sep 4 12:37 arch1_35_728766842.dbf
-rw-rw---- 1 oracle oinstall 47104 Sep 5 13:03 arch1_36_728766842.dbf
-rw-rw---- 1 oracle oinstall 5180928 Sep 5 14:56 arch1_37_728766842.dbf
-rw-rw---- 1 oracle oinstall 1571840 Sep 5 15:43 arch1_38_728766842.dbf
-rw-rw---- 1 oracle oinstall 309760 Sep 5 15:59 arch1_39_728766842.dbf
-rw-rw---- 1 oracle oinstall 96256 Sep 5 16:06 arch1_40_728766842.dbf
-rw-rw---- 1 oracle oinstall 168960 Sep 5 16:20 arch1_41_728766842.dbf
-rw-rw---- 1 oracle oinstall 285696 Sep 5 16:38 arch1_42_728766842.dbf
-rw-rw---- 1 oracle oinstall 1676288 Sep 5 17:30 arch1_43_728766842.dbf
-rw-rw---- 1 oracle oinstall 18564096 Sep 6 10:24 arch1_44_728766842.dbf
-rw-rw---- 1 oracle oinstall 329728 Sep 6 10:45 arch1_45_728766842.dbf
-rw-rw---- 1 oracle oinstall 2028032 Sep 6 10:24 arch2_11_728766842.dbf
-rw-rw---- 1 oracle oinstall 1024 Sep 4 12:38 arch2_6_728766842.dbf
-rw-r----- 1 oracle oinstall 1544 Sep 7 11:36 hc_+ASM1.dat
-rw-r----- 1 oracle oinstall 1544 Sep 7 12:47 hc_racdb1.dat
-rw-r----- 1 oracle oinstall 28 Sep 3 18:04 init+ASM1.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 28 Sep 3 18:04 init+.ora
-rw-r----- 1 oracle oinstall 38 Sep 7 11:28 initracdb1.ora
-rw-r--r-- 1 oracle oinstall 1229 Sep 7 12:40 initracdb.bak
-rw-r--r-- 1 oracle oinstall 1229 Sep 7 12:41 initracdb.ora
-rw-r----- 1 oracle oinstall 1536 Sep 3 18:04 orapw+ASM1
-rw-r----- 1 oracle oinstall 1536 Sep 3 20:13 orapwracdb1
-rw-r----- 1 oracle oinstall 3584 Sep 7 12:48 spfileracdb1.ora此值是默认创建的SPFILE文件
此时存在一个很大因素,好就是在ORACLE RAC开启数据库时寻SPFIEL的过程。优先级的关系如下根据官方手册定义:
Parameter File Search Order in Real Application Clusters
Oracle Database searches for your parameter file in the following order:
1. $ORACLE_HOME/dbs/spfile sid.ora
2. $ORACLE_HOME/dbs/spfile.ora
3. $ORACLE_HOME/dbs/init sid.ora
如果此时我创建的SPFILE正好在本地节点上,并非在存储上,这就有可能造成RAC中二个节点SPFILE 不一样会给数据库带来性能参数不一致,影响数据库的最佳性能。而且在当前节点,而且根据SPFILE 的优先级关系,RAC环境中数据库启动恰好从本地的SPFILE文件启动数据库。
SQL>shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup数据库默认从SPFILE文件启动读取$ORACLE_HOME/dbs/initracdb1.ora
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+ORADATA/racdb/spfileracdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/racdb/spfileracdb.ora
ORA-01000: maximum open cursors exceeded
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+ORADATA/racdb/spfileracdb.ora'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/racdb/spfileracdb.ora
ORA-01000: maximum open cursors exceeded
以步启动过程说明从SPFILE无法启动,因为我们在执行SPFILE文件恢复过程中出错。也就是在RAC 环境中,数据库开启状态时不能对SPFILE文件做恢复,而且官方提出在RAC环境中做SPFILE恢复不需要开启数据库。
所以我们只要连接上数据库可以直接如下
SQL>create spfile='+ORADATA/socdb/spfilesocdb.ora' from pfile='?/dbs/initracdb.ora';
File created.
SQL>startup数据库再次从SPFILE文件读初始化配置文件
ORACLE instance started.
Total System Global Area 260046848 bytes验证正确
Fixed Size 1279648 bytes
Variable Size 79694176 bytes
Database Buffers 176160768 bytes
Redo Buffers 2912256 bytes
Database mounted.
Database opened.
SQL> show parameter spfile查看数据库以什么参数文件启动的
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +ORADATA/racdb/spfileracdb.ora
RAC启用归档
1.登录到一个节点,通过在当前实例中将cluster_database 设置为FALSE 来禁用集群实例参数:
2.$ sqlplus / as sysdba
SQL>alter system set cluster_database=false scope=spfile sid='racdb1';
3.关闭所有访问集群化数据库的实例:
$ srvctl stop database -d racdb
4.使用本地实例,挂载数据库:
5.$ sqlplus / as sysdba
SQL>startup mount
6.启用存档:
SQL>alter database archivelog;
7.通过在当前实例中将实例参数cluster_database 修改为TRUE,重新启用对集群的支持:
SQL>alter system set cluster_database=true scope=spfile sid='racdb1';
8.关闭本地实例:
SQL>shutdown immediate
9.使用srvctl 备份所有实例:
$ srvctl start database -d racdb
10.(可选)使用srvctl 备份所有服务(即TAF):
$ srvctl start service -d racdb
11.登录到本地实例,验证存档日志模式已启用:
12.$ sqlplus / as sysdba
13.SQL>archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 29
Next log sequence to archive 30
Current log sequence 30
启用存档日志模式后,RAC 配置中的每个实例都可以自动存档重做日志!
Oracle Rac 相关维护操作
备份与恢复Voting、OCR
假如在RAC环境中的OCR voting设备已经损坏,CRS无法正常工作,则此时我们需要进行恢复二设备内容,具体步骤如下:
首先我们先执行备份voting磁盘内容
bash-3.00$ crsctl query css votedisk
0. 0 /dev/rdsk/c2t1d0s6
located 1 votedisk(s).
bash-3.00$ dd if=/dev/rdsk/c2t1d0s6 of=/tmp/votedisk.bak
备份OCR磁盘内容
查看当前OCR设备信息
bash-3.00$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 1043180
Used space (kbytes) : 4584
Available space (kbytes) : 1038596
ID : 253220107
Device/File Name : /dev/rdsk/c2t0d0s6
Device/File integrity check succeeded
Device/File not configured
Cluster registry integrity check succeeded
以下此命令需要切换到root用户才能够执行
bash-3.00# /u01/app/crs/bin/ocrconfig -export /tmp/ocrdisk -s online
bash-3.00# cd /tmp
bash-3.00# ls -la
total 2087186
drwxrwxrwt 7 root sys 468 Sep 8 16:49 .
drwxr-xr-x 39 root root 1024 Sep 8 16:17 ..
drwxr-xr-x 2 noaccess noaccess 106 Sep 8 15:19 hsperfdata_noaccess drwxr-xr-x 2 root root 69 Sep 8 15:19 hsperfdata_root
-rw-r--r-- 1 root root 105919 Sep 8 16:49 ocrdisk
-rw-r--r-- 1 root root 30 Sep 8 15:18 ogl_select288 drwxrwxrwx 2 root nobody 110 Sep 8 15:18 .removable
-rw-r--r-- 1 oracle oinstall 1068498944 Sep 8 15:50 votedisk.bak
-r--r--r-- 1 root root 11 Sep 8 15:18 .X0-lock
drwxrwxr-x 2 root root 104 Sep 8 15:18 .X11-pipe drwxrwxrwt 2 root root 104 Sep 8 15:18 .X11-unix
bash-3.00# du -sh ./ocrdisk
104K ./ocrdisk
恢复voting 磁盘内容。如下
bash-3.00# crs_stat -t
Name Type Target State Host ------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac-a
ora....-A.lsnr application ONLINE ONLINE rac-a
ora.rac-a.gsd application ONLINE ONLINE rac-a
ora.rac-a.ons application ONLINE ONLINE rac-a
ora.rac-a.vip application ONLINE ONLINE rac-a
ora....SM2.asm application ONLINE OFFLINE
ora....-B.lsnr application ONLINE OFFLINE
ora.rac-b.gsd application ONLINE OFFLINE
ora.rac-b.ons application ONLINE OFFLINE
ora.rac-b.vip application ONLINE ONLINE rac-a
ora.racdb.db application ONLINE ONLINE rac-a ora....b1.inst application ONLINE ONLINE rac-a
ora....b2.inst application ONLINE OFFLINE
ora...._taf.cs application ONLINE ONLINE rac-a
ora....db1.srv application ONLINE ONLINE rac-a
ora....db2.srv application ONLINE OFFLINE
切换到oracle用户关闭数据库
bash-3.00$ srvctl stop database -d racdb
bash-3.00$ crs_stat -t
Name Type Target State Host ------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac-a
ora....-A.lsnr application ONLINE ONLINE rac-a
ora.rac-a.gsd application ONLINE ONLINE rac-a
ora.rac-a.ons application ONLINE ONLINE rac-a
ora.rac-a.vip application ONLINE ONLINE rac-a
ora....SM2.asm application ONLINE OFFLINE
ora....-B.lsnr application ONLINE OFFLINE
ora.rac-b.gsd application ONLINE OFFLINE
ora.rac-b.ons application ONLINE OFFLINE
ora.rac-b.vip application ONLINE ONLINE rac-a
ora.racdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application ONLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
bash-3.00# crsctl stop crs
Stopping resources.
Successfully stopped CRS resources
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
bash-3.00# crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
bash-3.00# ps -ef | grep init
root 1 0 0 00:02:36 ? 0:01 /sbin/init
root 586 21775 0 00:22:53 pts/2 0:00 grep init
root 83 1 0 00:21:12 ? 0:00 /bin/sh /etc/init.d/init.evmd run
root 30 1 0 00:21:11 ? 0:00 /bin/sh /etc/init.d/init.cssd fatal
root 132 1 0 00:21:13 ? 0:00 /bin/sh /etc/init.d/init.crsd run
bash-3.00# ps -fu oracle
UID PID PPID C STIME TTY TIME CMD
oracle 8249 8179 0 00:08:16 pts/2 0:00 bash
oracle 8179 8075 0 00:08:14 pts/2 0:00 -sh
oracle 18803 18733 0 00:14:34 pts/2 0:00 bash
oracle 9130 8249 0 00:08:48 pts/2 0:00 -sh
oracle 18733 9288 0 00:14:32 pts/2 0:00 –sh
换上新的磁盘设备,一定为共享存储,盘ID与原始盘符可以不一样如下
bash-3.00# /u01/app/crs/bin/crsctl query css votedisk
0. 0 /dev/rdsk/c2t2d0s6
located 1 votedisk(s).
需要注意的是,在新添加VOTE磁盘设备时。需要更改权限的(修改权限时需要在二个节点上)bash-3.00# cd /dev/rdsk
bash-3.00# chmod 644 /dev/rdsk/c2t2d0s6
bash-3.00# chown oracle:oinstall /dev/rdsk/c2t2d0s6
需要切换到ROOT用户,如下
First删除之前的votedisk如下
在做添加新的voting磁盘时提前一定要备份,因为在强制添加时有可能腐化原始vote磁盘内容
bash-3.00#/u01/app/crs/bin/crsctl add css votedisk /dev/rdsk/c2t2d0s6 –force
在默认情况RAC必须至少有一个vote磁盘设备
bash-3.00# /u01/app/crs/bin/crsctl delete css votedisk /dev/rdks/c2t1d0s6
second 将之前备份过的votedisk文件恢复到新添加的VOTE设备中
bash-3.00# dd if=/export/home/oracle/votedisk of=/dev/rdsk/c2t2d0s6
重启CRS服务,如下
bash-3.00# /u01/app/crs/bin/crsctl start crs/需要在二个节点都执行没有先后顺序
查看CRS运行状态及进程信息
bash-3.00# /u01/app/crs/bin/crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac-a
ora....-A.lsnr application ONLINE ONLINE rac-a
ora.rac-a.gsd application ONLINE ONLINE rac-a
ora.rac-a.ons application ONLINE ONLINE rac-a
ora.rac-a.vip application ONLINE ONLINE rac-a
ora....SM2.asm application ONLINE ONLINE rac-b
ora....-B.lsnr application ONLINE ONLINE rac-b
ora.rac-b.gsd application ONLINE ONLINE rac-b
ora.rac-b.ons application ONLINE ONLINE rac-b
ora.rac-b.vip application ONLINE ONLINE rac-b
ora.racdb.db application OFFLINE OFFLINE
ora....b1.inst application OFFLINE OFFLINE
ora....b2.inst application OFFLINE OFFLINE
ora...._taf.cs application OFFLINE OFFLINE
ora....db1.srv application OFFLINE OFFLINE
ora....db2.srv application OFFLINE OFFLINE
bash-3.00# ps -ef | grep init
root 1 0 0 23:24:34 ? 0:01 /sbin/init
root 903 710 0 23:25:35 ? 0:00 /bin/sh /etc/init.d/init.cssd oprocd
root 916 710 0 23:25:36 ? 0:00 /bin/sh /etc/init.d/init.cssd daemon
root 710 1 0 23:25:21 ? 0:03 /bin/sh /etc/init.d/init.cssd fatal
root 912 710 0 23:25:35 ? 0:00 /bin/sh /etc/init.d/init.cssd oclsomon
bash-3.00# ps -ef | grep crs
oracle 1110 1109 0 23:25:38 ? 1:21 /u01/app/crs/bin/ocssd.bin
oracle 1702 893 0 23:26:00 ? 0:00 /u01/app/crs/bin/evmlogger.bin -o /u01/app/crs/evm/log/https://www.doczj.com/doc/8a2915364.html, -l /u01/a
oracle 708 1 0 23:25:21 ? 0:00 sh -c sh -c 'ulimit -c unlimited; cd
/u01/app/crs/log/rac-b/evmd; exec /u01/app
oracle 1108 916 0 23:25:38 ? 0:00 sh -c /bin/sh -c 'ulimit -c unlimited; cd /u01/app/crs/log/rac-b/cssd; /u01/ap
oracle 1109 1108 0 23:25:38 ? 0:00 /bin/sh -c ulimit -c unlimited; cd
/u01/app/crs/log/rac-b/cssd; /u01/app/crs/b
root 711 1 0 23:25:21 ? 0:04 /u01/app/crs/bin/crsd.bin reboot
oracle 893 708 0 23:25:35 ? 0:01 /u01/app/crs/bin/evmd.bin
oracle 1022 912 0 23:25:37 ? 0:00 sh -c /bin/sh -c 'cd
/u01/app/crs/log/rac-b/cssd/oclsomon; ulimit -c unlimited;
oracle 1024 1022 0 23:25:37 ? 0:00 /bin/sh -c cd
/u01/app/crs/log/rac-b/cssd/oclsomon; ulimit -c unlimited; /u01/a
root 1020 903 0 23:25:36 ? 0:00 /u01/app/crs/bin/oprocd run -t 1000 -m 500 -f
oracle 1026 1024 0 23:25:37 ? 0:01 /u01/app/crs/bin/oclsomon.bin
oracle 3144 1 0 23:27:06 ? 0:00 /u01/app/crs/opmn/bin/ons -d
oracle 3145 3144 0 23:27:06 ? 0:00 /u01/app/crs/opmn/bin/ons -d
bash-3.00# ps -fu oracle
UID PID PPID C STIME TTY TIME CMD
oracle 1110 1109 0 23:25:38 ? 1:21 /u01/app/crs/bin/ocssd.bin
oracle 1702 893 0 23:26:00 ? 0:00 /u01/app/crs/bin/evmlogger.bin -o
/u01/app/crs/evm/log/https://www.doczj.com/doc/8a2915364.html, -l /u01/a
oracle 708 1 0 23:25:21 ? 0:00 sh -c sh -c 'ulimit -c unlimited; cd
/u01/app/crs/log/rac-b/evmd; exec /u01/app
oracle 2658 1 0 23:26:48 ? 0:00 asm_psp0_+ASM2
oracle 1108 916 0 23:25:38 ? 0:00 sh -c /bin/sh -c 'ulimit -c unlimited; cd /u01/app/crs/log/rac-b/cssd; /u01/ap
oracle 1109 1108 0 23:25:38 ? 0:00 /bin/sh -c ulimit -c unlimited; cd
/u01/app/crs/log/rac-b/cssd; /u01/app/crs/b
oracle 893 708 0 23:25:35 ? 0:01 /u01/app/crs/bin/evmd.bin
oracle 1022 912 0 23:25:37 ? 0:00 sh -c /bin/sh -c 'cd
/u01/app/crs/log/rac-b/cssd/oclsomon; ulimit -c unlimited;
oracle 1024 1022 0 23:25:37 ? 0:00 /bin/sh -c cd
/u01/app/crs/log/rac-b/cssd/oclsomon; ulimit -c unlimited; /u01/a
oracle 1026 1024 0 23:25:37 ? 0:01 /u01/app/crs/bin/oclsomon.bin
oracle 2654 1 0 23:26:48 ? 0:00 asm_pmon_+ASM2
oracle 2656 1 0 23:26:48 ? 0:01 asm_diag_+ASM2
oracle 2696 1 0 23:26:49 ? 0:00 asm_gmon_+ASM2
oracle 2660 1 0 23:26:48 ? 0:02 asm_lmon_+ASM2
oracle 2662 1 0 23:26:48 ? 0:02 asm_lmd0_+ASM2
oracle 2664 1 0 23:26:48 ? 0:02 asm_lms0_+ASM2
oracle 3144 1 0 23:27:06 ? 0:00 /u01/app/crs/opmn/bin/ons -d
oracle 2677 1 0 23:26:49 ? 0:00 asm_mman_+ASM2
oracle 2679 1 0 23:26:49 ? 0:00 asm_dbw0_+ASM2
oracle 2681 1 0 23:26:49 ? 0:00 asm_lgwr_+ASM2
oracle 2683 1 0 23:26:49 ? 0:00 asm_ckpt_+ASM2
oracle 2687 1 0 23:26:49 ? 0:00 asm_smon_+ASM2
oracle 2691 1 0 23:26:49 ? 0:00 asm_rbal_+ASM2
oracle 3063 1 0 23:27:04 ? 0:00
/u01/app/oracle/product/10.2.0/db_1/bin/racgimon daemon ora.rac-b.ASM2.asm
oracle 2748 1 0 23:26:52 ? 0:00 asm_lck0_+ASM2
oracle 3145 3144 0 23:27:06 ? 0:00 /u01/app/crs/opmn/bin/ons -d
oracle 3224 1 0 23:27:09 ? 0:00
/u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER_RAC-B -inherit
恢复OCR磁盘内容,如下
在做恢复的时候千万要注意尽量备份多份OCR VOTE设备文件保持最新,也就是在你更换这些设备之前进行备份,而且你如果恢复是以前的COR设备文件,那么将旧的OCR设备
文件可能覆盖到当前值,恢复到旧的OCR设备文件之前的状态,在这里个人总结,OCR
设备文件包括VOTE 而且VOTE设备文件不一定包含OCR设备文件
首先有二种方法恢复OCR文件内容1、根据自动备份的OCR设备文件进行恢复2、根据自己
备份的OCR备份文件进行恢复
首先查看本地有效的OCR备份文件
bash-3.00# /u01/app/crs/bin/ocrconfig -showbackup
rac-b 2010/09/03 17:05:45 /u01/app/crs/cdata/crs
rac-b 2010/09/03 17:05:45 /u01/app/crs/cdata/crs
rac-b 2010/09/03 17:05:45 /u01/app/crs/cdata/crs
停止CRS服务
bash-3.00# /u01/app/crs/bin/crsctl stop crs/需要在二边都执行
请确认CRS服务状态
bash-3.00# /u01/app/crs/bin/crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.
bash-3.00# ps -ef | grep init
root 1 0 0 01:42:56 ? 0:00 /sbin/init
root 11100 1 0 01:52:44 ? 0:00 /bin/sh /etc/init.d/init.evmd run
root 11135 1 0 01:52:45 ? 0:00 /bin/sh /etc/init.d/init.crsd run
root 11119 1 0 01:52:44 ? 0:00 /bin/sh /etc/init.d/init.cssd fatal
进行恢复OCR文件(根据本地自动备份需要-restore,而且手动执行的备份需要-import选项)
bash-3.00# /u01/app/crs/bin/ocrconfig -restore /u01/app/crs/cdata/crs/backup00.ocr
bash-3.00# /u01/app/crs/bin/ocrconfig -import /export/home/oracle/ocrdisk
开启CRS服务
bash-3.00# /u01/app/crs/bin/crsctl start crs
Attempting to start CRS stack
The CRS stack will be started shortly
bash-3.00$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM1.asm application ONLINE ONLINE rac-a
ora....-A.lsnr application ONLINE ONLINE rac-a
ora.rac-a.gsd application ONLINE ONLINE rac-a
ora.rac-a.ons application ONLINE ONLINE rac-a