>CONFIGURE CONTROLFILE AUTOBACKUP ON;
数据库全备份:
RMAN>backup as compressed backupset full database;
删除,参数文件,控制文件,数据文件
rm /opt/oracle/oradata/orcl/control01.ctl
rm /opt/oracle/flash_recovery_area/orcl/control02.ctl
rm /opt/oracle/oradata/orcl/control03.ctl
rm /opt/oracle/product/11.2.2/dbs/spfileorcl.ora
rm /opt/oracle/oradata/orcl/system01.dbf
rm /opt/oracle/oradata/orcl/sysaux01.dbf
rm /opt/oracle/oradata/orcl/undotbs01.dbf
rm /opt/oracle/oradata/orcl/users01.dbf
rm /home/oracle/tbs_ctl01.dbf
rman target /
RMAN> set dbid 1353286769 --如果备份在
startup nomount --虽然没有参数文件但是也可以启动实例
恢复参数文件:
restore spfile from '/data/backup/ctl_c-1353286769-20131102-04.bak';
/* 从快速恢复区恢复参数文件:
run {
restore spfile from autobackup
recovery area = 'flash recovery area destination'
db_name = 'db_name';
}
*/
查看是否有需要改的参数:主要看文件位置
SQL> create pfile from spfile;
恢复控制文件:
restore controlfile to '/opt/oracle/oradata/orcl/control01.ctl' from '/data/backup/ctl_c-1353286769-20131102-04.bak';
恢复数据文件:
RMAN> shutdown immediate
RMAN> startup mount
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 11/02/2013 12:10:46
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
RMAN> alter database open resetlogs;
--------------------------------------------------------------------------------------------------------------
使用增量备份恢复处于 NOARCHIVELOG 模式的数据库:
STARTUP FORCE NOMOUNT;
RESTORE CONTROLFILE;
ALTER DATABASE MOUNT;
RESTORE DATABASE;
RECOVER DATABASE NOREDO;
ALTER DATABASE OPEN RESETLOGS;
8. 使用增量备份恢复处于NOARCHIVELOG 模式的数据库
1) 撤销数据库archivelog模式
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database noarchivelog;
SQL>alter database open;
SQL>archive log list;
2) 创建测试用表及数据
conn zhuxy/zhuxy
create table c (id number);
insert into c values(1);
commit;
3) 在noarchivelog模式下,0级备份
RMAN> run{
shutdown immediate;
startup mount;
backup as backupset incremental level 0 database;
alter database open;
}
4) 在noarchivelog模式下,1级备份
insert into c values(2);
commit;
RMAN> run{
shutdown immediate;
startup mount;
backup as backupset incremental level 1 database;
alter database open;
}
6) 删除所有日志文件, 某些数据文件
7) 执行恢复
rman target /
RMAN>startup mount;
--执行全库的还原
RMAN> restore database;
-- 使用noredo子句进行恢复
RMAN> recover database noredo;
--恢复完成,resetlogs方式打开数据库,完成所有文件丢失的恢复
RMAN> alter database open resetlogs;
8)验证在测试前(增量备份前)插入的数据
select * from c;
6.非归档丢失文件
不完全恢复: SCN, 时间,还原点,或日志序列号
1确定目标还原点:SCN、时间、还原点或日志序列号。
2设置 NLS 环境变量。
3装载数据库。
4使用 SET UNTIL、RESTORE 和 RECOVER 命令准备并运行 RUN 块。
5用 RESETLOGS 打开数据库。
-----不完全恢复之--基于时间的恢复
1) 准备环境:RMAN全库备份
RMAN> backup as compressed backupset full database;
2) 准备环境:测试表及数据
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
create table d (c date);
insert into d values(sysdate);
commit;
create table ff (c date);
insert into ff values(sysdate);
commit;
启动到mount模式,进行基于时间的恢复
shutdown immediate;
startup mount;
run
{sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
set until time = ' 2014-03-30 0