ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

CommVault NOCATALOG模式Oracle备份与恢复实战指南

CommVault NOCATALOG模式Oracle备份与恢复实战指南 简介这份PDF文档面向Linux环境下的数据库管理员与运维工程师系统讲解如何借助CommVault对Oracle数据库实施备份与恢复帮助解决企业级数据安全与高可用保障问题。内容覆盖iDataAgent for Oracle的安装准备、软件安装与卸载、Oracle备份配置及数据恢复全流程涉及版本兼容性检查、自动归档模式、NOCATALOG方式RMAN备份、控制文件与数据文件恢复、重做日志重建等关键技术点适合具备一定Oracle与Linux基础的读者进阶学习。资源包共1个PDF文件大小约2.02MB篇幅精炼、目录结构清晰按安装、备份、恢复三大模块组织便于按需检索查阅。目前已有306人学习下载可作为DBA日常运维与灾难恢复演练的实操参考帮助读者掌握CommVault与RMAN协同工作的配置思路与排错要点。1. 为什么 NOCATALOG 模式下的 Oracle 备份更值得你花时间生产库上跑着一套 Oracle归档日志天天涨RMAN 备份老是满这是很多 DBA 的日常。CommVault 的 Oracle iDataAgent 在 Linux 上的玩法核心就一句话它不自己造轮子而是调用 RMAN 的备份语句去抽取数据再把备份流交给 CommVault 的存储策略去落盘。这意味着你原来对 RMAN 的理解基本都能复用但配置入口从命令行挪到了 CommCell 控制台。这份文档讲的是 NOCATALOG 方式也就是不依赖恢复目录数据库控制文件自己记录备份元数据。选它的理由很实际少一个要维护的 catalog 库少一层故障点中小规模环境里够用。代价是控制文件必须单独备份恢复时也得先把它捞回来。适合谁手上管着几套 Oracle 实例、已经在用 CommVault 做文件系统备份、想把这套体系延伸到数据库层面的运维。如果你连 RMAN 的 CATALOG 和 NOCATALOG 区别都还没搞清建议先把这块补上再往下看。2. 装 iDataAgent 之前的准备版本、归档与 hosts 三件事2.1 版本兼容和归档模式是硬门槛安装前第一件事不是点安装程序而是翻 CommVault 的 Online Book CD 系统需求部分确认你的 CommVault 版本和 Oracle 版本在兼容列表里。这一步跳过的后果是装完了连不上实例报错还特别含糊。常见做法是先在测试机上把版本组合跑通再上生产。第二件事是确认 Oracle 处于自动归档模式。NOCATALOG 备份要处理事务日志归档没开的话 RMAN 连备份都做不完整。检查命令很简单sqlplus / as sysdba SQL archive log list;如果显示的是 No Archive Mode需要先切到归档模式再继续。切换涉及停库启动到 mount 再 open生产环境务必安排停机窗口。第三件事是/etc/hosts。CommServer 和本机的 IP 加主机名必须互相写进去两边都要写。这个坑很隐蔽因为网络通不代表 CommVault 能识别它认的是主机名解析。提示安装 iDataAgent 过程中需要停止 Oracle 数据库提前做好停机准备别在生产高峰动手。2.2 安装路径和日志路径别用默认值安装程序跑起来之后接受协议、选安装到物理主机、选 Galaxy 客户端模块这些按向导走就行。真正要留心的是两个路径安装路径和日志存放路径。默认值往往落在系统盘Oracle 备份的日志量不小时间一长容易把根分区撑满。我一般会把安装路径指到独立的数据盘比如/appbakup/galaxy日志路径也单独放一个目录。Galaxy 组名按你的组织规范填存储策略选客户端要用的那个。配置 Oracle 实例那一步实例名和 ORACLE_HOME 路径要跟实际环境完全一致大小写都别错。卸载的话进安装目录跑./cvpkgrm按 ENTER 开始然后选模块序号。Oracle iDataAgent 对应的是CVGxOrIDA别选错了把文件系统 Agent 卸掉。cd /appbakup/galaxy ./cvpkgrm # 选择 3) CVGxOrIDA 卸载 Oracle iDataAgent3. 配置 Oracle 子客户端从实例创建到控制文件单独备份3.1 创建实例时为什么不勾“目册连接”iDataAgent 装好后CommCell 浏览器里会出现对应的客户端和 Oracle IDA 图标。右键 Oracle 图标选“新实例”输入实例名和 ORACLE_HOME。关键点在连接配置因为走 NOCATALOG这里不选“目册连接”只填 Oracle 目标数据库的连接字符串用 SYS 账户。这一步的逻辑是NOCATALOG 模式下 RMAN 不需要恢复目录控制文件本身就是元数据载体。如果你勾了目册连接但实际没有 catalog 库备份任务会直接失败。填完连接信息后分别设定用户命令数据备份和归档日志备份所用的存储策略这两个可以指向同一个策略也可以分开看你的保留周期要求。创建完成后会生成一个默认的default子客户端。你可以直接用它设定计划备份也可以另建子客户端做更细的粒度控制。我一般先拿 default 跑通一次全备确认链路没问题再拆。3.2 备份内容选择和参数设定右键default子客户端属性进备份内容配置。这里要决定几件事备份数据文件、是否备份存档日志、是否备份控制文件、是否删除备份过的归档日志。归档日志删除这个选项要谨慎删早了恢复时缺日志删晚了归档区爆满。常见做法是保留最近两到三天的归档确认备份成功后再删。备份参数根据实际情况选比如备份类型、通道数、是否压缩。通道数不是越大越好受限于存储侧和 Oracle 侧的 IO 能力盲目加通道反而拖慢整体速度。3.3 控制文件单独备份的批处理写法NOCATALOG 模式下控制文件不会自动进备份流必须单独处理。做法是在 Oracle 服务器上建一个批处理文件然后在 default 子客户端的“后备份处理”选项里填入这个文件的绝对路径。这样每次子客户端备份完会自动跑这个脚本把控制文件备份到本地硬盘。#!/bin/bash # controlfile_backup.cmd # 作用在 CommVault 备份完成后将控制文件备份到本地指定路径 su - oracle -c sqlplus /nolog EOF connect /as sysdba alter database backup controlfile to /home/oracle/rmanbackup/controlfile.bak reuse; exit EOF逻辑说明su - oracle切换到 oracle 用户执行sqlplus /nolog走本地认证connect /as sysdba以 SYSDBA 身份连入backup controlfile to ... reuse把控制文件写到指定路径reuse表示覆盖已有文件。路径/home/oracle/rmanbackup/要提前建好并确保 oracle 用户有写权限。参数说明目标路径按你的实际环境改别照抄。reuse关键字保证重复执行不会报文件已存在。这个脚本的绝对路径要填进“后备份处理”填错的话备份成功但控制文件没备上恢复时就是血泪经验。配置完存储策略后右键 default 子客户端选“备份”选备份类型、设定作业计划可以立即运行并在作业监视器里看状态。双击运行中的作业能看到详细日志包括 RMAN 的原始输出排错主要靠它。4. 恢复演练控制文件、MOUNT 状态与 REDOLOG 重建4.1 先把控制文件捞回来恢复的第一步不是恢复数据文件而是恢复控制文件。因为 NOCATALOG 下控制文件记录了备份元数据没有它 RMAN 不知道备份集在哪。操作路径是浏览备份数据选中要恢复的控制文件点“恢复全部所选”填写目标文件夹确定。恢复完成后在目标路径下会看到控制文件。接下来把它重命名成SPFILESID.ORA参数文件里指定的标准名字并复制三份到不同位置。为什么是三份控制文件是 Oracle 的多路复用机制参数文件里通常配了三个路径少一份数据库起不来。# 假设恢复出来的文件叫 controlfile.bak cp /home/oracle/rmanbackup/controlfile.bak /u01/app/oracle/oradata/ORCL/control01.ctl cp /home/oracle/rmanbackup/controlfile.bak /u01/app/oracle/oradata/ORCL/control02.ctl cp /home/oracle/rmanbackup/controlfile.bak /u01/app/oracle/oradata/ORCL/control03.ctl路径按你SPFILESID.ORA里的实际配置改别照搬。4.2 启到 MOUNT 状态再恢复数据文件和归档日志控制文件就位后把数据库启动到 MOUNT 状态。这个状态介于 NOMOUNT 和 OPEN 之间实例起来了、控制文件读了但数据文件还没打开正好用来做恢复。sqlplus / as sysdba SQL startup mount;然后在 CommVault 里选择要恢复的数据文件和归档日志执行恢复。恢复顺序上数据文件和归档日志可以一起选RMAN 会按依赖关系处理。这一步的坑在于如果归档日志缺失恢复会卡在某个 SCN 上报错信息通常指向缺失的日志序列号。所以前面备份时归档日志的保留策略直接决定了这里能不能顺利过。4.3 重建 REDOLOG 并打开数据库数据文件和归档日志恢复完之后还不能直接 OPEN。因为在线重做日志可能已经不一致需要重建。做法是先以 MOUNT 状态执行alter database open resetlogs;但 resetlogs 之前要确认所有数据文件都恢复到了同一个 SCN。SQL recover database until cancel; SQL alter database open resetlogs;recover database until cancel让 RMAN 应用归档日志直到没有更多可用的然后open resetlogs重建重做日志并打开数据库。resetlogs 之后建议立刻做一次全备因为之前的备份链已经断了这是后悔药。注意resetlogs 是不可逆操作执行前确认数据文件、归档日志、控制文件三者版本一致否则可能丢数据。5. 几个让我翻过车的细节和一条验证习惯5.1 避坑与常见问题排查现象备份任务成功但恢复时找不到控制文件。原因NOCATALOG 模式下控制文件不会自动进备份流后备份处理的批处理没配或路径填错。 解决检查 default 子客户端“后备份处理”里的脚本绝对路径手动跑一次脚本确认能生成 controlfile.bak。现象安装 iDataAgent 后 CommCell 里看不到 Oracle 实例。原因/etc/hosts里 CommServer 或本机的主机名解析不对或者 Oracle 服务没停干净就装了。 解决两边/etc/hosts互相写入 IP 和主机名重装前确认 Oracle 进程全部停掉。现象恢复数据文件时报归档日志缺失。原因备份时归档日志删除策略太激进或者归档日志备份任务没跑成功。 解决调整归档保留窗口确认归档日志备份作业在数据文件备份之前完成。现象open resetlogs报 ORA-01194 或 ORA-01195。原因数据文件恢复的 SCN 不一致通常是漏恢复了某个数据文件或归档日志没应用完。 解决回到 MOUNT 状态重新执行recover database until cancel确认所有数据文件都在线后再 resetlogs。现象备份速度远低于预期。原因通道数设得过大导致 IO 争抢或者存储策略指向了慢速介质。 解决逐步调低通道数测试找到 IO 和并发的平衡点别一上来就拉满。5.2 恢复后强制做一次全备的习惯我现在的习惯是任何一次 resetlogs 之后不管多晚都强制跑一次全备再下班。原因是 resetlogs 把之前的备份链断掉了如果当晚再出故障你手上只有一份刚恢复完的、还没备份的库那才是真正的黑匣子。验证恢复是否真的成功不能只看 CommVault 作业状态是 Completed。要连进数据库查几个东西-- 确认数据库可读写 SQL select status from v$instance; -- 确认数据文件在线 SQL select file#, status from v$datafile; -- 确认归档日志模式 SQL archive log list; -- 查最近一次备份的 SCN SQL select max(sequence#) from v$archived_log;v$instance状态是 OPENv$datafile全部 ONLINE归档模式正常这三条过了才算恢复完成。从那以后我每次做完恢复演练都会把这几条查询跑一遍再收工希望帮到你。本文还有配套的精品资源点击获取
返回列表