本人是新手,刚学习oracle备份不久,经理让我做一个 oracle11g 的增量备份,小弟我研究了半个多月,翻遍了无数资料,才弄出来了一点点心得,现在整理出来提供大家分享,测试步骤没有整理出来,因为还在纠结当中,话不多说。下面是比较完整的备份步骤,有问题可以拿出来,大家一起讨论下! 嘿嘿1. 检查数据库模式:
   sql>sqlplus / as sysdba; 
   sql>archive log list;   (查看数据库是否处于归档模式中)
   若为非归档,则修改数据库归档模式。
   sql>startup mount
   sql>alter database archivelog
   sql>alter database open
2. 查看RMAN备份参数:
C:\>rman target /  (进入RMAN )
 
注意:假如此处有 <数据库未打开> , 那么退出 RMAN 
RMAN>EXIT;
进入sql> 命令模式:
Sql> SHUTDOWN IMMEDIATE;
Sql> STARTUP;
  如果结果如图面显示,进入下面步骤:
RMAN>SHOW  ALL;   输出结果如下:
使用目标数据库控制文件替代恢复目录
db_unique_name 为 ZZ 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;  (此处省略1000字)
假如 红色标记处是OFF, 那么执行下面语句:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
此操作是对 controlfile(控制文件) 进行自动备份;3. 下面开始增量备份:
   记录当前时间:
  Sql>select to_char(sysdate,’yy-mm-dd hh24:mi:ss’) from dual; 3.1 开始第一次增量备份,执行 0 级备份:
  RMAN>backup incremental level 0 database plus archivelog;
记录当前时间:
  Sql>select to_char(sysdate,’yy-mm-dd hh24:mi:ss’) from dual; 3.2 开始执行 1 级备份:
RMAN>backup incremental level 1 database plus archivelog;
记录当前时间:
  Sql>select to_char(sysdate,’yy-mm-dd hh24:mi:ss’) from dual;3.3 开始执行 2 级备份:
RMAN>backup incremental level 2 database plus archivelog;
记录当前时间:
  Sql>select to_char(sysdate,’yy-mm-dd hh24:mi:ss’) from dual;注: 增量备份方案由客户现场提出,备份命令不变;4.恢复数据库:
这里提供的回复方案是回复到某一个时间点上
基于时间点的恢复:
恢复方法1:
 run{
  set until time "to_date(04/19/12 09:35:00','mm/dd/yy hh24:mi:ss')";
  restore database;
  recover database;
  alter database open resetlogs;
}
恢复方法2:
Sql>ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
Sql>startup mount;
RMAN>restore database until time "to_date('2012- 4-19 11:50:00','YYYY-MM-DD HH24:MI:SS')";
RMAN>recover database until time "to_date('2012- 4-19 11:50:00','YYYY-MM-DD HH24:MI:SS')";
RMAN>alter database open resetlogs;注:此时数据库一定要处于 mount 状态下,才能进行恢复操作;
可以在RMAN 状态下修改数据库状态
RMAN>SHUTDOWN IMMEDIATE;
RMAN>STARTUP MOUNT;Ps: 新手第一次发帖,希望各位高手可以指出上面代码的错误,或者提出更好的方案!