本人是新手,刚学习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: 新手第一次发帖,希望各位高手可以指出上面代码的错误,或者提出更好的方案!
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: 新手第一次发帖,希望各位高手可以指出上面代码的错误,或者提出更好的方案!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货