简介:这份文档资料面向在Windows平台上运维Oracle数据库的IT人员,聚焦NetBackup(NBU)环境下的备份与恢复配置,适合具备一定数据库与存储基础的中高级运维工程师参考。资源包共1个doc文件,约2.64MB,内容以图文步骤形式呈现,便于按章节对照实操。文档围绕NBU Master Server、Oracle 10g数据库服务器与Falcon VTL三节点环境展开,涵盖主机名与IP映射准备、Master Server安装与存储设备配置、卷池与Catalog备份策略、Oracle企业版安装、NBU Client部署,以及完全备份与完全恢复的完整配置流程,并给出备份策略模板oracle.tpl的生成与调用方法。已有184人学习,可帮助读者快速搭建实验环境、理解备份策略与恢复选项的关键设置,并在数据丢失场景下按步骤完成还原验证,保障业务连续性。
1. 为什么今天还在翻这份 NBU 6.5 + Oracle 10g 的 Windows 配置文档
上周帮一个做制造业 ERP 的老哥排查备份失败,生产库是 Oracle 10g 跑在 Windows Server 2003 上,备份软件是 NetBackup 6.5,虚拟带库是 Falcon VTL。他问我:"这环境都老掉牙了,网上全是 NBU 10.x 和 Oracle 19c 的教程,我这份文档还能用吗?"我翻完他手里那份《NBU_windows_平台_oracle备份与恢复配置.doc》,答案是能用,而且比新教程更贴他的现场——因为这份文档从头到尾就是按"Master 6.5 on Win2003 + Oracle 10g client + Falcon VTL on Redhat"这套真实拓扑写的,主机名、IP、卷池命名、Catalog 冷备策略全是可抄的。
它解决的不是"怎么装最新版 NBU",而是"在一套已经跑起来、不能随便升级的老 Windows 环境里,把 Oracle 全备和全还原这条链路配通"。适合三类人:还在维护 Win2003/Win2008 + Oracle 10g/11g 的运维,需要给老系统补一份可复现的备份配置记录的人,以及想搞懂 NBU Oracle 策略里 tpl 模板到底怎么生成的人。下面我按这份文档的实际步骤拆,把每一步的参数含义、容易翻车的地方补上。
2. 环境拓扑与 NBU Master 安装:主机名映射和补丁顺序别搞反
2.1 三台机器的角色和 hosts 映射
这份文档给的拓扑很清晰,三台机器各司其职:
| 角色 | 主机名 | IP | 系统 |
|---|---|---|---|
| NBU Master Server | NBU | 192.168.1.200 | Windows Server 2003 |
| Oracle 数据库客户端 | Oracle | 192.168.1.50 | Windows Server 2003 + Oracle 10g |
| Falcon VTL | VTL | 192.168.1.100 | Redhat Linux 7.3.1 |
第一步不是装软件,是在三台机器的 hosts 文件里互相写映射。Windows 下路径是C:\Windows\System32\drivers\etc\hosts,Linux 下是/etc/hosts。这一步看着简单,但 NBU 的 EMM(Enterprise Media Manager)在解析存储设备和客户端时强依赖主机名反查,如果只写 IP 不写主机名,或者三台机器映射不一致,后面配置存储向导会卡在"无法解析设备"。
# Windows 三台机器 hosts 文件追加(用记事本或 echo 追加) 192.168.1.200 NBU 192.168.1.50 Oracle 192.168.1.100 VTL # Linux VTL 上同样追加 echo "192.168.1.200 NBU" >> /etc/hosts echo "192.168.1.50 Oracle" >> /etc/hosts echo "192.168.1.100 VTL" >> /etc/hosts逻辑说明:NBU Master 在添加客户端和存储设备时,会用主机名做唯一标识,IP 只是通信地址。参数上注意主机名大小写要和后面 NBU 里填的完全一致,Windows 主机名不区分大小写但 NBU 内部记录区分,建议统一用文档里的大写形式。改完 hosts 用ping NBU、ping Oracle、ping VTL三向验证,别只测单向。
2.2 Master Server 安装与设备驱动补丁
安装本身是向导式,但有两个点文档特意标了"不选"和"要补",这是血泪经验。
安装流程:运行安装程序选install server software,输入 License key 后勾选NetBackup Master Server。关键在下一步——不要勾选 Install LiveUpdate Agent。这个组件会尝试联网检查更新,在老内网环境里只会拖慢安装甚至报超时,对备份功能没有任何帮助。
装完主程序后必须补一个东西:设备驱动。安装文件在NetBackup_6.5_Winx86\Addons\NetBackupTapeDeviceDriverInstall.exe。为什么单独补?因为 NBU 6.5 主安装包里的磁带设备驱动是通用版,Falcon VTL 这类虚拟带库在 Windows 上需要更匹配的驱动才能被正确识别为磁带设备,否则存储配置向导里根本看不到 VTL 暴露出来的驱动器。
# 补丁安装(图形界面,命令行仅示意路径) cd NetBackup_6.5_Winx86\Addons NetBackupTapeDeviceDriverInstall.exe逻辑说明:这个 exe 会重新扫描并替换磁带设备驱动,装完建议重启一次 Master。参数上没什么可调的,但要注意安装顺序——先装 Master 主程序,再装驱动补丁,反过来会导致驱动被主程序覆盖。装完在设备管理器里确认 VTL 映射过来的磁带驱动器没有黄色感叹号。
2.3 EMM Server 确认
向导里会问 EMM Server 的位置。单 Master 环境下 EMM 就在本机,直接确认NBU即可。EMM 是 NBU 管理设备、卷、介质的管理服务,Catalog 备份和卷池都归它管。如果这里填错,后面创建卷池时会提示找不到 EMM 数据库。确认后继续,安装完成。
3. Master 端存储配置与卷池:oracle10 池和 Catalog 冷备怎么设
3.1 存储设备配置向导
Master 装完第一件事是让 NBU 认识存储。启动configure storage devices向导,它会自动搜索挂载的磁带设备和 VTL 暴露的驱动器。搜索完成后,向导会列出发现的设备,你需要把驱动器和机械手(robot)关联起来。
这里常见的翻车是:VTL 在 Linux 端配置了多个 LUN 映射,但 Windows Master 只认到一部分。原因通常是 Windows 的 HBA 驱动或者 VTL 端的 LUN masking 没配对。排查方法是在 Windows 磁盘管理里先确认能看到几个未知设备,再回 NBU 向导里比对数量。设备数量对不上,后面卷池指派磁带就会缺。
3.2 创建 oracle10 卷池并指派磁带
卷池(Volume Pool)是 NBU 里对磁带做逻辑分组的方式。文档要求新建一个名为oracle10的池,专门给 Oracle 备份用。这样做的好处是 Oracle 备份的磁带和 Catalog 备份、其他业务备份物理隔离,恢复时不会拿错带子。
操作路径:在 NBU 管理界面进入Media and Device Management→Media→Volume Pools,新建池命名oracle10。然后把 VTL 里已经配置好的磁带(逻辑卷)指派到这个池。指派时注意磁带的介质类型要和 VTL 暴露的类型一致,Falcon VTL 一般模拟 LTO 类型,选错类型会导致写入时直接报介质不匹配。
# 命令行方式查看和指派卷(在 Master 的 install_path\NetBackup\bin\admincmd 下) # 查看所有卷 vmquery -w # 把卷从 None 池移到 oracle10 池 vmchange -p oracle10 -m <介质ID>逻辑说明:vmquery -w列出当前所有卷及所属池,vmchange -p改池,-m指定介质 ID。参数上介质 ID 就是磁带标签,VTL 里通常已经预生成了。批量指派时写个循环脚本比手点快,但要注意别把 Catalog 要用的带子也划进 oracle10 池。
3.3 Catalog 冷备策略:为什么选 offline 且要两份磁带
Catalog 是 NBU 自己的数据库,记录着"哪次备份写到哪盘带子"。Catalog 丢了,带子里的数据就等于没有索引的黑匣子,恢复时根本不知道从哪盘读。所以文档要求单独配 Catalog 备份,方式选offline, cold catalog backup。
offline 冷备意味着备份 Catalog 时会短暂停止 NBU 的作业调度,保证 Catalog 数据一致。相比 online 热备,冷备更稳,代价是备份窗口内不能跑其他作业。文档还要求指派两份磁带,这是后悔药——Catalog 备份本身也可能写失败或磁带损坏,两份互为冗余。
操作路径:configure the catalog backup向导,选 offline cold 方式,指派至少两盘磁带。备份频率建议跟着 Oracle 全备走,比如每周一次全备就每周一次 Catalog 冷备。别把 Catalog 备份和 Oracle 备份塞进同一个卷池,混在一起恢复时容易误操作。
4. Oracle 客户端安装与 tpl 模板生成:备份策略的源头在这
4.1 Oracle 10g 企业版安装的两个关键选项
文档里 Oracle 安装部分有两个"不"和"统一",直接影响后面 NBU 能不能接管备份。
安装类型选"企业版",安装目录和全局数据库名用默认。到"指定备份和恢复选项"这一步,选择"不启用自动备份"。为什么?因为一旦启用 Oracle 自带的自动备份,它会和 NBU 的备份作业抢归档日志,导致 NBU 备份时找不到完整的归档链,恢复时缺日志。备份这件事交给 NBU 统一管,Oracle 自己别插手。
然后是口令,选"所有的帐户都使用同一个口令"。这不是偷懒,是 NBU 的 Oracle 策略在连接数据库执行备份脚本时,需要用一套凭据访问多个账户(sys、system、sysdba 等),口令不统一会导致 RMAN 脚本连接失败。生产环境当然可以更细,但这份文档的场景是内网单库,统一口令最省事。
4.2 NBU Client 安装
在 Oracle 这台机器上跑 NBU 安装程序,选install client software。填 Master Server 信息时填NBU(主机名),同样不装 Install LiveUpdate Agent。装完客户端,Oracle 这台机器才能被 Master 的策略纳管。
客户端装完要验证连通性:在 Master 上用bpps -a看进程,或者直接在 NBU 管理界面Host Properties→Clients里看 Oracle 是否在线。不在线先查 hosts 和防火墙,NBU 默认用 13724(PBX)和 13720/13782 等端口,老 Windows 防火墙经常拦。
4.3 客户端生成 oracle.tpl 模板
这是整份文档里最容易被跳过、但最关键的一步。NBU 的 Oracle 备份策略不是直接在 Master 上写脚本,而是先在客户端用Backup, Archive, and Restore界面生成一个模板文件oracle.tpl,Master 策略再引用它。
操作流程:在 Oracle 客户端运行Backup, Archive, and Restore,选要备份的 Oracle 数据库,运行备份策略向导。向导里依次设置:
- 目标数据库登录方式(用之前统一的口令)
- 归档日志设置(归档路径、是否备份后删除)
- 备份方式和初始化文件位置(pfile/spfile 路径)
- 输入将在 Master 上创建的策略名称
- 保存模板名为
oracle.tpl
# oracle.tpl 生成后一般位于客户端 NBU 安装目录下 # 典型路径(供核对,实际以向导输出为准) C:\Program Files\VERITAS\NetBackup\DbExt\Oracle\oracle.tpl逻辑说明:这个 tpl 里封装了 RMAN 脚本模板、数据库连接信息、归档日志处理逻辑。Master 策略引用它,等于把"怎么备这个库"的知识放在客户端侧维护。参数上归档日志设置里的"备份后删除"要谨慎——如果 NBU 备份失败但日志被删了,恢复链就断了。稳妥做法是先备份成功再删,或者保留最近 N 天。
5. Master 策略配置与完全还原:从建策略到 Activity Monitor 验证
5.1 创建 Oracle 类型备份策略
回到 Master,创建备份策略。类型选Oracle,这是 NBU 专门为 Oracle 提供的策略类型,底层会调用客户端的 tpl 模板走 RMAN 通道。
策略里要设的几项:
- 选择要备份 Oracle 的客户端(勾 Oracle 这台)
- 选择备份方式(全备/增量,文档场景是完全备份)
- 备份周期和数据保留期限(保留期决定磁带什么时候能复用,别设太短)
- 备份窗口(避开业务高峰)
- 在
backup selections里选客户端生成的oracle.tpl
配完先别急着定时,手动跑一次测试。手动测试能过,才说明 hosts、客户端连通、tpl 路径、Oracle 凭据这一整条链路是通的。
5.2 手动测试与常见失败点
手动测试在策略上右键Manual Backup。跑起来后去Activity Monitor看作业状态。如果失败,按这个顺序查:
- 客户端是否在线(Host Properties 里看)
- tpl 路径在客户端是否存在、Master 是否能读到
- Oracle 凭据是否正确、监听是否正常
- 归档日志路径是否有权限
文档里写"策略备份成功",但实际现场第一次跑十有八九会卡在凭据或归档路径上。别慌,Activity Monitor 的 job detail 里会给出具体报错行,照着改。
5.3 完全还原配置
还原走的是客户端Backup, Archive, and Restore里的恢复向导。选要恢复的 Oracle 数据库,定义恢复操作选项,关键在"数据库状态选项"——选择在还原/恢复前将数据库关闭,还原/恢复完成后启动数据库。这一步保证恢复时数据库不在运行状态,避免文件被占用导致恢复失败。
还要设置数据库初始化文件的路径,让 RMAN 恢复后能按正确的 pfile/spfile 启动实例。向导走完选"马上运行还原/恢复",然后回 Master 的Activity Monitor看 Restore 作业在跑。跑完验证数据——文档说"测试数据还原成功",实际验证建议查几张关键表的数据量和最新时间戳,别只看作业状态是绿色。
-- 恢复后验证示例:查关键表的行数和最新时间 SELECT COUNT(*) FROM erp_order; SELECT MAX(create_time) FROM erp_order;逻辑说明:作业成功只代表文件恢复了,不代表数据可用。查行数和时间戳能确认恢复到的时间点是否符合预期。参数上MAX(create_time)能告诉你恢复到了哪个时间点的数据,和你的恢复目标比对。
6. 避坑与排查:这份老文档里没写但现场一定会遇到的五件事
6.1 现象:存储配置向导搜不到 VTL 驱动器
原因:Windows Master 的 HBA 驱动和 VTL 端 LUN masking 不匹配,或者设备驱动补丁没装。解决:先装NetBackupTapeDeviceDriverInstall.exe,重启后在设备管理器确认驱动器无感叹号,再回向导搜索。还搜不到就查 VTL 端映射了几个 LUN,和 Windows 磁盘管理里看到的数量比对。
6.2 现象:Catalog 备份报"介质不可用"
原因:Catalog 备份指定的磁带被划到了 oracle10 池,或者磁带类型和 VTL 模拟类型不一致。解决:给 Catalog 单独建一个池(比如catalog),指派类型匹配的磁带,别和 Oracle 备份混用。两份磁带要来自不同物理位置或不同 VTL LUN,否则同时坏。
6.3 现象:Oracle 备份作业启动后立刻失败,报 RMAN 连接错误
原因:Oracle 账户口令不统一,或者 NBU 客户端服务账户没有访问 Oracle 的权限。解决:确认安装时选了"所有账户同一口令",检查 NBU Client 服务(NetBackup Client Service)的登录账户是否有 Oracle 目录权限。老 Windows 上服务默认用 Local System,可能需要改成 Oracle 安装账户。
6.4 现象:恢复后数据库起不来,报控制文件或日志缺失
原因:归档日志在备份后被删了,或者恢复时没选"恢复前关闭数据库"。解决:检查 tpl 里归档日志的删除策略,改成备份成功后延迟删除;恢复向导里务必勾选关闭/启动数据库选项。如果日志已经丢了,只能恢复到最近一次全备的时间点,中间数据找不回。
6.5 现象:Activity Monitor 里作业一直排队不跑
原因:备份窗口设置太窄,或者存储单元(Storage Unit)被其他作业占满。解决:检查策略的备份窗口是否覆盖当前时间,检查存储单元的最大并发作业数。老 NBU 6.5 默认并发数低,VTL 性能够的话可以调高,但别超过 VTL 实际能承受的驱动器数。
7. 把 tpl 模板当版本管理对象:一个我坚持了多年的习惯
这份文档里oracle.tpl只在客户端生成一次就被 Master 引用了,但实际运维中,数据库结构、归档路径、保留策略都会变,tpl 也需要跟着更新。我踩过的最大一次坑是:某次改了归档日志路径,只改了 Oracle 参数没重新生成 tpl,结果 NBU 备份还在按老路径找归档,连续三天备份失败没人发现,直到要做恢复演练才暴露。
从那以后我每次动 Oracle 归档相关配置,都强制走一遍"重新生成 tpl → Master 策略重新引用 → 手动测试备份 → 手动测试还原"这四步,一步不省。具体做法是把 tpl 文件纳入版本管理,每次改动前先备份一份带日期的副本:
# 在 Oracle 客户端备份 tpl(Windows 下用 copy) copy "C:\Program Files\VERITAS\NetBackup\DbExt\Oracle\oracle.tpl" "D:\backup_config\oracle_%date:~0,4%%date:~5,2%%date:~8,2%.tpl"逻辑说明:%date%取系统日期,拼成oracle_20240101.tpl这样的文件名。参数上注意 Windows 日期格式因区域设置而异,如果%date:~0,4%取不到年份,先用echo %date%看实际格式再调整截取位置。Linux 客户端用cp加date +%Y%m%d更省心。
验证方法上,我一般每季度做一次恢复演练,不是真恢复生产库,而是在测试库上按这份文档的还原流程走一遍,确认 Catalog、磁带、tpl、Oracle 凭据这条链路都活着。演练时重点看两个指标:恢复耗时是否在可接受窗口内,恢复后的数据时间点是否符合预期。这两个指标比作业状态更能说明备份到底有没有用。
还有一个细节:这份文档的 Catalog 冷备要求两份磁带,我在实际环境里会再加一条——把其中一份 Catalog 备份的磁带定期导出到离线介质。VTL 再稳也是在线设备,真遇到 VTL 整体故障,两份都在 VTL 里等于没有冗余。离线那份才是最后的后悔药。
希望帮到你。
本文还有配套的精品资源,点击获取