半夜在itpub上看到有人发贴,说不小心删除了redo所有日志,导致数据库无法启动,因此模拟了一下。 如下:
OS: Oracle Linux Server release 5.7
DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
[oracle@yoon yoon]$ ls
control01.ctl redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf yoon01.dbf
[oracle@yoon yoon]$ rm -rf redo01.log redo02.log redo03.log
[oracle@yoon yoon]$ ls
control01.ctl sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf yoon01.dbf
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2228904 bytes
Variable Size 956304728 bytes
Database Buffers 687865856 bytes
Redo Buffers 7118848 bytes
Database mounted.
ORA-03113: end-of-file on communication channel
Process ID: 3775
Session ID: 1 Serial number: 5
SQL>
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2228904 bytes
Variable Size 956304728 bytes
Database Buffers 687865856 bytes
Redo Buffers 7118848 bytes
Database mounted.
SQL>
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/oracle/oradata/yoon/redo03.log
/u01/oracle/oradata/yoon/redo02.log
/u01/oracle/oradata/yoon/redo01.log
SQL>
SQL> alter database clear unarchived logfile group 1;
Database altered.
SQL> alter database clear unarchived logfile group 2;
Database altered.
SQL> alter database clear unarchived logfile group 3;
Database altered.
SQL> alter database open;
Database altered.
SQL>
SQL> select status from v$instance;
STATUS
------------------------------------
OPEN
SQL>