联机日志文件损坏后的数据恢复,
1、非当前的联机日志文件损坏或丢失后的恢复
1、非当前的联机日志文件损坏或丢失后的恢复
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 11 104857600 1 NO INACTIVE 685884 27-7月 -06
2 1 12 104857600 1 NO INACTIVE 730114 27-7月 -06
3 1 13 104857600 1 NO CURRENT 881907 28-7月 -06
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 11 104857600 1 NO INACTIVE 685884 27-7月 -06
2 1 12 104857600 1 NO INACTIVE 730114 27-7月 -06
3 1 13 104857600 1 NO CURRENT 881907 28-7月 -06
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
删除D:\ORACLE\ORADATA\DB01\REDO01.LOG后启动数据库
SQL> startup
ORACLE 例程已经启动。
ORACLE 例程已经启动。
Total System Global Area 139533192 bytes
Fixed Size 453512 bytes
Variable Size 113246208 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\DB01\REDO01.LOG'
Fixed Size 453512 bytes
Variable Size 113246208 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'D:\ORACLE\ORADATA\DB01\REDO01.LOG'
错误提示日志组1坏掉了!
SQL> select status from v$instance;
STATUS
------------
MOUNTED
------------
MOUNTED
此时有两种方法可以恢复日志,
方法一:把这个日志组删除,重新建一个新的;
SQL> alter database drop logfile group 1;
方法一:把这个日志组删除,重新建一个新的;
SQL> alter database drop logfile group 1;
数据库已更改。
SQL> alter database add logfile group 1
2 ('d:\oracle\oradata\db01\redo01.log') size 100M;
2 ('d:\oracle\oradata\db01\redo01.log') size 100M;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 YES UNUSED 0
2 1 12 104857600 1 NO INACTIVE 730114 27-7月 -06
3 1 13 104857600 1 NO CURRENT 881907 28-7月 -06
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 YES UNUSED 0
2 1 12 104857600 1 NO INACTIVE 730114 27-7月 -06
3 1 13 104857600 1 NO CURRENT 881907 28-7月 -06
方法二:用alter database clear logfile group xx来恢复
关闭数据库,删除D:\ORACLE\ORADATA\DB01\REDO02.LOG
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
关闭数据库,删除D:\ORACLE\ORADATA\DB01\REDO02.LOG
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 139533192 bytes
Fixed Size 453512 bytes
Variable Size 113246208 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 2 (线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'D:\ORACLE\ORADATA\DB01\REDO02.LOG'
Fixed Size 453512 bytes
Variable Size 113246208 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-00313: 无法打开日志组 2 (线程 1) 的成员
ORA-00312: 联机日志 2 线程 1: 'D:\ORACLE\ORADATA\DB01\REDO02.LOG'
SQL> alter database clear logfile group 2;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 NO CLEARING_CURRENT 956570 28-7月 -06
2 1 0 104857600 1 NO UNUSED 0 27-7月 -06
3 1 13 104857600 1 NO INACTIVE 881907 28-7月 -06
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 NO CLEARING_CURRENT 956570 28-7月 -06
2 1 0 104857600 1 NO UNUSED 0 27-7月 -06
3 1 13 104857600 1 NO INACTIVE 881907 28-7月 -06
SQL> alter database open;
数据库已更改。
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 NO CLEARING 956570 28-7月 -06
2 1 15 104857600 1 NO CURRENT 957431 28-7月 -06
3 1 13 104857600 1 NO INACTIVE 881907 28-7月 -06
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
1 1 0 104857600 1 NO CLEARING 956570 28-7月 -06
2 1 15 104857600 1 NO CURRENT 957431 28-7月 -06
3 1 13 104857600 1 NO INACTIVE 881907 28-7月 -06
SQL>