如何备份和恢复RAC数据库_配置多个通道连接不同节点实现并行备份
RMAN在RAC中备份速度慢因通道默认集中于单节点须显式用CONNECT指定各节点实例、挂载本地/低争用存储并统一归档路径至共享存储恢复时通道分配须与备份严格对应。RMAN 备份时只连一个节点备份速度上不去rac 环境下用 rman 默认只连接到当前登录的实例allocate channel 开的通道全挤在同一个节点上磁盘 i/o 和 cpu 都成瓶颈。并行备份不是靠多开几个 backup 命令而是让每个通道真正跑在不同节点上。实操要点必须用 CONNECT TARGET 显式指定每个通道连接哪个实例格式是 sys/oracleracdb1其中 racdb1 是 tnsnames.ora 里定义的单实例别名不能依赖 ORACLE_SID 或本地连接RAC 下 / as sysdba 会随机落到某个节点不可控每个通道的 DEVICE TYPE DISK 路径最好挂载在对应节点本地或共享但低争用的存储比如 ACFS避免跨节点写同一 NFS 目录引发锁等待示例RUN { ALLOCATE CHANNEL c1 DEVICE TYPE DISK CONNECT sys/oracleracdb1; ALLOCATE CHANNEL c2 DEVICE TYPE DISK CONNECT sys/oracleracdb2; BACKUP DATABASE PLUS ARCHIVELOG;}恢复时通道分配不匹配导致 ORA-19566 或卡住恢复阶段如果没按备份时的通道逻辑对齐节点RMAN 可能反复尝试从错误节点读取备份片尤其当备份片存放在某节点本地路径时其他节点根本访问不到——这时不是权限问题是路径不存在。常见错误现象ORA-19566: exceeded limit of 0 corrupt blocks for file ...其实是找不到文件误报校验失败RMAN-03002: failure during compilation of command ... RMAN-06023: no backup or copy of datafile ... found to restore恢复命令长时间无响应V$SESSION_LONGOPS 显示大量 “control file sequential read”解决办法恢复前先用 CATALOG START WITH 把所有备份片注册进控制文件并确认 LIST BACKUP 输出中每个备份集的 DEVICE TYPE 和 HANDLE 路径可被对应节点访问恢复时显式指定通道连接和备份时一一对应比如备份用了 racdb1 和 racdb2恢复也得用这两个若备份片存在共享目录如 FRA 或 NFS仍建议恢复时也分配到同节点通道减少跨节点文件系统元数据竞争tnsnames.ora 里没配单实例连接串RMAN 直接报 ORA-12154RMAN 的 CONNECT 子句不接受 service_name 形式的 SCAN 地址必须是能路由到具体实例的连接描述符。很多 DBA 只配了 racdb_scan忘了补上 racdb1、racdb2 这类静态实例别名。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手依托大模型帮助用户记录、整理和分析音视频内容体验用大模型做音视频笔记、整理会议记录。