当前位置:文档之家› Oacle Rac 精华概要

Oacle Rac 精华概要

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

相关主题
文本预览
相关文档 最新文档