怎样在Oracle 19c RAC环境下备份OCR和表决磁盘_执行手动备份与自动备份

风瑶同学_6559

风瑶同学_6559

2026-06-06

231人浏览

原创

ocrconfig -manualbackup 是逻辑导出,自动备份是物理快照,用途不同;手动备份需root执行且不可替代自动备份;voting disk推荐用dd备份;三类备份须组合使用并存于隔离存储。

ocrconfig -manualbackup 和自动备份不是一回事

手动备份是逻辑导出,自动备份是物理快照,两者用途完全不同。你不能用 ocrconfig -manualbackup 替代每4小时一次的自动备份,也不能靠它恢复 ocr 的运行时状态(比如 vip 绑定、scan listener 当前端口等)。ocrconfig -export 生成的是纯文本结构化输出,适合人工审计或离线比对;而自动备份文件(如 backup00.ocr)是二进制镜像,只有 ocrconfig -restore 能加载。

常见误操作:在节点上以 grid 用户执行 ocrconfig -manualbackup,结果报错 PROT-20: Permission denied —— 这是因为该命令必须由 root 执行,且用户需在 oinstall 组中。

  • 手动备份命令(需 root):ocrconfig -export /backup/ocr_exp_$(date +%F).log
  • 自动备份路径查看(任意节点都可):ocrconfig -showbackup,但只在 Master Node 上写入新文件
  • 自动备份不可调间隔:4 小时是硬编码,无法通过参数修改;但可用 ocrconfig -backuploc /shared/asm/ocrbackups 把备份重定向到高可用 ASM 磁盘组

表决磁盘用 dd 备份最直接可靠

Voting Disk 是裸设备或 ASM 磁盘组上的小块存储(约 10MB),内容变化极低,除非频繁增删节点。它的备份不需要 Oracle 工具介入,dd 就是最稳妥的方式 —— 因为它不依赖 CRS 进程,也不要求集群在线。

执行前先确认当前 Voting Disk 路径:crsctl query css votedisk,输出类似:

##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   1234567890abcdef1234567890abcdef (/dev/asm-disk01) [OCR]

然后用 dd 备份(注意 bs=8192 是标准块大小,count=1000 覆盖全部 10MB):

QuantOracle
QuantOracle

63个确定性量化金融计算器 + 10个通过MCP的复合工作流。期权定价、Greeks、奇异衍生品、风险指标、投资组合优化……

下载
  • dd if=/dev/asm-disk01 of=/backup/votedisk_$(date +%F).bak bs=8192 count=1000
  • 恢复时反向操作:dd if=/backup/votedisk_2026-05-14.bak of=/dev/asm-disk01 bs=8192
  • 不要用 cp 或 rsync:它们可能因缓存、权限或稀疏文件处理导致数据不一致

自动备份路径不一致?别慌,这是正常现象

执行 ocrconfig -showbackup 在不同节点看到不同路径,或者同一节点多次执行结果路径变动,通常不代表异常。这是因为:

  • 只有 Master Node 每 4 小时执行一次物理备份,其他节点只是能读取该路径(前提是共享存储可达)
  • Master Node 可能已切换(例如原 Master 故障后选举新节点),新 Master 的首次备份要等下一个 4 小时窗口才产生
  • backup00.ocr 不是被覆盖,而是轮转机制:默认保留最近 3 个 + 前一天最后一个 + 前一周最后一个,共 5 份

验证是否真丢备份,别只信 -showbackup 输出,直接查目录:ls -l $(dirname $(ocrconfig -showbackup | head -1 | awk '{print $2}')),确认文件存在、属主为 root:oinstall、权限为 -rw-------。

生产环境必须组合使用三类备份

单靠任何一种备份方式都不足以应对真实故障。OCR 和 Voting Disk 都属于“集群启动前依赖项”,一旦损坏,CRS 根本起不来,连 sqlplus / as sysasm 都进不去。

  • 自动物理备份(backup*.ocr):用于快速恢复 OCR 主副本,但仅限于 OCR 内容本身
  • 手动逻辑导出(ocrconfig -export):用于配置比对、变更审计、跨版本迁移参考
  • Voting Disk 的 dd 镜像:唯一能在 CRS 完全宕机时还原表决能力的方式

最容易被忽略的一点:这些备份文件本身必须存放在**与 OCR/Voting Disk 物理隔离的存储路径上**。比如 OCR 在 +OCR 磁盘组,备份就不能也放在 +OCR;Voting Disk 在 /dev/asm-disk01,dd 文件就不能放在同一块物理盘或同一 LUN 上 —— 否则一次存储故障就全军覆没。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
oracle清空表数据
oracle清空表数据

当表中的数据不需要时,则应该删除该数据并释放所占用的空间。本专题为大家提供oracle清空表数据的相关文章,帮助大家解决该问题。

2023.08.16

961

5

Oracle中declare的使用
Oracle中declare的使用

Oracle DECLARE语句是PL/SQL编程语言中用于声明变量、常量、游标或异常的关键字。它的主要作用是在程序中定义这些对象,以便在后续的代码中使用。DECLARE语句的语法简单明了,可以根据需要声明多个对象。通过使用这些声明的对象,可以进行各种操作,如计算、查询数据库、处理异常等 。

2023.09.15

2753

5

oracle怎么分页
oracle怎么分页

实现分页的步骤:1、使用ROWNUM进行分页查询;2、在执行查询之前进行设置分页参数;3、使用"COUNT(*)"函数来获取总行数,并使用"CEIL"函数来向上取整计算总页数;4、在外部查询中使用"WHERE"子句来筛选出特定的行号范围,以实现分页查询。想了解更多oracle怎么分页的文章,可以来阅读本专题先的文章。

2023.09.18

2770

5

Oracle查看表操作历史记录
Oracle查看表操作历史记录

查看操作历史记录的方法:1、使用Oracle内置的审计功能,可以记录数据库中发生的各种操作,包括登录、DDL语句、DML语句等;2、使用Oracle日志文件,其中包含了数据库中发生的各种操作,可以通过查看日志文件来获取操作历史记录;3、使用Oracle的Flashback功能,可以查看数据库在某个时间点的操作历史记录;4、使用第三方工具等。本专题还提供其他查看表操作的文章,大家可以免费阅读。

2023.09.19

1569

3

Oracle中RAC的用法
Oracle中RAC的用法

Oracle中RAC的用法:1、通过在多个服务器上运行数据库实例来提供高可用性;2、允许在需要时增加或减少节点数量;3、通过将工作负载分布到多个节点上来实现负载均衡;4、使用共享存储来实现多个节点之间的数据共享;5、允许多个节点同时处理数据库请求,从而实现并行处理;6、提供了透明故障切换功能;7、使用了一些技术来确保数据的一致性;8、提供了管理工具来简化RAC环境的管理和维护。本专题还提供RAC相关的其他文章,大家可以免费阅读。

2023.09.19

2193

7

oracle imp
oracle imp

imp是Oracle数据库中的一个命令行工具,用于将导出的数据和对象从一个数据库实例导入到另一个数据库实例。imp命令的一般语法为“imp username/password@connect_string file=file_name [options]”。

2023.09.19

2929

4

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4449

19

oracle通配符有哪些
oracle通配符有哪些

oracle通配符有“%”、“_”、“[]”和“[^]"。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.08

237

5

oracle四舍五入怎么操作
oracle四舍五入怎么操作

oracle四舍五入操作可以使用ROUND函数来实现,其语法为“ROUND(number, decimal_places)”,其中,number是要进行四舍五入的数值,decimal_places是指定的小数位数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.14

766

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程