环境介绍

 
Window_NBU8.1.1 备份 ORACLE_11G_RAC
全备和归档两个策略
 
恢复:
RAC-RAC恢复
恢复到指定时间点(追加归档)
 


颜色区别:
配置文件颜色
脚本命令颜色
 
 
Window-NBU8.1.1安装
 
注:8.1.1安装之前需要做以下操作
 
安装过程不再赘述,根据向导安装即可。
 
 
环境介绍
-----------------------------
oracle_RAC
[root@rac1 ~]# more /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 
172.168.1.11    rac1
172.168.1.22    rac2
 
172.168.1.111   rac1-vip
172.168.1.222   rac2-vip
 
10.10.10.11     rac1-prv
10.10.10.22     rac2-prv
 
172.168.1.33    rac-scan
 
#-----------------------nbu
172.168.1.213WIN-KH4NAH82PJC
 
linux系统版本
[root@rac1 ~]# more /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.5 (Santiago)
 
备份步骤
-----------------------------
 
1、创建存储池(DISK OR TAPE)
 
2、创建备份策略(instance backup or script backup)
 
3、测试备份
 
详细步骤不再赘述(可参考单机版)
 
-----测试备份方法
-----1、首先进行一次全备
-----2、创建一个表空间,切换日志,进行归档日志备份
-----3、创建一张表,切换日志,进行归档日志备份
 
 
 
恢复步骤
-----------------------------
注:先查看原库数据文件和redo日志的路径,接下来可能会在脚本中对路径进行修改
1、查看备份集
/usr/openv/netbackup/bin/bplist -C rac1 -t 4 -R /
 
2次归档备份,1次全备
 
注:也可搜索指定时间段的备份集,如下命令
/usr/openv/netbackup/bin/bplist -C rac1 -t 4 -R -s 03/20/2019 -e 03/21/2019 /
 
2、首先启动到nomount
pfile文件自行进行修改(一般修改各路径与实例名即可)
 
 
3、恢复控制文件
此次先选择以下控制文件恢复
此时需要追加归档来恢复数据库,数据库可以看到表空间,但是看不到表
 
ControlFileScripts:(RMAN下运行)
run{
allocate channel c1 type sbt_tape;
SEND 'NB_ORA_SERV=WIN-ECOEQVGJGRJ,NB_ORA_CLIENT=rac1';
restore controlfile from '/cntrl_87_1_1003411309';
release channel c1;
}
 
此时集群状态:
 
 
 
4、接下去恢复数据文件
DataFileScripts:(RMAN下运行)
run{
allocate channel c4 type sbt_tape;
allocate channel c5 type sbt_tape;
SEND 'NB_ORA_SERV=WIN-ECOEQVGJGRJ,NB_ORA_CLIENT=rac1';
set newname for datafile '+DATA01/racdb/datafile/sysaux.263.975102913' to '+DATA01/rachui/datafile/sysaux01.dbf';
set newname for datafile '+DATA01/racdb/datafile/undotbs2.266.975102943' to '+DATA01/rachui/datafile/undotbs02.dbf';
set newname for datafile '+DATA01/racdb/datafile/system.262.975102909' to '+DATA01/rachui/datafile/system01.dbf';
set newname for datafile '+DATA01/racdb/datafile/undotbs1.264.975102917' to '+DATA01/rachui/datafile/undotbs01.dbf';
set newname for datafile '+DATA01/racdb/datafile/users.267.975102945' to '+DATA01/rachui/datafile/users01.dbf';
set newname for datafile '+DATA01/racdb/datafile/huifu01.dbf' to 
'+DATA01/rachui/datafile/huifu01.dbf';
restore database;
switch datafile all; 
release channel c4;
release channel c5;
}
 
 
 
--redo日志修改路径(可选)
如果你需要更改恢复后的redo路径,可用以下命令进行修改
alter database rename file '+data01/racdb/onlinelog/group_1.258.975102907' to  '+data01/rachui/onlinelog/group_1.258.975102907';
alter database rename file '+data01/racdb/onlinelog/group_1.259.975102907' to  '+data01/rachui/onlinelog/group_1.259.975102907';
alter database rename file '+data01/racdb/onlinelog/group_2.260.975102907' to  '+data01/rachui/onlinelog/group_2.260.975102907';
alter database rename file '+data01/racdb/onlinelog/group_2.261.975102907' to  '+data01/rachui/onlinelog/group_2.261.975102907';
alter database rename file '+data01/racdb/onlinelog/group_3.268.975110971' to  '+data01/rachui/onlinelog/group_3.268.975110971';
alter database rename file '+data01/racdb/onlinelog/group_3.269.975110971' to  '+data01/rachui/onlinelog/group_3.269.975110971';
alter database rename file '+data01/racdb/onlinelog/group_4.270.975110973' to  '+data01/rachui/onlinelog/group_4.270.975110973';
alter database rename file '+data01/racdb/onlinelog/group_4.271.975110975' to  '+data01/rachui/onlinelog/group_4.271.975110975';
 
 
5、接下来我们可以尝试进行恢复(不过由于缺失归档,恢复会报错)
RecoverScripts:(RMAN下运行)
run
{
allocate channel ch00 type 'sbt_tape';
allocate channel ch01 type 'sbt_tape';
SEND 'NB_ORA_SERV=WIN-ECOEQVGJGRJ,NB_ORA_CLIENT=rac1';
recover database;
release channel ch00;
release channel ch01;
}
 
 
提示需要恢复seq为204的归档日志:
 
a、我们先选择取消此归档的恢复,并打开库
recover database using backup controlfile until cancel;
接下来open数据库
 
 
 
 
 
此时我们查询表空间(没有出错的情况下,此时会有之前创建的表空间,但是不会有表存在)
 
 
 
正确!
 
b、此时我们来追加归档恢复至创建表之后的时间点
由于我们的控制文件中的备份记录只到203,无法自动进行自动恢复,所以需要进行手动从备份集中寻找需要的归档进行恢复
 
从备份集中可以看出
我们恢复到了86,204可以从之后的88,89,90中寻找
 
sql>中执行
declare
devtype varchar2(256);
done boolean;
begin
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',ident=>'t2');
sys.dbms_backup_restore.restoreSetArchivedLog(destination=>'+data02/arch/');
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,sequence=>204);
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/al_89_1_1003419927',params=>'NB_ORA_SERV=WIN-ECOEQVGJGRJ,NB_ORA_CLIENT=rac1');
sys.dbms_backup_restore.deviceDeallocate;
end;
 
 
从89中找到了所需要的归档
我们可以用以下命令进行追加
recover database using backup controlfile until cancel;
 
 
提示需要thread 2 中 seq 204
继续用上述方法进行追加
追加到206时,已经无法在88,89,90中找到相应归档
此时可以选择cancel取消恢复
 
这时打开数据库,应该恢复到了之前创建表的状态,也就是最新的时间点
 

过程中遇到的问题
 
 
1、恢复数据文件时遇到RMAN-06091
 
解决方法:
RMAN下执行
allocate channel for maintenance type disk;
delete obsolete device type disk;
 
 
 
 
 
 
 
 
 
 
 
posted on 2020-01-06 10:05  第六人  阅读(385)  评论(0编辑  收藏  举报