您的位置:首页 > 数据库

执行数据库恢复案例

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';

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐