首页 > 数据库 >Oracle OCR,Vote disk故障恢复方案

Oracle OCR,Vote disk故障恢复方案

时间:2024-04-23 14:55:34浏览次数:30  
标签:OCR 备份 dev Oracle Vote disk root crsctl asm

 

Oracle OCR,Vote disk故障恢复方案

 

1   概述

OCR/Vote disk 磁盘组故障场景恢复操作方案。

测试版本:11.2.0.4.0

适用于以下场景:

  1. 操作维护 OCR/Vote disk 对应的磁盘组,提前备份了 OCR 文件信息,以便存在回退维护的空间。
  2. 由于某些原因导致 OCR/Vote disk 的磁盘组丢失从而 CRS stack 无法运行。
  3. 不存在有效的 OCR 备份,需要重新初始化 OCR 和 voting。

https://www.cnblogs.com/PiscesCanon/p/18152885

1   备份OCR

1.1  自动备份

ocrconfig -showbackup
或者
ocrconfig -showbackup auto

 

1.2  手工备份

1.2.1 备份OLR

root用户:
ocrconfig -local -manualbackup
ocrconfig -local -showbackup

 

1.2.2 备份OCR

root用户:
ocrconfig -manualbackup
ocrconfig -showbackup manual

 

1.3  逻辑导出OCR

root用户:
sudo -u grid mkdir -p /home/grid/daily/$(date +%Y%m%d)/
ocrconfig -export /home/grid/daily/$(date +%Y%m%d)/ocr_$(date +%Y%m%d).exp

 

2   备份参数文件

su - grid
mkdir /home/grid/daily/$(date +%Y%m%d)/
sqlplus / as sysasm
create pfile='/home/grid/daily/20240422/pfile20240422.ora' from spfile;

 

3   集群宕机恢复OCR

OCR/Vote disk 的磁盘故障超过其冗余模式下允许故障的磁盘成员数量导致 CRS/GI stack 在任何节点不在可用。

3.1  故障模拟

3.1.1 OCR信息

crsctl query css votedisk
##  STATE    File Universal Id                    File Name Disk group
--  -----    -----------------                    --------- ---------
 1. ONLINE   0095259e8c224f78bfd3c48245b6af62 (/dev/mapper/asm-ocr1) [OCR]
 2. ONLINE   5424a64bc8c54fb0bf4334fa0d62fdc3 (/dev/mapper/asm-ocr2) [OCR]
 3. ONLINE   068ab6c8a7f94f75bfafa32a8450ee6e (/dev/mapper/asm-ocr3) [OCR]

 

3.1.2 dd格式化

dd if=/dev/zero of=/dev/mapper/asm-ocr1 bs=1024 count=5000
dd if=/dev/zero of=/dev/mapper/asm-ocr2 bs=1024 count=5000
dd if=/dev/zero of=/dev/mapper/asm-ocr3 bs=1024 count=5000

 

3.2  存在有效备份

3.2.1 OCR最新备份

防。

其中,最新的备份在手工备份产生的备份文件中。

ocr备份:
ll $ORACLE_HOME/cdata/oracle-cluster/
total 41592
-rw------- 1 root root 7098368 Apr 17 12:39 backup00.ocr
-rw------- 1 root root 7098368 Apr 17 08:39 backup01.ocr
-rw------- 1 root root 7098368 Apr 17 04:39 backup02.ocr
-rw------- 1 root root 7098368 Apr 17 00:39 day_.ocr
-rw------- 1 root root 7098368 Apr 16 15:40 day.ocr
-rw------- 1 root root 7098368 Apr 16 15:40 week.ocr
olr备份:
ll $ORACLE_HOME/cdata/`hostname`
total 13436
-rw------- 1 root root 6787072 Apr 16 11:26 backup_20240416_112653.olr
-rw------- 1 root root 6971392 Apr 17 14:22 backup_20240422_142214.olr

 

3.2.2 完全关闭GI

所有节点,root用户:
crsctl stop crs -f

 

3.2.3 exclusive启动CRS

备份节点,root用户:
crsctl start crs -excl -nocrs

重点:
新选项”-nocrs“在 11.2.0.2 被引入,用来阻止 ora.crsd 资源启动。指定这个选项是很重要的,否则启动 ora.crsd 资源失败会拖累 ora.cluster_interconnect.haip 资源失败,这会反过来导致 ASM 崩溃

3.2.4 准备OCR磁盘

使用旧的或者准备新的 OCR 磁盘。

建议使用准备3块新的 OCR 磁盘,我这里为了方便还是用旧的3块盘(dd asm-ocr3)。

需要确保所有节点均能访问。

3.2.5 创建OCR磁盘组

sqlplus / as sysasm
如果asm_diskstring为空:
alter system set asm_diskstring='/dev/mapper/asm*' scope=memory sid='*';
select NAME,FAILGROUP,OS_MB,STATE,TOTAL_MB,FREE_MB,LABEL,PATH from v$asm_disk;
create diskgroup ocr normal redundancy disk '/dev/mapper/asm-ocr1' disk '/dev/mapper/asm-ocr2' disk '/dev/mapper/asm-ocr3' attribute 'compatible.asm'='11.2';

 

3.2.6 还原OCR备份

使用最新的有效备份。

备份节点,root用户:
ocrconfig -restore /u01/app/11.2.0/grid/cdata/oracle-cluster/backup00.ocr

或者使用最新的逻辑备份。

备份节点,root用户:
ocrconfig -import /home/grid/daily/$(date +%Y%m%d)/ocr_$(date +%Y%m%d).exp

 

3.2.7 重建voting file

备份节点,root用户:
crsctl replace votedisk +OCR

 

3.2.8 OCR信息

ocrcheck
PS:OLR为:ocrcheck -local
crsctl query css votedisk
##  STATE    File Universal Id                    File Name Disk group
--  -----    -----------------                    --------- ---------
 1. ONLINE   6929ca1f542f4faabfd17ae1777e2352 (/dev/mapper/asm-ocr1) [OCR]
 2. ONLINE   677ddd208bbe4f0cbf26885e5fd28597 (/dev/mapper/asm-ocr2) [OCR]
 3. ONLINE   8bb7a6df4c854f70bf151b6d14f6146a (/dev/mapper/asm-ocr3) [OCR]
Located 3 voting disk(s).

 

 

3.2.9 重建spfile

准备一个文件(例如 /tmp/asm_pfile.ora),包含 ASM 启动参数—这可能和下面的示例有所不同。如果有疑问,查验 ASM alert log,因为 ASM 实例启动中会列出所有非默认的参数值。请注意,最后一次 ASM 启动(经由上面的 CRS 启动步骤)不会使用 spfile,所以,需要定位到 CRS 磁盘组丢失之前的启动过程。

sqlplus / as sysasm
create spfile='+ocr' from pfile='/home/grid/daily/20240422/pfile20240422.ora';

 

3.2.10     重启CRS

所有节点,root用户:
crsctl stop crs -f
crsctl start crs

 

3.3  不存在备份

3.3.1 锁定解除

在删除节点之前,先解除锁定

在解除配置一个节点之前,确保它不是被锁定的,即:

root用户:
olsnodes -s -t
若存在锁定的节点:
crsctl unpin css -n <racnode1>

 

3.3.2 解除配置

以下几种情况需要解除配置:

l  OCR 损坏并且没有好的备份

l  或者由于缺失 /etc or /var/opt/oracle 目录下的 oracle cluster 相关文件导致 GI 堆栈无法在任意一个节点启动,比如丢失 init.ohasd 等。如果 GI 可以在至少一个节点启动,请参考下面章节"B. Grid Infrastructure Cluster - One or Partial Nodes"。

l  $GRID_HOME 应该是完整的,因为 deconfigure 配置不会修复 $GRID_HOME 的损坏。

3.3.2.1 收集信息

解除配置之前,如果可能请使用 grid 用户收集以下信息,当重新配置完成后用于生成用户资源的列表来重新加入到集群中。

crsctl stat res -t > crsctl_stat_res_t.log
crsctl stat res -p > crsctl_stat_res_p.log
crsctl query css votedisk > crsctl_query_css_votedisk.log
ocrcheck > ocrcheck.log
oifcfg getif > oifcfg_getif.log
srvctl config nodeapps -a > srvctl_config_nodeapps_a.log
srvctl config scan > srvctl_config_scan.log
srvctl config asm -a > srvctl_config_asm_a.log
srvctl config listener -l <listener-name> -a > listener.log
srvctl config database -d <dbname> -a > db.log
srvctl config service -d <dbname> -s <service-name> -v > service.log

 

3.3.3 完全关闭GI

所有节点,root用户:
crsctl stop crs -f

 

3.3.3.1 解除配置

所有节点,root用户:
$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
本地节点,root用户:
$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode

 

3.3.3.2 安装cvuqdisk

root用户:
cd /soft/grid/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm

 

3.3.3.3 图形化重配置

grid用户:
配置DISPLAY,略。
/u01/app/11.2.0/grid/crs/config/config.sh
图形化操作,执行脚本步骤,root用户:
/u01/app/11.2.0/grid/root.sh

 

3.3.3.4 修改asm_diskgroups

alter system set asm_diskgroups='DATA' sid='*' scope=both;

 

3.3.3.5 挂载data磁盘组

所有节点的ASM实例:
alter diskgroup data mount;

 

3.3.3.6 注册实例、db

srvctl add database -d zkm -n zkm -o $ORACLE_HOME -p +data/zkm/spfilezkm.ora
srvctl add instance -d zkm -i zkm1 -n oracle1
srvctl add instance -d zkm -i zkm2 -n oracle2

 

4   参考

Linux/Unix 平台,在CRS 磁盘组完全丢失后,如何恢复基于 ASM 的 OCR (文档 ID 2331776.1)

11.2/12c Grid Infrastructure 如何备份或还原OLR (文档 ID 2668070.1)

OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 ID 1674859.1)

How to Reinstall Oracle Grid Infrastructure Without Disturbing RDBMS Installation (文档 ID 1276975.1)

How to Configure or Re-configure Grid Infrastructure With config.sh/config.bat (文档 ID 1354258.1)

如何(Deconfigure)解除配置/(Reconfigure)重新配置(重建 OCR)或卸载 GI (文档 ID 2016852.1)

https://docs.oracle.com/cd/E11882_01/rac.112/e41959/votocr.htm

标签:OCR,备份,dev,Oracle,Vote,disk,root,crsctl,asm
From: https://www.cnblogs.com/PiscesCanon/p/18152885

相关文章

  • TIMESTAMP WITH TIME ZONE in PG and Oracle
    BothOracleandPostgreSQLsupporttheTIMESTAMPWITHTIMEZONEdatatype,buttherearesomedifferencesinhowtheyhandleandstoretimezoneinformation.Storage:Oracle:InOracle,TIMESTAMPWITHTIMEZONEvaluesarestoredinUTCinternally.Thet......
  • ORACLE定时器,执行周期设定
    对于DBA来说,数据库Job再熟悉不过了,因为经常要数据库定时的自动执行一些脚本,或做数据库备份,或做数据的提炼,或做数据库的性能优化,包括重建索引等等的工作。但是,Oracle定时器Job时间的处理上,千变万化,今天我把比较常用写法汇总如下:在总结之前,先把Job的参数一一说明一下:job参数是由Su......
  • oracle 修改密码不过期
    1.以sysdba身份进入sqlplus模式 2.查看用户密码的有效期设置一般默认的配置文件是DEFAULTSELECT*FROMdba_profilesWHEREprofile='DEFAULT'ANDresource_name='PASSWORD_LIFE_TIME';3.将密码有效期修改成“无限期”ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIM......
  • Oracle JDK 和 OpenJDK 有什么区别?
    OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea、UltraViolet都是从OpenJDK源码衍生出的发行版。OracleJDK采用了商业实现,而OpenJDK使用的是开源的FreeType。当然,“相同”是建立在两者共有的组件基础上的,O......
  • [转帖]Oracle 败了、谷歌赢了:Java API 版权案最终裁决
    https://zhuanlan.zhihu.com/p/362496136 周一,最高法院在Oracle围绕移动操作系统Android中所用软件的一起旷日持久的版权诉讼中判谷歌胜诉。法院的判决为6比2。大法官AmyConeyBarrett没有参与此案。该案涉及谷歌用于构建Android的12000行代码,这些代码是从SunMicrosy......
  • Google和Oracle关于Java的知识产权诉讼
    Google和Oracle关于Java的知识产权诉讼背景Oracle收购SUN之后立即对Oracle展开了诉讼.经历了多级法院的上诉和驳回.2021.4.5美国联邦最高法院判断.Google不侵权.无需赔偿Oracle提起的80亿美金的诉讼但是专利官司在美国科技史上影响很大.AMD跟Intel的关于x86......
  • 错误:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题
    最近在虚拟机上搭一套新的开发环境,运行项目时报错。如果你的系统中已经安装了Oracle客户端软件,那么可能需要检查一些环境变量。例如,你可以通过在系统的环境变量中设置PATH变量来包含Oracle客户端的路径,这样可以帮助.NET框架找到所需的Oracle客户端软件。此外,如果你的Oracle客户......
  • benchmarksql压测lightdb的oracle模式
    一、编译安装BenchMarkSQL1.下载源码,输入ant编译。确保已经安装配置JDK环境,BenchMarkSQL是Java开发的。cdbenchmarksql/benchmarksql]$ant二、创建BenchMarkSQL测试数据库和角色[lightdb@linuxtestba65~]$ltsqlltsql(13.8-23.4)compatibletype:postgresqlType"......
  • Oracle怎么增加表空间大小
    第一步:查看表空间的名字及文件所在位置selecttablespace_name,file_id,file_name,round(bytes/(1024*1024),0)total_spacefromdba_data_filesorderbytablespace_name第二步:增大所需表空间大小方法一:alterdatabasedatafile'表空......
  • Oracle+RAC静默安装系列(基于RHEL9/国产/麒麟/华为欧拉的生产案例)
    由风哥发布的 Oracle+RAC静默安装系列(基于RHEL9/国产/麒麟/华为欧拉的生产案例)系列,适合运维人员/数据库/开发人员,可以用于业务生产环境。为满足想快速安装布署Oracle数据库的学员,风哥特别设计的一套比较全面的全命令行静默安装配置数据库课程,本系列共7套课程,内容如下:1)全......