Oracle redo损坏的处理
Jun 07, 2016 pm 05:29 PM如果光是INACTIVE状态的redo损坏,有三种方法可以恢复: 1.clear logfile 相关命令: alter database clear logfile
如果光是INACTIVE状态的redo损坏,有三种方法可以恢复:
1.clear logfile
相关命令:
alter database clear logfile '/database/oradata/skyread/redo04.log'; --已经归档的操作
alter database clear unarchived logfile '/database/oradata/skyread/redo04.log'; --inactive未归档的操作
2.不完全恢复until cancel
启动到mount状态运行recover database until cancel;
3.重建控制文件resetlogs方法
采用重建控制文件脚本resetlogs的方式重建,应用相关redo,完成介质恢复,resetlogs不检查日志文件,,所以不会报错
活动的在线日志损坏而且异常关闭的恢复:
SQL> alter database backup controlfile to trace as '/home/Oracle/ctl.sql' reuse resetlogs;
Database altered.
SQL> create table t1 as select * from dba_objects;
Table created.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------------- ---------------- ---------------- ---------------- ---------------- --- ---------------- ---------------- -------------------
1 1 31 536870912 1 YES INACTIVE 122695597193 2013-05-29 14:41:24
2 1 32 536870912 1 YES INACTIVE 122695676280 2013-05-31 13:38:04
3 1 29 536870912 1 YES INACTIVE 122695590894 2013-05-29 10:29:29
4 1 33 536870912 1 YES ACTIVE 122695698110 2013-05-31 14:15:47
5 1 34 536870912 1 NO CURRENT 122695861946 2013-06-04 13:48:31
破坏活动归档的日志文件,破坏控制文件,异常关机:
SQL> shutdown abort;
ORACLE instance shut down.
启动到mount状态时报错:
SQL> startup;
ORACLE instance started.
Total System Global Area 5049942016 bytes
Fixed Size 2090880 bytes
Variable Size 1375733888 bytes
Database Buffers 3657433088 bytes
Redo Buffers 14684160 bytes
ORA-00205: error in identifying control file, check alert log for more info
重建控制文件,注意如果是noresetlogs是不成功的,这里由于redo04.log损坏,只能采用resetlogs,不检查日志文件
SQL> CREATE CONTROLFILE REUSE DATABASE "SKYREAD" NORESETLOGS FORCE LOGGING ARCHIVELOG
2 MAXLOGFILES 20
3 MAXLOGMEMBERS 5
4 MAXDATAFILES 1000
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2337
7 LOGFILE
8 GROUP 1 '/database/oradata/skyread/redo01.log' SIZE 512M,
9 GROUP 2 '/database/oradata/skyread/redo02.log' SIZE 512M,
10 GROUP 3 '/database/oradata/skyread/redo03.log' SIZE 512M,
11 GROUP 4 '/database/oradata/skyread/redo04.log' SIZE 512M,
12 GROUP 5 '/database/oradata/skyread/redo05.log' SIZE 512M
13 DATAFILE
14 '/database/oradata/skyread/system01.dbf',
15 '/database/oradata/skyread/tbs_test.dbf',
16 '/database/oradata/skyread/sysaux01.dbf',
17 '/database/oradata/skyread/users01.dbf',
18 '/database/oradata/skyread/system02.dbf',
19 '/database2/oradata/skyread/undotbs02.dbf',
20 '/database2/oradata/skyread/TBS_MRPMUSIC01.dbf',
21 '/database/oradata/skyread/sf01.dbf'
22 CHARACTER SET UTF8;
CREATE CONTROLFILE REUSE DATABASE "SKYREAD" NORESETLOGS FORCE LOGGING ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01565: error in identifying file '/database/oradata/skyread/redo04.log'
ORA-27046: file size is not a multiple of logical block size
Additional information: 1
SQL> CREATE CONTROLFILE REUSE DATABASE "SKYREAD" RESETLOGS FORCE LOGGING ARCHIVELOG
2 MAXLOGFILES 20
3 MAXLOGMEMBERS 5
4 MAXDATAFILES 1000
5 MAXINSTANCES 8
6 MAXLOGHISTORY 2337
7 LOGFILE
8 GROUP 1 '/database/oradata/skyread/redo01.log' SIZE 512M,
9 GROUP 2 '/database/oradata/skyread/redo02.log' SIZE 512M,
10 GROUP 3 '/database/oradata/skyread/redo03.log' SIZE 512M,
11 GROUP 4 '/database/oradata/skyread/redo04.log' SIZE 512M,
12 GROUP 5 '/database/oradata/skyread/redo05.log' SIZE 512M
13 DATAFILE
14 '/database/oradata/skyread/system01.dbf',
15 '/database/oradata/skyread/tbs_test.dbf',
16 '/database/oradata/skyread/sysaux01.dbf',
17 '/database/oradata/skyread/users01.dbf',
18 '/database/oradata/skyread/system02.dbf',
19 '/database2/oradata/skyread/undotbs02.dbf',
20 '/database2/oradata/skyread/TBS_MRPMUSIC01.dbf',
21 '/database/oradata/skyread/sf01.dbf'
22 CHARACTER SET UTF8;
Control file created.
下面是一系列的打开过程,由于redo04.log是活动的,所以需要恢复
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/database/oradata/skyread/system01.dbf'
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> recover database using backup controlfile;
ORA-00279: change 122695861946 generated at 06/04/2013 13:48:31 needed for thread 1
ORA-00289: suggestion : /database/oradata/arch/1_34_815416841.dbf
ORA-00280: change 122695861946 for thread 1 is in sequence #34
Specify log: {
/database/oradata/arch/1_34_815416841.dbf
ORA-00308: cannot open archived log '/database/oradata/arch/1_34_815416841.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
应用日志并打开数据库:
Specify log: {
/database/oradata/skyread/redo05.log
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.
如果是未归档的活动在线日志文件损坏,那么需要有数据文件的备份才能恢复,这里不再详细介绍。

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

atur cara C untuk mencari faktor perdana terbesar bagi suatu nombor

Top 10 Global Ranking Platform Perdagangan Mata Wang Maya Digital (2025 Perjalanan)

10 Pertukaran Teratas dalam Bulatan Mata Wang Pada 2025 Ranking Aplikasi Mata Wang Digital Terkini

10 platform perdagangan teratas untuk aplikasi mata wang digital, cadangan aplikasi platform spekulasi mata wang tetap

10 platform perdagangan mata wang digital teratas senarai terbaru 10 platform perdagangan mata wang digital teratas

Apakah platform mata wang digital yang boleh dipercayai?

Platform Perdagangan Apl Digital Teratas Top10 Apping Mata Wang Mata Maya 2025

10 Teratas Disyorkan 10 Kedudukan Aplikasi Dagangan Digital Digital
