Oracle学习(11)---使用rman备份进行数据库的恢复
2013-07-06 04:52
751 查看
各种情况下数据库恢复方式以及能否进行完全恢复
前提:已对数据库使用rman进行全库备份
1 仅丢失数据文件
可进行完全恢复、
恢复方法:
sql>startup mount;
rman>restore database;
rman>recover database;
sql>alter database open;
2 仅重做日志文件损坏
不能进行完全恢复,重做日志文件中的数据会丢失
恢复方法:
sql>startup mount;
sql>recover database until cancel;
sql>alter database open resetlogs;
3 丢失数据文件、控制文件、重做日志文件或者只丢失控制文件
不能进行完全恢复,重做日志文件中的数据会丢失
如果系统中存在多个实例,需要先设置环境变量
$export ORACLE_SID=oms
sql>startup --当前数据库只能启动到nomount状态
rman>restore controlfile from autobackup;--恢复控制文件
sql>alter database mount
rman>restore database;
sql>recover database using backup controlfile entil cancel;
sql>alter database open resetlogs;
4 丢失数据文件、重做日志文件、控制文件、初始化文件
不能进行完全恢复,重做日志文件中数据会丢失
如果系统中有多个实例,先设置环境变量
$export ORACLE_SID=oms
先使用安装数据库时产生的pfile文件启动数据库到nomount状态
sql>startup pfile='/u01/app/oracle/admin/oms/pfile/init.ora.210201018935';
然后进入rman环境恢复初始化文件
rman>restore spfile from autobackup;
关闭数据库,使用默认的spfile启动数据库
sql>shutdown abort;
sql>startup nomount;
进入rman环境恢复控制文件
rman>restore controlfile from autobackup;
sql>alter database mount;
rman>restore database;
sql>recover database using backup controlfile entil cancel;
sql>alter database open resetlogs;
5 数据库运行正常,但是想恢复到某一时间点时的状态
首先关闭数据库
rman>startup mount
rman>restore database
rman>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';
rman>recover database until time '20130706 06:30:38';
sql>alter database open resetlogs;
6 恢复数据库到某个SCN
SCN:system change number,系统改变号;
查询当前系统scn号
sql>select dbms_flashback.get_system_change_number from dual;
查看scn对应的时间
sql>select to_char(scn_to_timestamp(963959),'yyyy-mm-dd hh24:mi:ss') from dual;
可以从sys.smon_scn_time表查找某个时间对应的scn号
查看时间对应的scn
sql>select timestamp_to_scn(to_date('2013-07-06 08:00:01','yyyy-mm-dd hh24:mi:ss')) from dual;
恢复到scn1164808
sql>shutdown immediate
rman>startup mount
rman>restore database
rman>recover database until scn 1164808
rman>sql 'alter database open resetlogs';
前提:已对数据库使用rman进行全库备份
1 仅丢失数据文件
可进行完全恢复、
恢复方法:
sql>startup mount;
rman>restore database;
rman>recover database;
sql>alter database open;
2 仅重做日志文件损坏
不能进行完全恢复,重做日志文件中的数据会丢失
恢复方法:
sql>startup mount;
sql>recover database until cancel;
sql>alter database open resetlogs;
3 丢失数据文件、控制文件、重做日志文件或者只丢失控制文件
不能进行完全恢复,重做日志文件中的数据会丢失
如果系统中存在多个实例,需要先设置环境变量
$export ORACLE_SID=oms
sql>startup --当前数据库只能启动到nomount状态
rman>restore controlfile from autobackup;--恢复控制文件
sql>alter database mount
rman>restore database;
sql>recover database using backup controlfile entil cancel;
sql>alter database open resetlogs;
4 丢失数据文件、重做日志文件、控制文件、初始化文件
不能进行完全恢复,重做日志文件中数据会丢失
如果系统中有多个实例,先设置环境变量
$export ORACLE_SID=oms
先使用安装数据库时产生的pfile文件启动数据库到nomount状态
sql>startup pfile='/u01/app/oracle/admin/oms/pfile/init.ora.210201018935';
然后进入rman环境恢复初始化文件
rman>restore spfile from autobackup;
关闭数据库,使用默认的spfile启动数据库
sql>shutdown abort;
sql>startup nomount;
进入rman环境恢复控制文件
rman>restore controlfile from autobackup;
sql>alter database mount;
rman>restore database;
sql>recover database using backup controlfile entil cancel;
sql>alter database open resetlogs;
5 数据库运行正常,但是想恢复到某一时间点时的状态
首先关闭数据库
rman>startup mount
rman>restore database
rman>sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';
rman>recover database until time '20130706 06:30:38';
sql>alter database open resetlogs;
6 恢复数据库到某个SCN
SCN:system change number,系统改变号;
查询当前系统scn号
sql>select dbms_flashback.get_system_change_number from dual;
查看scn对应的时间
sql>select to_char(scn_to_timestamp(963959),'yyyy-mm-dd hh24:mi:ss') from dual;
可以从sys.smon_scn_time表查找某个时间对应的scn号
查看时间对应的scn
sql>select timestamp_to_scn(to_date('2013-07-06 08:00:01','yyyy-mm-dd hh24:mi:ss')) from dual;
恢复到scn1164808
sql>shutdown immediate
rman>startup mount
rman>restore database
rman>recover database until scn 1164808
rman>sql 'alter database open resetlogs';
相关文章推荐
- Oracle学习(十一)之使用RMAN对数据库做在线完全备份
- Oracle 10g中使用RMAN进行备份恢复的几个实验手记
- 使用xtrabackup对mariadb数据库进行增量备份以及恢复 推荐
- 如何对Oracle数据库文件进行恢复与备份
- Oracle - 使用RMAN的备份及恢复一例-丢失所有控制文件
- 使用rman备份异机恢复数据库
- 使用NetBackup进行oracle备份和恢复
- oracle rman 备份和还原 恢复数据库
- 数据库连接oracle 10g rman 备份与恢复 之一
- ORACLE 数据库RMAN备份恢复
- ORACLE基础学习-RMAN应用之(归档模式无备份,丢失数据文件的恢复)
- 系统损坏,移植Oracle(9.2.0.1)数据库(无备份数据文件进行恢复)
- 使用Rman将Windows Oracle 11gR2 32位中数据库恢复至Windows Oracle 11gR2 64位 与 centos 6.5 Oracle 11gR2 32位
- Oracle使用rman进行表空间基于时间点的恢复
- 使用RMAN 备份与恢复数据库
- RMAN-使用catalog恢复目录进行备份与恢复
- 使用exp工具进行数据库备份及恢复
- oracle-dba- RMAN备份与恢复数据库
- 在win7和Linux环境,使用mysql进行数据库的备份和恢复
- Oracle技术之使用rman进行表空间基于时间点的恢复