一、 准备工作

1.  DBA

  • 恢复服务器安装与原库相同版本的数据库软件、NBU客户端
  • 双向开通到NBU备份服务器的1556、13724、13720、13782、13790端口的防火墙策略(应该只要1556和13724,但为避免还原时出现其他异常,建议都开)
  • /etc/hosts文件添加NBU备份服务器主机名及原库主机名,ping 主机名测试能否解析成功
  • 确保恢复服务器磁盘空间足够

2. NBU管理员

  • /etc/hosts文件添加待恢复服务器主机名,ping 主机名测试能否解析成功,若不成功可使用bpclntcmd -clear_host_cache清除nbu端dns缓存
  • 配置恢复授权,确保备份机器和还原机器都在列表中,且允许还原

Host Properties->Mater server->Client Attributes

  • 若是异机恢复,需在NBU给备份机器和恢复机器增加异机恢复的权限
cd /usr/openv/netbackup/db/altnames
touch 主机名
  • 检查异机恢复参数
NBUInstallPath/NetBackup/bin/admincmd/bpgetconfig | grep "DISALLOW_CLIENT"
#输出
DISALLOW_CLIENT_LIST_RESTORE = NO
DISALLOW_CLIENT_RESTORE = NO#若如上两个参数为YES,则表示禁止进行异机恢复,需要将两个参数改成NO,为保证参数生效,建议修改后重启主服务器上的NBU服务
NBUInstallPath/NetBackup/bin/bp.kill_all
NBUInstallPath/NetBackup/bin/bp.start_all

二、 数据恢复

以下均在待恢复服务器操作

1. 检查备份文件情况

/usr/openv/netbackup/bin/bplist -C iZwz94g9fehswlnzd19jv2Z -t 4 -b -l -R /
# -C后跟备份库主机名;-t后跟还原类型,4是oracle标志;-b指列出备份文件的日期和时间;-l指列出备份文件的详细信息;-R以递归的方式显示子目录。

  • c-和cntrl开头的是控制文件自动备份,包含参数文件和控制文件
  • al开头的是归档日志备份
  • bk开头的是数据库备份

2. Oracle用户执行oracle_link

Linux/Unix需要在netbackup/bin路径下执行oracle_link,以便rman调用nbu接口进行读取数据备份信息

/usr/openv/netbackup/bin/oracle_link

3. 手工创建参数文件

测试使用控制文件备份中恢复的spfile可能遇到在restore数据库时无法找到正确的备份文件路径等难以排查的问题,NBU供应商建议手工创建参数文件,优先恢复数据文件,待数据可读后如果有必要再恢复原来的参数文件(一般没有必要,只要恢复出业务需要的数据即可)。

检查参数文件中的各路径位置,确保目录已存在,或修改参数文件指定新路径。

cd $ORACLE_HOME/dbs
vi inittmp.ora
#内容如下
*.audit_file_dest='/data/prd/oracle/database/admin/ORCL/adump'
*.compatible='12.1.0.2.0'
*.control_files='/data/prd/oracle/database/oradata/ORCL/controlfile/o1_mf_h9bx082j_.ctl','/data/prd/oracle/database/fast_recovery_area/ORCL/controlfile/o1_mf_h9bx08cr_.ctl'
*.db_block_size=8192
*.db_file_multiblock_read_count=16
*.db_create_file_dest='/data/restore/'
*.db_recovery_file_dest='/data/restore/'
*.db_recovery_file_dest_size=500g
*.enable_pluggable_database=ture
*.db_name='HYBRID'
*.log_archive_dest_1='location=/data/arch'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.processes=1500
*.remote_login_passwordfile='exclusive'
*.sessions=1655
*.sga_max_size=4G
*.sga_target=4G
*.pga_aggregate_limit=3G
*.pga_aggregate_target=1G
*.undo_management='AUTO'
undo_tablespace='UNDOTBS1'
*.diagnostic_dest='/data/prd/oracle/database'

利用pfile启动数据库到nomount状态

startup nomount pfile='/data/prd/oracle/database/12.1.0.2/ORCL/dbs/inittmp.ora'

4. 恢复控制文件

注意NB_ORA_CLIENT后是备份库的主机名,控制文件备份一般选晚于目标时间点并且离它最近的即可。

rman target /Set DBID=2334928137;
run{
allocate channel ch00 type 'SBT_TAPE';
send 'nb_ora_serv=nbu01';
send 'nb_ora_client=iZwz94g9fehswlnzd19jv2Z';
restore controlfile from '/c-2334928137-20200513-09';
release channel ch00;
}

启动数据库到mount状态

alter database mount;

检查物理文件位置,确保目录已存在,或在恢复时指定新路径

select name from v$datafile;
select name from v$tempfile;
select member from v$logfile;
archive log list

5. 恢复数据文件

本文以恢复到指定时间点、不同数据文件目录为例

rman target /run {
ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
send 'nb_ora_serv=nbu01';
send 'nb_ora_client=iZwz94g9fehswlnzd19jv2Z';
set newname for database to '/data/restore/%b';
set until time "to_date('2020-05-13 14:00:00','yyyy-mm-dd hh24:mi:ss')";
restore database;
switch datafile all;
recover database;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}

open数据库

alter database open resetlogs;
select status from v$instance;

6. 检查是否恢复到要求时间点

基于时间点的还原并不一定准确,可能会有10分钟以内误差。

RMAN> list incarnation of database;using target database control file instead of recovery catalog
List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       HYBRID   2334928137       PARENT  1          14-APR-20
2       2       HYBRID   2334928137       CURRENT 11836309   13-MAY-20RMAN> select scn_to_timestamp(11836309) from dual;SCN_TO_TIMESTAMP(11836309)
-------------------------------
13-MAY-20 01.50.11.000000000 PM

三、 报错小结

1. 报错1

RMAN> run{
2> allocate channel ch00 type 'SBT_TAPE';
3> send 'nb_ora_serv=nbu01';
4> send 'nb_ora_client=iZwz9bqyoktgse85mhpwd8Z';
5> restore controlfile from '/c-2334928137-20200511-09';
6> release channel ch00;
7> }
using target database control file instead of recovery catalog
allocated channel: ch00
channel ch00: SID=1150 device type=SBT_TAPE
channel ch00: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
sent command to channel: ch00
sent command to channel: ch00
Starting restore at 11-MAY-20
released channel: ch00
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/11/2020 22:10:12
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece

解决方法:nb_ora_client参数后应该填备份服务器名而非还原服务器名

2. 报错2

RMAN> run {
2> ALLOCATE CHANNEL CH1 type 'SBT_TAPE';
3> send 'NB_ORA_CLIENT=iZwz94g9fehswlnzd19jv2Z,NB_ORA_SERV=nbu01';
4> restore spfile from '/c-2334928137-20200511-09';
5> RELEASE CHANNEL CH1;
6> }
using target database control file instead of recovery catalog
allocated channel: CH1
channel CH1: SID=1150 device type=SBT_TAPE
channel CH1: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
sent command to channel: CH1
Starting restore at 11-MAY-20
channel CH1: restoring spfile from AUTOBACKUP /c-2334928137-20200511-09
released channel: CH1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/11/2020 22:19:04
ORA-19870: error while restoring backup piece /c-2334928137-20200511-09
ORA-19507: failed to retrieve sequential file, handle="/c-2334928137-20200511-09", parms=""
ORA-27029: skgfrtrv: sbtrestore returned error
ORA-19511: non RMAN, but media manager or vendor specific failure, error text:
Failed to open backup file for restore.

解决方法:测试时实际遇到的问题是还原服务器主机名配置错误,有许多情况可能导致该报错,还原前务必按照第一步中准备项检查清楚。参考链接:https://www.modb.co/db/13817 (13782端口实际应该是不需要的)

3. 报错3

RMAN> run {
2> ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
3> ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
4> send 'nb_ora_serv=nbu01';
5> send 'nb_ora_client=iZwz94g9fehswlnzd19jv2Z';
6> set until time "to_date('2020-05-08 17:00:00','yyyy-mm-dd hh24:mi:ss')";
7> restore database;
8> recover database;
9> RELEASE CHANNEL CH1;
10> RELEASE CHANNEL CH2;
11> }
allocated channel: CH1
channel CH1: SID=1150 device type=SBT_TAPE
channel CH1: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
allocated channel: CH2
channel CH2: SID=6 device type=SBT_TAPE
channel CH2: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
sent command to channel: CH1
sent command to channel: CH2
sent command to channel: CH1
sent command to channel: CH2
executing command: SET until clause
Starting restore at 13-MAY-20
Starting implicit crosscheck backup at 13-MAY-20
Finished implicit crosscheck backup at 13-MAY-20
Starting implicit crosscheck copy at 13-MAY-20
Finished implicit crosscheck copy at 13-MAY-20
searching for all files in the recovery area
cataloging files...
cataloging done
released channel: CH1
released channel: CH2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/13/2020 00:16:30
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 8 found to restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN> exit

解决方法:测试时的解决方法为使用手工创建的参数文件而非控制文件中恢复的spfile,也查到有很多别的问题可能导致此类报错,详情可在MOS中搜索。

4. 报错4

RMAN> run {
2> ALLOCATE CHANNEL CH1 TYPE 'SBT_TAPE';
3> ALLOCATE CHANNEL CH2 TYPE 'SBT_TAPE';
4> send 'nb_ora_serv=nbu01-in';
5> send 'nb_ora_client=iZwz94g9fehswlnzd19jv2Z';
6> set newname for database to '/data/restore/%b';
7> set until time "to_date('2020-12-01 10:00:00','yyyy-mm-dd hh24:mi:ss')";
8> restore database;
9> switch datafile all;
10> recover database;
11> RELEASE CHANNEL CH1;
12> RELEASE CHANNEL CH2;
13> }allocated channel: CH1
channel CH1: SID=1710 device type=SBT_TAPE
channel CH1: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
allocated channel: CH2
channel CH2: SID=5 device type=SBT_TAPE
channel CH2: Veritas NetBackup for Oracle - Release 7.7.3 (2016051915)
sent command to channel: CH1
sent command to channel: CH2
sent command to channel: CH1
sent command to channel: CH2
executing command: SET NEWNAME
executing command: SET until clause
Starting restore at 25-DEC-20
released channel: CH1
released channel: CH2RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 12/25/2020 15:20:15
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore

解决方法:使用的控制文件过新,已无欲恢复时间点备份记录。控制文件备份一般选晚于目标时间点并且离它最近的即可。

5. 报错5

SQL> alter database open resetlogs;alter database open resetlogs
*
ERROR at line 1:
ORA-00344: unable to re-create online log '/data/oracle/oradata/pa/redo01.log'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

解决方法:redo日志所在目录未创建或无权限。创建对应目录并授权,或者修改redo文件目录

6. 报错6

SQL> alter database open RESETLOGS;alter database open RESETLOGS
*
ERROR at line 1:
ORA-00392: log 3 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 3 thread 1: '/data/oracle/oradata/pa/redo03.log'

解决方法

SQL> select group#,thread#,status from v$log;GROUP#    THREAD# STATUS
---------- ---------- ---------------1          1 CLEARING2          1 CLEARING5          1 CLEARING4          1 CLEARING3          1 CLEARING_CURRENTSQL> alter database clear logfile group 3;
Database altered.SQL> select group#,thread#,status from v$log;GROUP#    THREAD# STATUS
---------- ---------- ----------------1          1 CLEARING2          1 CLEARING5          1 CLEARING4          1 CLEARING3          1 CURRENTSQL>  alter database open RESETLOGS;
Database altered.

参考

https://www.modb.co/db/13817

NBU Rman异机恢复Oracle_Eliott_Chen的博客-CSDN博客

RMAN异机恢复——备份集权限问题_数据库技术_Linux公社-Linux系统门户网站

ORA-00392: log 7 of thread 1 is being cleared, operation not allowed - DBACLASS DBACLASS

Common Causes for RMAN-06023 and RMAN-06026 (文档 ID 1366610.1)

RMAN RESTORE FAILS WITH RMAN-06023 ALTHOUGH BACKUPS ARE AVAILABLE (文档 ID 965122.1)

RMAN-6026 RMAN-6023 when restoring to new host (文档 ID 1300586.1)

ALTER DATABASE OPEN RESETLOGS fails with ORA-00392 (文档 ID 1352133.1)

NBU 异机恢复Oracle操作步骤相关推荐

  1. nbu还原oracle,NBU异机恢复ORACLE成功版本

    经过<NBU异机恢复ORACLE(遇到的问题) >,成功版本如下 源端:oracle10grac1 oracle10grac2 RAC+ASM 目标端:ora10 master serve ...

  2. 【转载】NBU异机恢复oracle

    通过NBU将Oracle恢复到异机上... 2 1.1       备份任务检查: 2 1.2       数据库空间检查... 2 1.3       恢复服务器(testdb)软件安装:... 3 ...

  3. 爱数异机恢复Oracle实例

    1 目标mount 2 删除闪存日志 3 只能同平台 4 异机恢复实例名保持一直

  4. oracle nbu异机恢复,通过NBU进行Oracle异机恢复的实验操作步骤

    本文描述的是使用VERITAS的NBU备份软件,将备份的Oracle数据库数据,恢复到另一台服务器上. 整个恢复过程的时间,与备份数据库的数据量大小相关.与恢复前的准备工作相关,包括如下几个过程: 这 ...

  5. oracle12c 异机恢复,Oracle 11g RMAN 异机恢复

    --查看归档日志备份的 SCN,决定介质恢复的SCN list backup of archivelog all; BS Key  Size       Device Type Elapsed Tim ...

  6. oracle rman异机恢复

      Oracle源主机 Oracle目标主机 主机平台 CentOS6.2(final) CentOs6.2(FInal) 主机名 vick rman IP地址 192.168.1.11 192.16 ...

  7. Oracle 运维篇+RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要

    说明:本文为Oracle RAC集群转单实例/RMAN异机恢复/RMAN迁移/RMAN备份恢复操作概要方便用户查阅 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 说 ...

  8. nbu恢复mysql_使用NBU进行oracle异机恢复

    windows平台的异机恢复,目录不同 1.异机环境准备 安装oracle介质 安装nbu客户端 在异机主机的host文件中添加nbu server主机和原主机信息 2.恢复spfile文件 C:\& ...

  9. linux dump命令 异机,Oracle 11.2.0.4 从单实例,使用RMAN 异机恢复到RAC

    Oracle 11.2.0.4从单实例,使用RMAN异机恢复到RAC 注意: (1)迁移的2个db版本版本要一致.包括小版本. (2)RMAN异机恢复的时候,db_name必须相同.如果说要想改成其他 ...

最新文章

  1. 《iOS9开发快速入门》——导读
  2. python parser count_Python分析哪座城市小吃最好吃
  3. oracle 数据库问题:“ORA-01922: 必须指定 CASCADE 以删除...“,原因及解决办法
  4. python timestamp转string_Python仿真区块链【含源码】
  5. php 正则 回溯,PHP正则匹配绕过
  6. SqlServer-COMPUTE BY
  7. android超级管理员权限作用,Android获取超级管理员权限的实现
  8. c语言定义int 输出4386,C语言 · 矩阵乘法
  9. eclipse导入Java源码
  10. plc原理及应用_一年只一次,百篇电工+PLC技术资料大合集,不看真的亏!
  11. 2021中青杯数学建模A题 (论文+代码) 超详细
  12. python爬取花瓣网图片
  13. 蓝牙4.0 For IOS
  14. perl python文本处理_Perl 调用R分词进行文本数据分析
  15. 系统设定工具与硬件侦测
  16. 【web前端开发 | CSS】页面布局之盒子模型
  17. Activity子流程——嵌入式流程
  18. 将verilog文件转化为bsf文件
  19. 建造者模式(Builder Pattern)【创建型】
  20. 10016 dcom

热门文章

  1. 云服务器维护中,服务器维护中什么意思
  2. 杭电信工--大数据期末考试试题
  3. 【模拟IC】电荷泵基础2(On-chip High-Voltage Generator Design)
  4. 【Matlab编程】新手入门的第一天
  5. 树莓派4B安装ubuntu18.04+ROS一条龙教程(手把手,新手推荐)
  6. uPort:去中心化的身份系统试用
  7. iOS App内语言切换(国际化)
  8. 上传ftp工具,细数5款很好用的上传ftp工具
  9. EMS、智慧能源管理、物联网、双碳、建筑用能、能耗统计、能源流向、损耗分析、考核分析、班组用能、水电数据、能耗分析、零碳园区、碳汇管理、工艺优化分析、用能诊断、计量仪表、用能预警、配电、供水、冷热源
  10. 【青铜到王者】算法晋级之路