执行数据库恢复案例
2016-09-17 09:07
239 查看
1、日志文件丢失
i.查看告警日志:
[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log
Ii.查看日志文件状态:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 CURRENT
2 UNUSED
3 UNUSED
Iii.切换日志文件:
alter system switchlogfile;
此时再次查看告警日志:
[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log
多出来的日志如下:
Thu Sep 08 09:02:51CST 2016
Thread 1 cannotallocate new log, sequence 2
Private strand flushnot complete
Current log# 1 seq# 1 mem# 0:/u01/oracle/oradata/wyzc10g/redo01.log
Thu Sep 08 09:02:53CST 2016
Thread 1 advanced tolog sequence 2 (LGWR switch)
Current log# 2 seq# 2 mem# 0:/u01/oracle/oradata/wyzc10g/redo02.log
而日志文件的状态如下:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 ACTIVE
2 CURRENT
3 UNUSED
Iv.解决方法
触发CKPT:
SQL> alter systemcheckpoint;
System altered.
再次查看日志文件状态:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 INACTIVE
2 CURRENT
3 UNUSED
清空日志文件
SQL> alterdatabase clear logfile group 1;
Database altered.
再次查看日志文件,已恢复
SQL> ho ls/u01/oracle/oradata/wyzc10g/redo*
/u01/oracle/oradata/wyzc10g/redo01.log /u01/oracle/oradata/wyzc10g/redo02.log /u01/oracle/oradata/wyzc10g/redo03.log
总结如下:
根据状态进行处理
UNUSEDINACTIVE --> alter database clear logfile group <>;
ACTIVE--> alter system checkpoint;
alter database clearlogfile group <>;
CURRENT --> alter system switch logfile;
alter databaseclear logfile group <>;
如何知道日志文件丢失了呢,除了查看上述告警日志。可以用操作命令直接查看
SQL> selectmember from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/oracle/oradata/wyzc10g/redo03.log
/u01/oracle/oradata/wyzc10g/redo02.log
/u01/oracle/oradata/wyzc10g/redo01.log
而后直接查看相应路径下的文件是否丢失
2、数据文件丢失
i.备份整个数据库
[oracle@wyzcwyzc10g]$ rman target /
RMAN> backupdatabase;
Ii.system undo 丢失
Shutdown immediate,关不掉->shutdownabort
Startupmount
Restoredatafile <>;
Recoverdatabase;
Alterdatabase open;
Iii.其他数据文件丢失
在RMAN中
Run {
Sql'alter tablespace <> offline immediate';
Restoretablespace <>;
Recovertablespace <>;
Sql'alter tablespace <> online';
}
i.查看告警日志:
[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log
Ii.查看日志文件状态:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 CURRENT
2 UNUSED
3 UNUSED
Iii.切换日志文件:
alter system switchlogfile;
此时再次查看告警日志:
[oracle@wyzcwyzc10g]$ tail -F /u01/oracle/admin/wyzc10g/bdump/alert_wyzc10g.log
多出来的日志如下:
Thu Sep 08 09:02:51CST 2016
Thread 1 cannotallocate new log, sequence 2
Private strand flushnot complete
Current log# 1 seq# 1 mem# 0:/u01/oracle/oradata/wyzc10g/redo01.log
Thu Sep 08 09:02:53CST 2016
Thread 1 advanced tolog sequence 2 (LGWR switch)
Current log# 2 seq# 2 mem# 0:/u01/oracle/oradata/wyzc10g/redo02.log
而日志文件的状态如下:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 ACTIVE
2 CURRENT
3 UNUSED
Iv.解决方法
触发CKPT:
SQL> alter systemcheckpoint;
System altered.
再次查看日志文件状态:
SQL> selectgroup#,status from v$log;
GROUP# STATUS
--------------------------
1 INACTIVE
2 CURRENT
3 UNUSED
清空日志文件
SQL> alterdatabase clear logfile group 1;
Database altered.
再次查看日志文件,已恢复
SQL> ho ls/u01/oracle/oradata/wyzc10g/redo*
/u01/oracle/oradata/wyzc10g/redo01.log /u01/oracle/oradata/wyzc10g/redo02.log /u01/oracle/oradata/wyzc10g/redo03.log
总结如下:
根据状态进行处理
UNUSEDINACTIVE --> alter database clear logfile group <>;
ACTIVE--> alter system checkpoint;
alter database clearlogfile group <>;
CURRENT --> alter system switch logfile;
alter databaseclear logfile group <>;
如何知道日志文件丢失了呢,除了查看上述告警日志。可以用操作命令直接查看
SQL> selectmember from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/oracle/oradata/wyzc10g/redo03.log
/u01/oracle/oradata/wyzc10g/redo02.log
/u01/oracle/oradata/wyzc10g/redo01.log
而后直接查看相应路径下的文件是否丢失
2、数据文件丢失
i.备份整个数据库
[oracle@wyzcwyzc10g]$ rman target /
RMAN> backupdatabase;
Ii.system undo 丢失
Shutdown immediate,关不掉->shutdownabort
Startupmount
Restoredatafile <>;
Recoverdatabase;
Alterdatabase open;
Iii.其他数据文件丢失
在RMAN中
Run {
Sql'alter tablespace <> offline immediate';
Restoretablespace <>;
Recovertablespace <>;
Sql'alter tablespace <> online';
}
相关文章推荐
- 解决"恢复SPS2003备份,遇到“数据库架构太旧”的提示而无法执行恢复。"
- Oracle 数据库恢复案例
- Oracle® 数据库备份恢复基础--6执行完全的数据库的还原和恢复
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 5)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 3)
- Control File中备份信息被覆盖情况下的数据库恢复案例
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 8)
- Oracle恢复数据库案例实战
- 数据库处于suspect状态(执行sp_helpdb检测),无法自动恢复的处理
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 6)
- oracle 恢复学习 案例1 一个数据文件丢失 完全恢复数据库
- [转载] 误执行MSSQL数据库语句删除数据恢复方法--log explorer使用
- [旧稿]解决"恢复SPS2003备份,遇到“数据库架构太旧”的提示而无法执行恢复。"
- 重装系统通过数据恢复软件找回来的数据库文件提示不是有效的SQL SERVER文件的修复案例
- Oracle恢复数据库案例实战
- 数据库-sqlserver2005中执行delete语句后如何恢复
- [更新][自己的blog]解决"恢复SPS2003备份,遇到“数据库架构太旧”的提示而无法执行恢复。"
- DBA1 第十六章:执行数据库恢复
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 1)
- [小e笔记]之一步一步学习备份恢复——第三篇 数据库恢复案例(Part 7)