您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 贵港分类信息网,免费分类信息发布

Oracle redo损坏的处理

2026/1/20 16:08:34发布9次查看
如果光是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: {=suggested | filename | auto | cancel}
/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: {=suggested | filename | auto | cancel}
/database/oradata/skyread/redo05.log
log applied.
media recovery complete.
sql> alter database open resetlogs;
database altered.
如果是未归档的活动在线日志文件损坏,那么需要有数据文件的备份才能恢复,这里不再详细介绍。
贵港分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product