Oracle数据库基于用户管理的备份与恢复之恢复重做日志_Oracle_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > Oracle > Oracle数据库基于用户管理的备份与恢复之恢复重做日志

Oracle数据库基于用户管理的备份与恢复之恢复重做日志

 2013/8/10 1:23:43    程序员俱乐部  我要评论(0)
  • 摘要:Oracle数据库中基于用户管理的备份与恢复之重做日志的恢复过程,接下来我们就一一介绍。因为日志组的某个日志成员损坏,如下:SQL>selectgroup#,status,memberfromv$logfile;GROUP#STATUSMEMBER---------------------------------------------------------------------------------------3F:\ORACLE\PRODUCT\10.2
  • 标签:ORA 数据库 数据 用户 Oracle Oracle数据库

Oracle数据库中基于用户管理的备份与恢复之重做日志的恢复过程,接下来我们就一一介绍。

因为日志组的某个日志成员损坏,如下:

    class="dp-xml">
  1. SQL> select group#,status,member from v$logfile;  
  2.  
  3. GROUP# STATUS  MEMBER  
  4.  
  5. ---------- ------- ----------------------------------------------------------------------  
  6.  
  7. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG  
  8.  
  9. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG  
  10.  
  11. 1         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG  
  12.  
  13. 1         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG  
  14.  
  15. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02_ADD.LOG  
  16.  
  17. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03_ADD.LOG 

已选择6行。

--使用360强力删除REDO01_ADD.LOG文件,以模拟日志成员损坏。

--多次切换日志,以使刚删除的redo文件处于invalid状态。

SQL> alter system  switch logfile;

系统已更改。

SQL> alter system  switch logfile;

系统已更改。

  1. ......  
  2.  
  3. SQL> select group#,status from v$log;  
  4.  
  5. GROUP# STATUS  
  6.  
  7. ---------- ----------------  
  8.  
  9. 1 CURRENT  
  10.  
  11. 2 ACTIVE  
  12.  
  13. 3 ACTIVE  
  14.  
  15. SQL> select group#,status,member from v$logfile;  
  16.  
  17. GROUP# STATUS  MEMBER  
  18.  
  19. ---------- ------- ----------------------------------------------------------------------  
  20.  
  21. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG  
  22.  
  23. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG  
  24.  
  25. 1         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG  
  26.  
  27. 1 INVALID F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG  
  28.  
  29. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02_ADD.LOG  
  30.  
  31. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03_ADD.LOG 

已选择6行。

--如果为为当前日志组成员,则不能被删除,这时需要切换日志,才能够删除成员。

  1. SQL> alter database drop logfile member 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG';  
  2.  
  3. alter database drop logfile member 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG'  
  4.  

第1 行出现错误

ORA-01609: 日志 1 是线程 1 的当前日志 - 无法删除成员

ORA-00312: 联机日志 1 线程 1: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'

ORA-00312: 联机日志 1 线程 1: 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG'

SQL> alter system  switch logfile;

系统已更改。

  1. SQL> select group#,status from v$log;  
  2.  
  3. GROUP# STATUS  
  4.  
  5. ---------- ----------------  
  6.  
  7. 1 ACTIVE  
  8.  
  9. 2 CURRENT  
  10.  
  11.  
  12. 3 ACTIVE  
  13.  
  14. SQL> alter database drop logfile member 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD.LOG'; 

数据库已更改。

--添加日志组成员

SQL> alter database add logfile member 'F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD_NEW.LOG' to group 1;

数据库已更改。

  1. SQL> select group#,status,member from v$logfile;  
  2.  
  3. GROUP# STATUS  MEMBER  
  4.  
  5. ---------- ------- ----------------------------------------------------------------------  
  6.  
  7. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG  
  8.  
  9. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG  
  10.  
  11. 1         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG  
  12.  
  13. 1 INVALID F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01_ADD_NEW.LOG  
  14.  
  15. 2         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02_ADD.LOG  
  16.  
  17. 3         F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03_ADD.LOG 

已选择6行。

注意,新增加的日志组成员状态也为invalid。

关于Oracle数据库基于用户管理的备份与恢复之重做日志的恢复就介绍到这里了,希望本次的介绍能够给您带来一些收获!

发表评论
用户名: 匿名