Windows2014使用NBU备份实现Oracle11g本地恢复和异地恢复

主机名

IP

角色

环境配置

Win-126

192.168.0.126

业务数据库

安装完整的oracle11G数据库和实例

Win-NBU

192.168.0.127

NBU服务器

服务端不需要安装数据库

Win-128

192.168.0.128

异机恢复数据库

oracle11G软件不需要安装数据库实例

环境准备

修改主机名字,关闭防火墙,机器内存高于10G

配置号hosts文件通过ping 主机名都能够互相ping通

nbu备份mysql配置 nbu备份oracle数据库_服务器

1.安装NBU备份软件(Win-NBU)

已管理员身份运行

nbu备份mysql配置 nbu备份oracle数据库_运维_02


nbu备份mysql配置 nbu备份oracle数据库_服务器_03


nbu备份mysql配置 nbu备份oracle数据库_数据文件_04


nbu备份mysql配置 nbu备份oracle数据库_数据文件_05


nbu备份mysql配置 nbu备份oracle数据库_运维_06


nbu备份mysql配置 nbu备份oracle数据库_数据文件_07


nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_08

2.配置NBU存储单元(Win-NBU)

nbu备份mysql配置 nbu备份oracle数据库_服务器_09


nbu备份mysql配置 nbu备份oracle数据库_服务器_10


nbu备份mysql配置 nbu备份oracle数据库_数据文件_11

nbu备份mysql配置 nbu备份oracle数据库_服务器_12

nbu备份mysql配置 nbu备份oracle数据库_数据文件_13

3.配置NBU客户端(Win-126)

1.更改数据库为归档模式

查看归档是否开启

archive log list;

nbu备份mysql配置 nbu备份oracle数据库_服务器_14


开启归档

shutdown immediate;

startup mount;

alter database archivelog; 开启归档模式

alter database open;

nbu备份mysql配置 nbu备份oracle数据库_运维_15


2.安装NBU客户端

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_16


nbu备份mysql配置 nbu备份oracle数据库_服务器_17


nbu备份mysql配置 nbu备份oracle数据库_运维_18


nbu备份mysql配置 nbu备份oracle数据库_运维_19


nbu备份mysql配置 nbu备份oracle数据库_服务器_20

3.修改NBU rman 备份脚本

C:\Program Files\Veritas\NetBackup\DbExt\Oracle\Samples\rman

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_21


nbu备份mysql配置 nbu备份oracle数据库_运维_22

4.NBU服务端新建备份策略备份客户端数据库(Win-NBU)

nbu备份mysql配置 nbu备份oracle数据库_数据库_23


nbu备份mysql配置 nbu备份oracle数据库_运维_24


nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_25


nbu备份mysql配置 nbu备份oracle数据库_运维_26


nbu备份mysql配置 nbu备份oracle数据库_运维_27

选择NBU rman备份脚本

nbu备份mysql配置 nbu备份oracle数据库_运维_28


nbu备份mysql配置 nbu备份oracle数据库_服务器_29


nbu备份mysql配置 nbu备份oracle数据库_数据文件_30


收到发起备份策略

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_31


查看备份状态

nbu备份mysql配置 nbu备份oracle数据库_服务器_32

5.本地恢复数据库(Win-126)

1.破坏数据

关闭数据

shutdown immediate;

nbu备份mysql配置 nbu备份oracle数据库_数据库_33


删除所有数据文件

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_34


2.恢复数据

NBU查看Oracle备份

cd C:\Program Files\Veritas\NetBackup\bin

bplist.exe -C win-126 -t 4 -R -I /

nbu备份mysql配置 nbu备份oracle数据库_数据文件_35


强制关库

shutdown abort;

数据库开启到nomount状态

startup nomount;

nbu备份mysql配置 nbu备份oracle数据库_服务器_36

恢复控制文件

rman target / 连接到ORCL实例

RMAN> run {
 allocate channel ch00 type sbt_tape;
 restore controlfile from ‘cntrl_14_1_1131666152’;
 release channel ch00;
 }

nbu备份mysql配置 nbu备份oracle数据库_数据文件_37

恢复数据文件(需要关闭数据库开启到mount状态)

shutdown immediate;
 startup mount;

nbu备份mysql配置 nbu备份oracle数据库_运维_38


rman target / 连接到ORCL实例

RMAN> run {
 allocate channel ch00 type sbt_tape;
 allocate channel ch01 type sbt_tape;
 restore database;
 release channel ch00;
 release channel ch01;
 }恢复日志
 RMAN> run {
 allocate channel ch00 type sbt_tape;
 allocate channel ch01 type sbt_tape;
 recover database;
 release channel ch00;
 release channel ch01;
 }

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_39


设置scn号

recover database until scn 1071049;

已log方式打开数据库

alter database open resetlogs;

nbu备份mysql配置 nbu备份oracle数据库_数据库_40


查看数据库是否正常

SQL> select * from dual;

nbu备份mysql配置 nbu备份oracle数据库_数据文件_41


查看数据当前状态(open为正常)

select status from v$instance;

6.异机恢复数据库(Win-128)

1.安装NBU客户端

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_42


nbu备份mysql配置 nbu备份oracle数据库_运维_43


nbu备份mysql配置 nbu备份oracle数据库_服务器_44


nbu备份mysql配置 nbu备份oracle数据库_服务器_45


nbu备份mysql配置 nbu备份oracle数据库_运维_46


2.了解Oracle nomount、mount和 open区别

nomount:读取初始化参数文件,启动实例。在这个状态下,可以重建控制文件,重建数据库。

mount:打开控制文件,但是不打开数据库。在这个状态下,可以执行数据库日志归档,数据库介质恢复,使数据文件联机或脱机,重新定位数据文件,重做日志文件等。

open:打开数据文件,日志文件。对数据文件和日志文件进行校验检查,对数据库数据进行增删改等基本操作。

nbu备份mysql配置 nbu备份oracle数据库_服务器_47

3.解除NBU异机 恢复限制。

(Win-NBU)上操作,默认情况下, NetBackup 只允许备份文件的客户机执行恢复。 NetBackup 实施此限制的方法是:只需在 NetBackup 主服务器上进行必要的配置,在主服务器上创建以下目录: install_path\NetBackup\db\altnames\No.Restrictions

nbu备份mysql配置 nbu备份oracle数据库_数据库_48


4.恢复数据

1、(Win-128)上查看NBU的备份

cd C:\Program Files\Veritas\NetBackup\bin
 bplist.exe -C win-126 -t 4 -R -I /

nbu备份mysql配置 nbu备份oracle数据库_运维_49

2、(Win-126)上操作, 查看业务库的DBID

select dbid from v$database;

nbu备份mysql配置 nbu备份oracle数据库_数据库_50


3(Win-126)上操作,在oracle 业务数据库上 创建pfile文件 拷贝到异地恢复服务器上。

create pfile=‘C:\oracle11g\init.ora’ from spfile;

nbu备份mysql配置 nbu备份oracle数据库_服务器_51


4、(Win-128)主机上设置变量,创建实例,服务,设置pdbid,恢复pfile文件,恢复数据5、设置环境变量:

set ORACLE_SID=orcl

6、创建服务:

oradim -new -sid orcl

nbu备份mysql配置 nbu备份oracle数据库_运维_52

7、设置pdbid

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_53


8、Win-126数据库上拷贝过来的pfile文件将数据库启动到 nomount 状态

sqlplus / as sysdba

SQL> startup nomount pfile=‘C:\oracle11g\init.ora’

nbu备份mysql配置 nbu备份oracle数据库_数据库_54


9、恢复control控制文件(win-nbu,win-126服务器名)

rman target / nocatalog
 run {
 allocate channel ch00 type ‘sbt_tape’;
 SEND ‘NB_ORA_SERV=win-nbu,NB_ORA_CLIENT=win-126’;
 restore controlfile from ‘cntrl_14_1_1131666152’;
 release channel ch00;
 }

nbu备份mysql配置 nbu备份oracle数据库_运维_55


10 、 恢复数据文件

启动数据库到 mount 状态

SQL>alter database mount;

nbu备份mysql配置 nbu备份oracle数据库_服务器_56

run {
 allocate channel ch00 type ‘sbt_tape’;
 SEND ‘NB_ORA_SERV=win-nbu,NB_ORA_CLIENT=win-126’;
 restore database;
 release channel ch00;
 }

nbu备份mysql配置 nbu备份oracle数据库_服务器_57


11 、 恢复日志文件(恢复日志文件的时可能需要指定scn号)

run {
 allocate channel ch00 type ‘sbt_tape’;
 SEND ‘NB_ORA_SERV=win-nbu,NB_ORA_CLIENT=win-126’;
 recover database;
 release channel ch00;
 }12 、指定scn号
 recover database until scn 1060629
 13 、以log方式打开
 alter database open resetlogs;

nbu备份mysql配置 nbu备份oracle数据库_nbu备份mysql配置_58


14、查看数据库当前状态

select status from v$instance;

nbu备份mysql配置 nbu备份oracle数据库_数据库_59