10g Clusterware Votedisk 损坏的恢复方法

votedisk无论是对于RAC(10g Clusterware、11g GI)而言,是非常重要的,我们称它为仲裁盘,当RAC集群中的某个节点发生故障而脱网掉线时,就由它来判断是否将其踢出集群,以保证集群正常运行,当votedisk损坏了,也就会导致集群服务无法启动,集群资源都无法加载,最后导致罢工。那么我们平时就要注意对votedisk的备份,在11g中,由于votedisk和ocr默认就会放进ASM磁盘组,因此可以不用特别关注,但对于10g的Cluster来说,由于不能放到ASM磁盘组,只能以raw的形式使用,因此要特别关注votedisk,定期对其进行备份,如:

用dd命令备份和恢复votedisk的方法:

备份:dd if=/dev/raw/raw3  of=/tmp/votedisk.bak

恢复:dd if=/tmp/votedisk.bak of=/dev/raw/raw3

如果很不幸,之前没有做过备份,且没有做过镜像,当votedisk损坏的时候,就只能对crs进行重建了,下面来演示一下这个过程:

--关闭crs,对votedisk的盘进行破坏,这里是/dev/raw/raw3

[[email protected] ~]# dd if=/dev/zero of=/dev/raw/raw3 bs=4096 count=12800

再次重启crs,就提示无法启动了,查找ocssd.log日志文件发现,其中有记录,说明了是磁盘损坏

PS:10g Clusterware的日志入口地址是$ORA_CRS_HOME/log/主机名/...

[    CSSD]2015-01-16 09:37:38.327 >USER:    Oracle Database 10g CSS Release 10.2.0.1.0 Production Copyright 1996, 2094 Oracle.  All rights reserved.

[    CSSD]2015-01-16 09:37:38.327 >USER:    CSS daemon log for node rac1, number 1, in cluster cluster

[  clsdmt]Listening to (ADDRESS=(PROTOCOL=ipc)(KEY=rac1DBG_CSSD))

[    CSSD]2015-01-16 09:37:38.332 [3059615952] >TRACE:   clssscmain: local-only set to false

[    CSSD]2015-01-16 09:37:38.344 [3059615952] >TRACE:   clssnmReadNodeInfo: added node 1 (rac1) to cluster

[    CSSD]2015-01-16 09:37:38.352 [3059615952] >TRACE:   clssnmReadNodeInfo: added node 2 (rac2) to cluster

[    CSSD]2015-01-16 09:37:38.356 [3032808336] >TRACE:   clssnm_skgxnmon: skgxn init failed, rc 1

[    CSSD]2015-01-16 09:37:38.356 [3059615952] >TRACE:   clssnm_skgxnonline: Using vacuous skgxn monitor

[    CSSD]2015-01-16 09:37:38.362 [3059615952] >TRACE:   clssnmDiskStateChange: state from 1 to 2 disk (0//dev/raw/raw3)

[    CSSD]2015-01-16 09:37:40.381 [3032808336] >TRACE:   clssnmvDiskOpen: corrupt kill block on disk (0x09!=0x636c73536b696c4c)

[    CSSD]2015-01-16 09:37:40.381 [3032808336] >TRACE:   clssnmDiskStateChange: state from 2 to 3 disk (0//dev/raw/raw3)

重建crs很简单,就执行2个脚本:

1.$ORA_CRS_HOME/install/rootdelete.sh

2.$ORA_CRS_HOME/install/rootdeinstall.sh

节点1:

[[email protected] install]# ./rootdelete.sh

Shutting down Oracle Cluster Ready Services (CRS):

Stopping resources.

Error while stopping resources. Possible cause: CRSD is down.

Stopping CSSD.

Unable to communicate with the CSS daemon.

Shutdown has begun. The daemons should exit soon.

Checking to see if Oracle CRS stack is down...

Oracle CRS stack is not running.

Oracle CRS stack is down now.

Removing script for Oracle Cluster Ready services

Updating ocr file for downgrade

Cleaning up SCR settings in ‘/etc/oracle/scls_scr‘

[[email protected] install]# ./rootdeinstall.sh

Removing contents from OCR device

2560+0 records in

2560+0 records out

10485760 bytes (10 MB) copied, 0.590608 seconds, 17.8 MB/s

节点2:

[[email protected] install]# ./rootdelete.sh

Shutting down Oracle Cluster Ready Services (CRS):

OCR initialization failed with invalid format: PROC-22: The OCR backend has an invalid format

Shutdown has begun. The daemons should exit soon.

Checking to see if Oracle CRS stack is down...

Oracle CRS stack is not running.

Oracle CRS stack is down now.

Removing script for Oracle Cluster Ready services

Updating ocr file for downgrade

Cleaning up SCR settings in ‘/etc/oracle/scls_scr‘

[[email protected] install]# ./rootdeinstall.sh

Removing contents from OCR device

2560+0 records in

2560+0 records out

10485760 bytes (10 MB) copied, 0.627909 seconds, 16.7 MB/s

[[email protected] install]# dd if=/dev/zero of=/dev/raw/raw3 bs=4096 count=128000

dd: writing `/dev/raw/raw3‘: No space left on device

25601+0 records in

25600+0 records out

104857600 bytes (105 MB) copied, 5.40456 seconds, 19.4 MB/s

然后重新在2个节点依次执行$ORA_CRS_HOME/root.sh就可以了,软件的OUI不用重新安装

如果通过脚本无法删除成功,安装顺利重新安装crs,可以手工删除以下目录:

rm /etc/oracle/*

rm -f /etc/init.d/init.cssd

rm -f /etc/init.d/init.crs

rm -f /etc/init.d/init.crsd

rm -f /etc/init.d/init.evmd

rm -f /etc/rc2.d/K96init.crs

rm -f /etc/rc2.d/S96init.crs

rm -f /etc/rc3.d/K96init.crs

rm -f /etc/rc3.d/S96init.crs

rm -f /etc/rc5.d/K96init.crs

rm -f /etc/rc5.d/S96init.crs

rm -Rf /etc/oracle/scls_scr

rm -f /etc/inittab.crs

cp /etc/inittab.orig /etc/inittab

总结:

平时我们都会对ocr和votedisk磁盘做多个镜像冗余,另外,如果是裸设备的话,还会通过dd命令单独去备份,通常是不太容易损坏和丢失的,万一发生了无备份情况下的损坏,那么就只能工作重建crs来解决问题了,这就是DBAs们的最后一根救命稻草了。

时间: 2024-12-12 20:37:08

10g Clusterware Votedisk 损坏的恢复方法的相关文章

SQL 2005 日志损坏的恢复方法

SQL 在突然停电或者非正常关机下,可能会出现日期文件错误,导致数据库不正常.恢复数据库方法如下 1.数据库服务停掉 将数据库文件备份 例如数据库名为 DTMS 则将 DTMS.mdf 备份出来. 2.开启数据库服务,创建个空的名称为 DTMS的空的同名数据库. 3.关闭数据库服务,将备份的原DMTS.mdf 覆盖到新创建的数据库目录下. 4.在master 下执行下列语句 --修改数据库为紧急状态alter database DTMS set EMERGENCY --将数据库设置为单用户ALT

SD卡/U盘分区坏了怎么办?告诉大家一个简单的恢复方法

前言: 以前工作的过程中经常会借U盘给开发同学使用,结果等到还回来后,发现U盘的可用的空间变得很小了,可是插到电脑上发现明明磁盘里也没文件呀,格式化后发现还是不管用,百思不得其解~~ 上网研究了老半天才解决了,现在就将之前U盘损坏的恢复方法总结如下,供参考,哈哈哈~~ [以下以SD卡恢复为例,U盘恢复方法类似] 方法/步骤: 1.卸载SD卡分区 在使用fdisk命令前,请使用如下命令卸载boot分区和rootfs分区: Host# umount /media/boot Host# umount

RHEL6系统boot分区损坏恢复方法

不小心格式化掉boot分区,或者删除了/boot下的引导文件,会出现以下提示 解决办法: 一.插入linux安装光盘(此以rhel6.4为例) 二.开机选择光驱启动,选择修复模式 三.语言选择english 四.键盘布局选择us 五.由于使用的是光盘引导,所以安装镜像选择本地cd/dvd 六.选择是否启用网络,由于是本地光驱引导所以可以选择NO不启用 七.选择继续 八.下图告知系统根目录是在/mnt/sysimage   可使用chroot命令更改 九.选择启动shell shell  star

ORACLE联机日志文件丢失或损坏的处理方法(转)

经验总结: 联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题. 损坏非当前联机日志:1.启动数据库,遇到ORA-00312 or ORA-00313错误,如:ORA-00313: open failed for members of log group 4 of thread 1ORA-00312: online log 3 thread 1: '/opt/oracle/db04/oradata/ORCL/redo03.log'从这

记录SQL Server2008日志文件损坏的恢复过程

记录SQL Server2008日志文件损坏的恢复过程: 环境:系统Windows Server2003 数据库SQL Server2008 故障原因:通过mstsc链接同一服务器时,用户界面不一致.决定重启服务器,未正确关闭应用程序的情况下(程序在访问数据库),导致数据库日志文件损坏,自然也就无法访问mdf文件!(都是微软自家的产品,重启服务器为什么不能检查数据库的状态,将数据库设置在安全状态后在重启呢??所以,要养成良好的习惯.关闭现有数据库链接,再重启服务器) 故障表现:无法访问数据文件,

Current online Redo 和 Undo 损坏的处理方法

转自:http://blog.csdn.net/tianlesoftware/article/details/6261475 Oracle 不同故障的恢复方案 http://blog.csdn.net/tianlesoftware/archive/2010/12/30/6106178.aspx Oracle undo 表空间管理 http://blog.csdn.net/tianlesoftware/archive/2010/07/11/5689558.aspx 上面的2篇Blog 讲到了Ora

移动磁盘显示无法访问数据错误(循环冗余检查)的文件恢复方法

数据错误(循环冗余检查)说明这个盘的文件系统结构损坏了.在平时如果数据不重要,那么可以直接格式化就能用了.但是有的时候里面的数据很重要,那么就必须先恢复出数据再格式化.具体恢复方法可以看正文了解(不格式化的恢复方法) 工具/软件:星空数据恢复软件 步骤1:先下载并解压程序运行后,直接双击需要恢复的分区,接着右击软件图标选择<以管理员身份运行>(如果是xp系统可以直接双击打开软件)步骤2:软件运行后,直接双击需要恢复的分区步骤3:程序找出资料后,会放到与要恢复盘同名的目录中步骤4:打钩所有需要恢

U盘强制拔出丢失数据的恢复方法(U盘写保护的四种解决方法)

● U盘强制拔出丢失数据的恢复方法 U盘从出现以来,小巧便携容量大深受人们的喜爱,不用像云盘一样需要下载,所以重要的文件我们都喜欢用U盘来传递数据,但是很多人使用U盘拔出时都没有使用"弹出U盘"功能,取出过程中电脑正在对U盘读写,这时候拔出很容易造成数据丢失或者导致U盘中的文件损坏无法打开,那么这种情况下我们应该怎么解决呢?下面小编就教大家如何恢复,一起来看看吧. 首先,下载一个数据恢复软件,比较好用的就有[迷你兔数据恢复软件](minitool中文版本),可以恢复U盘中被删除的数据,

linux下rm -r误删NTFS文件恢复方法

linux下rm -r误删NTFS文件恢复方法(nfs-3g) 一时疏忽,手一抖,把整个挂载的F盘删了一半!顿时傻眼!! 被删的F盘是Windows下NTFS分区,在Ubuntu12.04中挂载了F盘,使用rm命令时粗心大意,误删了一半的数据. 血的教训告诉我们,使用rm -r命令一定要带上-i,否则让你后悔莫及! 还好在Linux下有一种方法可以恢复被删除的NTFS分区文件. 本文地址:http://www.cnblogs.com/yhLinux/p/4106099.html 在文件被误删后,