1、参数文件丢失: (正常关机,不会有数据丢失)
考回备份,(一有参数修改,就必须备份参数文件)
2、密码文件丢失: (正常关机,不会有数据丢失)
考回备份,没有备份密码文件直接重建
3、控制文件: (正常关机,不会有数据丢失)
1、利用旧的控制文件,用recover database using backup controlfile恢复。但是之前所有归档和备份都无效了,
2、如果丢失了日志,或重命名数据库后用resetlogs重建
3、否则用noresetlogs方式重建,重建后用strings control01.dbf发现控制文件中没有了之前的归档信息,但是用重建控制文件之前的旧数据文件依然可以恢复??? 经过测试:recover database命令之后,归档目录下的归档文件名列表,又全部刷新到了控制文件中。不知道是为什么???
个人建议用第3种方式,这种方式(不会丢数据,之前的备份也可以用), ??????
4、丢失非当前日志: (正常关机,不会有数据丢失)
如果有多路备份,直接拷贝覆盖坏的日志
如果没有备份直接用清空命令清空就可以,因为非当前日志在正常关机的情况下已经归档了。
alter database clear logfile '/opt/oracle/oradata/orcl/redo01.log';
5、当前日志丢失: (正常关机,无数据丢失)
alter database clear unarchived logfile '/opt/oracle/oradata/orcl/redo01.log'; 强制清除没有归档的日志,导致之前的备份全部失效,因为有日志断点。所以需要重新全备
6、丢失system01.dbf文件: (正常关机,不会有数据丢失)
restore
recover database;
7、丢失unotbs01.dbf文件: (正常关机,不会有数据丢失)
restore
recover database;
8、丢失用户表空间数据文件: (正常关机,不会有数据丢失)
restore
recover database;
或者 不关数据库恢复
SQL> alter database datafile 4 offline
SQL> recover datafile 4;
SQL> alter database datafile 4 online;
9、丢失temp01.dbf文件 : (正常关机,不会有数据丢失)
不用做任何恢复,启动数据库时找不到自动重建
10、参数,控制,数据 全部损坏恢复: (正常关机,不会有数据丢失)
1、考回参数文件
2、拷回旧的数据文件
3、noresetlogs方式重建控制文件
4、recover database
不完全恢复
方案1:手动恢复
方案2:rman
方案3:flashback
原理都是一样,如下
restore
recover database 基于until cancel,基于时间,基于scn
alter database open resetlogs
表被误删了
flashback
异机不完全恢复
日志断点
不完全恢复
避免不完全恢复:
避免until cancel:多路日志文件,备份归档文件
避免using backup controlfile 多路控制文件