DBLOG
» WTF
Toggle navigation
DBLOG
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
About Me
归档
标签
7、NetBackup (NBU) 恢复
无
2025-08-29 00:07:55
5
0
0
admin
[TOC] # NetBackup 恢复 Oracle 数据库操作手册 ## 1. 前提条件 在执行恢复之前,请确认以下条件: * 已安装并正确配置 **NetBackup Oracle Agent (NB\_ORA)**。 * 目标数据库服务器上,NetBackup 客户端服务正常运行。 * 已配置 Oracle 的 **RMAN 与 NetBackup 集成**(即 `SBT_LIBRARY` 指向 NetBackup 媒体管理库)。 * 确认恢复所需的备份(全库/归档日志/控制文件等)在 NetBackup 的 Catalog 中可见。 * 数据库处于相应的恢复状态(MOUNT 或 NOMOUNT)。 --- ## 2. 常见恢复场景 ### 2.1 恢复控制文件 当控制文件丢失时,需要从 NBU 恢复: ```sql rman target / run { allocate channel c1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; restore controlfile from autobackup; alter database mount; } ``` > ⚠️ 注意:`libobk.so64` 路径依操作系统和 NBU 版本不同而可能有所不同。 --- ### 2.2 恢复数据文件(单表空间/全库) 示例:恢复 `USERS` 表空间的数据文件 ```sql rman target / run { allocate channel c1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; sql 'alter tablespace USERS offline immediate'; restore tablespace USERS; recover tablespace USERS; sql 'alter tablespace USERS online'; } ``` 全库恢复: ```sql rman target / run { allocate channel c1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; restore database; recover database; } ``` --- ### 2.3 恢复归档日志 当需要将数据库恢复到某个时间点,归档日志必不可少: ```sql run { allocate channel c1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; restore archivelog from time "to_date('2025-08-28 22:00:00','yyyy-mm-dd hh24:mi:ss')"; } ``` --- ### 2.4 时间点恢复(PITR) 恢复到某个时间点: ```sql run { allocate channel c1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; set until time "to_date('2025-08-28 21:30:00','yyyy-mm-dd hh24:mi:ss')"; restore database; recover database; alter database open resetlogs; } ``` --- ## 3. RMAN 与 NetBackup 的配置说明 1. **Oracle NetBackup 环境变量** 在数据库主机上设置: ```bash export NB_ORA_SERV=nbu-master export NB_ORA_CLIENT=db-hostname ``` 2. **SBT\_LIBRARY 配置** 路径一般为: * AIX: `/usr/openv/netbackup/bin/libobk.a64` * Linux x86\_64: `/usr/openv/netbackup/bin/libobk.so64` 3. **NetBackup Policy 配置** * Policy Type: `Oracle` * Client: 数据库服务器 * Schedule: 定义全库/归档日志备份计划 --- ## 4. 故障排查 * **检查 RMAN 与 NBU 连接是否正常** ```sql rman target / run { allocate channel t1 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=db-hostname)'; release channel t1; } ``` 如果无报错说明 RMAN 可以正常调用 NBU。 * **常见错误** * `ORA-19511`:通常为 NBU 没有找到备份镜像或权限问题。 * `ORA-19507`:表示备份集不存在,需确认 Catalog 与 NBU 镜像。 * `ORA-27211: failed to load Media Management Library`:确认 `libobk.so64` 是否存在且路径正确。 --- ## 5. 完整恢复流程示例 假设场景:数据库完全损坏,需要从 NetBackup 进行全库恢复到某个时间点。 1. 启动实例到 NOMOUNT: ```sql startup nomount; ``` 2. 恢复控制文件: ```sql restore controlfile from autobackup; alter database mount; ``` 3. 恢复数据库: ```sql set until time "to_date('2025-08-28 21:30:00','yyyy-mm-dd hh24:mi:ss')"; restore database; recover database; ``` 4. 打开数据库: ```sql alter database open resetlogs; ```
上一篇:
6、重放相关
下一篇:
7、drop 后如何恢复
0
赞
5 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网