WEB开发网
开发学院数据库Oracle Oracle 10g学习之数据库恢复 阅读

Oracle 10g学习之数据库恢复

 2008-09-05 12:51:36 来源:WEB开发网   
核心提示: 例子:1.建立ASCII控制文件Sqlplus/nologConnect/assysdbaAlterdatabasebackupcontorlfiletotrace;2.上面语句生产的trace文件于udump目录里 备份控制文件有两种情况(在该文件里可以查看):Set #1. NORES

例子:

1.建立ASCII控制文件

   Sqlplus/nolog
  Connect/assysdba
  Alterdatabasebackupcontorlfiletotrace;

2.上面语句生产的trace文件于udump目录里

备份控制文件有两种情况(在该文件里可以查看):

Set #1. NORESETLOGS case情况用于完全恢复,

Set #2. RESETLOGS case情况用于不完全恢复。

3.将trc文件里的Set #1或者Set #2 内容拷贝出来保存为txt副本

4.物理删除控制文件

5.以sysdba身份登陆,执行刚才创建的脚本

6.Alter database open resetlogs;

进行不完全恢复

不完全恢复又成为时间点恢复(DBPITR),因为他恢复到一个确定的时间点:它在强迫恢复的故障之前停止。从另一种观点看,不完全恢复就是:并不是在归档重做日志中的所有事务都应用于数据库而使数据库完整。在恢复过程结束后,使用不完全恢复的数据库仍然丢失一些事务,这些事务在故障之前是在数据库中的。

RMAN:两种方法完成不完全恢复:

1.执行recover之前使用子句:

Set until time或者set until sequence

2.执行recover时使用子句

Until time 或者 until sequence

在完全恢复之前,在指定的时间点、一个重做日志序列或者一个变化号(SCN)停止。

用户管理不完全备份:

使用RECOVER DATABASE命令与UNTIL TIME、UNTIL CHANGE或者UNTIL CANCEL子句。(其中与RMAN不同的是until cancel子句专门在随机点停止恢复过程)。

RMAN不完全恢复

rman不完全恢复可以根据指定时间、重做日志序列或者变化号SNC来进行。

完成不完全恢复使用recover database命令和until time、until SCN或者until sequence子句结合;或者预先使用子句 set until

例子:

基于时间点的恢复 

1.启动到mount状态 

   2.C:>SetNSL_DATE_FORMAT=DD-MM-YYYYHH24:MI:SS
  RMAN>run
  2>{setuntiltime'02-9月-200815:45:00';
  3>restoredatabase;
  4>recoverdatabase;
  5>}

3.用resetlogs子句打开数据库 

   Alterdatabaseopenresetlogs;

基于重做日志序列号的恢复

   1.Select*fromv$log_history;

2.启动到mount状态

3.执行:

   RMAN>run
  2>{setuntilsequence2thread1;
  3>restoredatabase;
  4>recoverdatabase;
  5>}

4.用resetlogs子句打开数据库。

   RMAN>alterdatabaseopenresetlogs;

上一页  1 2 3 

Tags:Oracle 学习 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接