DBLOG
» WTF
Toggle navigation
DBLOG
主页
1、用户
2、各种方案
3、备份恢复
4、表空间相关
5、OGG
6、文件管理
7、常见故障分析
8、DG
9、集群相关
About Me
归档
标签
8、NetBackup (NBU) 异机恢复
无
2025-08-29 00:27:27
6
0
0
admin
[TOC] * **全库异机恢复(同版本 Oracle)** * **全库异机恢复(时间点恢复)** * **单表空间异机恢复** * **部分数据文件异机恢复** * **归档日志恢复到异机库** * **控制文件丢失的异机恢复** * **克隆恢复(duplicate database with NBU)** 我帮你把常见的异机恢复模式都整理出来: --- # NetBackup (NBU) Oracle 异机恢复操作手册 ## 1. 前提条件 * 异机环境安装相同版本的 **Oracle 软件**,并已配置 `$ORACLE_HOME`, `$ORACLE_SID`。 * NetBackup 客户端已在新机器上安装,确认能访问 **Master/Media Server**。 * 异机主机名已配置到 NetBackup Policy 或作为 **alternate client restore**。 * 保证 `libobk.so64` 在 `$ORACLE_HOME/lib/` 下已正确软链接到 NBU 库。 --- ## 2. 常用 NBU 命令 ### 2.1 查看源库备份 ```bash # 查看源库过去48小时的全库/归档备份 bpimagelist -client source-db -hoursago 48 -d 08/28/25 00:00:00 -e 08/29/25 23:59:59 ``` ### 2.2 异机恢复时指定客户端 ```bash # 用 -C 指定源客户端,-D 指定目标异机客户端 bplist -C source-db -D target-db -t 4 -s 08/28/25 00:00:00 -e 08/29/25 23:59:59 -R / ``` ### 2.3 恢复归档日志到异机 ```bash bprestore -C source-db -D target-db -t 4 -s 08/28/25 00:00:00 -e 08/29/25 23:59:59 -R /u01/app/oracle/arch ``` --- ## 3. RMAN + NBU 异机恢复模式 ### 3.1 异机全库恢复(最新 SCN) ```sql startup nomount; 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=target-db,NB_ORA_POLICY=OracleBackup)'; restore controlfile from autobackup; } alter database mount; 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=target-db)'; restore database; recover database; } alter database open resetlogs; ``` --- ### 3.2 异机全库恢复(指定时间点 PITR) ```sql startup mount; 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=target-db)'; 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.3 异机恢复单表空间 ```sql startup mount; 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=target-db)'; sql 'alter tablespace USERS offline immediate'; restore tablespace USERS; recover tablespace USERS; sql 'alter tablespace USERS online'; } ``` --- ### 3.4 异机恢复部分数据文件 ```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=target-db)'; restore datafile 5; recover datafile 5; } ``` --- ### 3.5 异机恢复归档日志 ```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=target-db)'; restore archivelog from time "to_date('2025-08-28 20:00:00','yyyy-mm-dd hh24:mi:ss')" until time "to_date('2025-08-28 23:00:00','yyyy-mm-dd hh24:mi:ss')"; } ``` --- ### 3.6 异机控制文件丢失恢复 ```sql startup nomount; 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=target-db)'; restore controlfile from autobackup; } alter database mount; 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=target-db)'; restore database; recover database; } alter database open resetlogs; ``` --- ### 3.7 异机克隆数据库(duplicate) 用于测试/开发环境复制一套完整数据库。 ```sql rman target sys/password@source-db auxiliary sys/password@target-db 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=source-db)'; allocate auxiliary channel c2 type 'sbt_tape' parms 'SBT_LIBRARY=/usr/openv/netbackup/bin/libobk.so64, ENV=(NB_ORA_SERV=nbu-master,NB_ORA_CLIENT=target-db)'; duplicate target database to clone-db; } ``` --- ## 4. 故障排查 * **异机恢复时报 ORA-19511 找不到镜像** → 确认使用了 `-C source-db -D target-db` 参数,NBU 允许 cross-client restore。 * **异机恢复时报 ORA-27211** → 确认 `libobk.so64` 链接正确,`LD_LIBRARY_PATH` 包含 `$ORACLE_HOME/lib`。 * **部分归档缺失** → 可使用 `recover database noredo` + `resetlogs` 打开库。
上一篇:
7、回滚段相关的信息
下一篇:
8、truncate后如何处理
0
赞
6 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网