ARCHIVELOG模式下用户管理恢复联机重做日志文件—非活动组所有成员全部损坏

联机重做日志文件至少需要两组,oracle建议每组的成员至少要两个,也需要多路复用的。因为每组的成员的内容的都是一样的。同一组内只要有一个成员还存在就可以保证不丢数据的。

1、在open状态下非活动组所有成员全部损坏,可以重建一个成员。

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size              62917928 bytes  
  9. Database Buffers          100663296 bytes  
  10. Redo Buffers                2924544 bytes  
  11. 数据库装载完毕。  
  12. 数据库已经打开。  
  13. SQL> select * from v$log;  
  14.   
  15.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  16. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  17.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  18.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  19.          3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11  
  20.   
  21. SQL> select member from v$logfile;  
  22.   
  23. MEMBER  
  24. --------------------------------------------------------------------------------  
  25. /u01/app/oracle/oradata/orcl/redo03.log  
  26. /u01/app/oracle/oradata/orcl/redo02.log  
  27. /u01/app/oracle/oradata/orcl/redo01.log  
  28.   
  29. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.log  
  30.   
  31. SQL> alter system switch logfile;  
  32.   
  33. 系统已更改。  
  34.   
  35. SQL> alter system archive log current;  
  36. alter system archive log current  
  37. *  
  38. 第 1 行出现错误:  
  39. ORA-16038: 日志 3 sequence# 15 无法归档  
  40. ORA-00312: 联机日志 3 线程 1: '/u01/app/oracle/oradata/orcl/redo03.log'  
  41.   
  42. SQL> alter database clear unarchived logfile group 3;  
  43.   
  44. 数据库已更改。  
  45.   
  46. SQL> alter system archive log current;  
  47.   
  48. 系统已更改。  
SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
数据库已经打开。
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------
         1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11
         2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11
         3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log

SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.log

SQL> alter system switch logfile;

系统已更改。

SQL> alter system archive log current;
alter system archive log current
*
第 1 行出现错误:
ORA-16038: 日志 3 sequence# 15 无法归档
ORA-00312: 联机日志 3 线程 1: '/u01/app/oracle/oradata/orcl/redo03.log'

SQL> alter database clear unarchived logfile group 3;

数据库已更改。

SQL> alter system archive log current;

系统已更改。


2、在关闭状态下非活动组所有成员全部损坏,可以添加一个新组,删除旧组。

  1. SQL> conn /as sysdba  
  2. 已连接到空闲例程。  
  3. SQL> startup  
  4. ORACLE 例程已经启动。  
  5.   
  6. Total System Global Area  167772160 bytes  
  7. Fixed Size                  1266392 bytes  
  8. Variable Size              62917928 bytes  
  9. Database Buffers          100663296 bytes  
  10. Redo Buffers                2924544 bytes  
  11. 数据库装载完毕。  
  12. 数据库已经打开。  
  13. SQL> select * from v$log;  
  14.   
  15.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  16. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  17.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  18.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  19.          3          1         12   52428800          1 YES INACTIVE                474581 10-10月-11  
  20.   
  21. SQL> select member from v$logfile;  
  22.   
  23. MEMBER  
  24. --------------------------------------------------------------------------------  
  25. /u01/app/oracle/oradata/orcl/redo03.log  
  26. /u01/app/oracle/oradata/orcl/redo02.log  
  27. /u01/app/oracle/oradata/orcl/redo01.log  
  28.   
  29. SQL> shutdown immediate  
  30. 数据库已经关闭。  
  31. 已经卸载数据库。  
  32. ORACLE 例程已经关闭。  
  33. SQL> ! rm -rf /u01/app/oracle/oradata/orcl/redo03.log  
  34.   
  35. SQL> startup  
  36. ORACLE 例程已经启动。  
  37.   
  38. Total System Global Area  167772160 bytes  
  39. Fixed Size                  1266392 bytes  
  40. Variable Size              62917928 bytes  
  41. Database Buffers          100663296 bytes  
  42. Redo Buffers                2924544 bytes  
  43. 数据库装载完毕。  
  44. ORA-00313: 无法打开日志组 3 (用于线程 1) 的成员  
  45. ORA-00312: 联机日志 3 线程 1: '/u01/app/oracle/oradata/orcl/redo03.log'  
  46.   
  47. SQL> alter database add logfile group 4('/u01/app/oracle/oradata/orcl/redo04.log'size 50m;  
  48.   
  49. 数据库已更改。  
  50.   
  51. SQL> alter database drop logfile group 3;  
  52.   
  53. 数据库已更改。  
  54.   
  55. SQL> select * from v$log;  
  56.   
  57.     GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME  
  58. ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------------  
  59.          1          1         13   52428800          1 YES INACTIVE                474583 10-10月-11  
  60.          4          1          0   52428800          1 YES UNUSED                       0  
  61.          2          1         14   52428800          1 NO  CURRENT                 474585 10-10月-11  
  62.   
  63. SQL> select member from v$logfile;  
  64.   
  65. MEMBER  
  66. --------------------------------------------------------------------------------  
  67. /u01/app/oracle/oradata/orcl/redo02.log  
  68. /u01/app/oracle/oradata/orcl/redo01.log  
  69. /u01/app/oracle/oradata/orcl/redo04.log  
  70.   
  71. SQL> alter database open;  
  72.   
  73. 数据库已更改。  
  74.   
  75. SQL> select status from v$instance;  
  76.   
  77. STATUS  
  78. ------------  
  79. OPEN  
  80. <span style="font-family: Arial; background-color: rgb(255, 255, 255);"></span>  

猜你喜欢

转载自blog.csdn.net/lufei051/article/details/40681543