Oracle 10g学习之数据库恢复
2008-09-05 12:51:36 来源:WEB开发网例子:
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;
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接