oracle 备份恢复 06ramn完全恢复

一、搭建实验环境
1.创建8张表scott.lxtb1-lxtb8
create table  scott.lxtb9  tablespace lxtb  as select * from scott.emp;
2.3DML操作
insert into scott.lxtb9 select * from scott.emp;
commit;
alter system  archive log current;
insert into scott.lxtb9 select * from scott.emp;
commit;    
insert into scott.lxtb9 select * from scott.emp;
select count(1) from scott.lxtb9;

3.热备脚本
run{
sql 'alter system switch logfile';
allocate channel c1 type disk;
allocate channel c2 type disk;
backup database format '/u01/app/backdir/rman/hot_bak/hot_%d_%s_%p.bak' include current controlfile plus archivelog delete input format '/u01/app/backdir/rman/archiv/arch_%U.bak' filesperset 3;
}

二、完全恢复实验
1.丢失所有数据文件和控制文件
备份控制文件
alter database backup controlfile to trace as '/u01/app/oracle/admin/ipemsdb/bdump/ipemsdb_ora_0813.trc';
ramn热备份-3DML--断电-删控制文件,数据文件-启-rman还原控制文件-启mount-还原数据库-恢复数据库-open resetlogs;
RMAN> restore controlfile from '/u01/app/backdir/rman/controlfile/c-2694191837-20150731-0a';
RMAN> alter database mount;
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
restore database;
recover database;
alter database open resetlogs;
}
2.丢失所有数据文件
3DML-断电-删所有dbf-启-查v$recover_file-重联rman-还原恢复数据库-直接open
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1:'/u01/app/oracle/oradata/ipemsdb/datafile/o1_mf_system_bvnx38on_.dbf'
select file#,error from v$recover_file;
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
restore database;
recover database;
alter database open;
}
3.丢失一个数据文件
rman备份单个数据文件-3DML-断电-删1个dbf-启-查v$recover_file-重联rman-还原恢复数据文件-直接open
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/ipemsdb/datafile/lxtb01.dbf'
select file#,error from v$recover_file;
run{
restore datafile 6;
recover datafile 6;
alter database open;
}
4.丢失一个数据文件(高可用模式)
3DML-查dbf-断电-删1dbf-启-查v$recover_file-恢复数据文件
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/ipemsdb/datafile/lxtb01.dbf'
select file#,error from v$recover_file;
run{
sql 'alter database datafile 6 offline';
alter database open;
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
5.不关库下实验丢失一个数据文件(高可用模式):
3DML-删1个dbf-清理缓存-rman退出再登陆-数据文件脱机-还原-恢复-联机
alter system flush buffer_cache;
ERROR at line 1:
ORA-00376: file 6 cannot be read at this time
ORA-01110: data file 6: '/u01/app/oracle/oradata/ipemsdb/datafile/lxtb_01.dbf'
run{
sql 'alter database datafile 6 offline';
restore datafile 6;
recover datafile 6;
sql 'alter database datafile 6 online';
}
6.不可转储
创建表空间-创建表-3DML-断电-删数据文件-启-查-脱机数据文件-开库-还原(自动创建数据文件)-恢复-联机数据文件
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01110: data file 7: '/u01/app/oracle/oradata/ipemsdb/datafile/test01.dbf'
run{
sql 'alter database datafile 7 offline';
alter database open;
restore datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}
7.恢复到新位置,做之前要备份
3DML-断电-删-启-查-恢复
run{
sql 'alter database datafile 6 offline';
alter database open;
set newname  for datafile 6 to '/u01/app/oracle/oradata/ipemsdb/datafile/newdir/lxtb01.dbf'; --分开执行时放入run{}
restore datafile 6;
switch datafile 6;  --分开执行时不成功,手动重命名修改文件路径
recover datafile 6;
sql 'alter database datafile 6 online';
}
切换到非归档模式
shutdown immediate;
startup mount;
alter database flashback off;
alter database noarchivelog;
alter database open;
清理备份,重新冷备

8.日志组被未覆盖
rman冷备-3DML-断电-删1dbf-启-查-恢复
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6:'/u01/app/oracle/oradata/ipemsdb/datafile/newdir/lxtb01.dbf'
run{
restore datafile 6;
recover datafile 6;
alter database open;
}
9.日志组有被覆盖
3DML-切换日志-断电-删1dbf-启-转储1个数据文件-恢复文件-断电-转储控制文件-启mount-恢复数据库
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6:'/u01/app/oracle/oradata/ipemsdb/datafile/newdir/lxtb01.dbf'
RMAN> recover datafile 6;

Starting recover at 2015-07-31 06:11:55
using channel ORA_DISK_1
using channel ORA_DISK_2

starting media recovery

unable to find archive log
archive log thread=1 sequence=15
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/31/2015 06:11:56
RMAN-06054: media recovery requesting unknown log: thread 1 seq 15 lowscn 364647
RMAN> shutdown abort
RMAN> startup nomount;
RMAN> restore controlfile from '/u01/app/backdir/rman/controlfile/c-2694191837-20150731-13';
RMAN> alter database mount;
RMAN> restore database;  --直接resetlogs可以开库
SQL> recover database until cancel using  BACKUP CONTROLFILE;
cancel
SQL> alter database open resetlogs;

10.特殊情况下的恢复
    丢失了恢复目录与控制文件,只剩下备份集与备份片,这个时候,只能从文件中恢复了。以下是调用
dbms_backup_restore包,从文件中恢复的例子。
declare
    devtype varchar2(100);
    done boolean;
    recid number;
    stamp number;
    fullname varchar2(80);
begin
    devtype :=dbms_backup_restore.deviceallocate('sbt_tape',params=>'ENV=(NSR_SERVER=backup_server)');
    dbms_backup_restore.restoresetdata file;
    dbms_backup_restore.restorecontrolfileto('first_control_file');
    dbms_backup_restore.restorebackuppiece('backup_piece', done);
    dbms_backup_restore.copycontrolfile ('first_control_file', 'second_control_file', recid, stamp,fullname);
    -- repeat the above copycontrolfile for each control file
end; 
/

11.块级别的恢复Block Media Recovery (BMR)
    块恢复,块是恢复的最小单元,数据文件可以在线。恢复块的时候,必须指定具体的块号。
坏块信息存储视图
V$DATABASE_BLOCK_CORRUPTION
恢复该视图中列出的坏块
RMAN> BLOCKRECOVER CORRUPTION LIST  RESTORE UNTIL TIME 'sysdate – 10';
备份的坏块信息保存在
    V$BACKUP_CORRUPTION
    V$COPY_CORRUPTION
恢复坏块。
    BLOCKRECOVER datafile 2 BLOCK 12, 13 datafile 7 BLOCK 5, 98, 99 datafile 9 BLOCK 19;
    BLOCKRECOVER TABLESPACE SYSTEM DBA 4194404, 4194405 FROM TAG "weekly_backup";
    BLOCKRECOVER TABLESPACE SYSTEM DBA 4194404, 4194405 RESTORE UNTIL TIME  'SYSDATE-2';
12.参数文件spfile损坏恢复
restore spfile  to "D:\oracle\product\10.2.0\db_1\dbs\ SPFILEORCL.ORA" from "D:\ORABACKUP\C-1335848290-20140218-04";


cp /u01/app/backdir/hot_bak/lxtb_01.dbf                    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/hot_bak/o1_mf_example_bwbn1ybs_.dbf   /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/hot_bak/o1_mf_sysaux_bwbn1ybj_.dbf    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/hot_bak/o1_mf_system_bwbn1ybd_.dbf    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/hot_bak/o1_mf_undotbs1_bwbn1ydc_.dbf  /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/hot_bak/o1_mf_users_bwbn1ysx_.dbf     /u01/app/oracle/oradata/ipemsdb/datafile/

cp /u01/app/backdir/cold_bak/lxtb_01.dbf                    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/cold_bak/o1_mf_example_bwbn1ybs_.dbf   /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/cold_bak/o1_mf_sysaux_bwbn1ybj_.dbf    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/cold_bak/o1_mf_system_bwbn1ybd_.dbf    /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/cold_bak/o1_mf_undotbs1_bwbn1ydc_.dbf  /u01/app/oracle/oradata/ipemsdb/datafile/
cp /u01/app/backdir/cold_bak/o1_mf_users_bwbn1ysx_.dbf     /u01/app/oracle/oradata/ipemsdb/datafile/

转载于:https://my.oschina.net/peakfang/blog/2245428

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值