oracle redo internal,Redo 损坏彻底解决!

解决回滚段的问题,无外乎就是新建Undo tablespace了。这个时候,又得用上另外一个隐含参数了:_corrupted_rollback_segments。

1、先创建一个新的回撤销表空间。

2、再将该表空间置为默认的撤销表空间。

3、创建pfile

4、修改pfile,将该参数加入到初始化参数中去:

_corrupted_rollback_segments=("_SYSSMU1$","_SYSSMU2$","_SYSSMU3$","_SYSSMU4$","_SYSSMU5$","_SYSSMU6$","_SYSSMU7$","_SYSSMU8$","_SYSSMU9$","_SYSSMU10$&quot

9f7588d3b12cd5d674b5f81c0b8fc6cb.gif

给一段取得回滚段的代码:

[php]

declare

segs varchar2(200);

begin

for i in (

select segment_name seg

from dba_rollback_segs

where tablespace_name='UNDOTBS1'

)

loop

segs:=segs||',"'||i.seg||'"';

end loop;

segs:=substr(segs,2);

dbms_output.put_line(segs);

end;

"_SYSSMU1$","_SYSSMU2$","_SYSSMU3$","_SYSSMU4","_SYSSMU5$","_SYSSMU6$","_SYSSMU7","_SYSSMU8$","_SYSSMU9$","_SYSSMU10$"

..[/php]

此时用新的pfile启动。ALERT的部分内容:

Starting up ORACLE RDBMS Version: 9.2.0.1.0.

System parameters with non-default values:

processes                = 150

timed_statistics         = FALSE

shared_pool_size         = 83886080

_shared_pool_reserved_pct= 20

_shared_pool_reserved_min_alloc= 40960

large_pool_size          = 8388608

java_pool_size           = 0

trace_enabled            = TRUE

backup_tape_io_slaves    = TRUE

_object_statistics       = TRUE

_dump_system_state_scope = GLOBAL

control_files            = D:\oracle\oradata\rman\control01.ctl, D:\oracle\oradata\rman\control02.ctl, D:\oracle\oradata\rman\control03.ctl

db_block_size            = 4096

db_cache_size            = 134217728

compatible               = 9.2.0.0.0

log_archive_start        = TRUE

log_checkpoint_timeout   = 0

_disable_logging         = FALSE

db_files                 = 65534

db_file_multiblock_read_count= 16

fast_start_mttr_target   = 0

_allow_resetlogs_corruption= TRUE

_allow_terminal_recovery_corruption= TRUE

_log_space_errors        = TRUE

_rollback_segment_initial= 15

_rollback_segment_count  = 20

undo_management          = AUTO

undo_tablespace          = UNDOTBS2

undo_retention           = 10800

remote_login_passwordfile= EXCLUSIVE

db_domain                =

instance_name            = rman

utl_file_dir             = d:\oracle\admin\rman\

cursor_sharing           = SIMILAR

hash_join_enabled        = TRUE

background_dump_dest     = D:\oracle\admin\rman\bdump

user_dump_dest           = D:\oracle\admin\rman\udump

core_dump_dest           = D:\oracle\admin\rman\cdump

session_max_open_files   = 1000

sort_area_size           = 2097152

_sort_multiblock_read_count= 16

db_name                  = rman

open_cursors             = 300

sql_trace                = FALSE

partition_view_enabled   = TRUE

star_transformation_enabled= TRUE

_fast_full_scan_enabled  = TRUE

_optim_enhance_nnull_detection= TRUE

_temp_tran_cache         = TRUE

_serial_direct_read      = TRUE

_ncmb_readahead_enabled  = 16

query_rewrite_enabled    = TRUE

pga_aggregate_target     = 10485760

_smm_auto_cost_enabled   = TRUE

_smm_advice_enabled      = TRUE

_rowsource_execution_statistics= TRUE

statistics_level         = ALL

PMON started with pid=2

DBW0 started with pid=3

LGWR started with pid=4

CKPT started with pid=5

SMON started with pid=6

RECO started with pid=7

Mon May 16 21:15:15 2005

ARCH: STARTING ARCH PROCESSES

ARC0 started with pid=8

ARC0: Archival started

ARC1 started with pid=9

Mon May 16 21:15:15 2005

ARCH: STARTING ARCH PROCESSES COMPLETE

ARC1: Archival started

Mon May 16 21:15:16 2005

ARC0: Thread not mounted

Mon May 16 21:15:17 2005

ARC1: Thread not mounted

Mon May 16 21:15:19 2005

ALTER DATABASE   MOUNT

Mon May 16 21:15:24 2005

Successful mount of redo thread 1, with mount id 1444895591.

Mon May 16 21:15:24 2005

Database mounted in Exclusive Mode.

Completed: ALTER DATABASE   MOUNT

Mon May 16 21:15:25 2005

ALTER DATABASE OPEN

Mon May 16 21:15:25 2005

Beginning crash recovery of 1 threads

Mon May 16 21:15:26 2005

Started first pass scan

Mon May 16 21:15:27 2005

Completed first pass scan

289 redo blocks read, 97 data blocks need recovery

Mon May 16 21:15:27 2005

Started recovery at

Thread 1: logseq 17, block 3, scn 0.0

Recovery of Online Redo Log: Thread 1 Group 2 Seq 17 Reading mem 0

Mem# 0 errs 0: D:\ORACLE\ORADATA\RMAN\REDO02.LOG

Mon May 16 21:15:28 2005

Ended recovery at

Thread 1: logseq 17, block 292, scn 0.1218622

97 data blocks read, 97 data blocks written, 289 redo blocks read

Crash recovery completed successfully

Mon May 16 21:15:30 2005

Thread 1 advanced to log sequence 18

Thread 1 opened at log sequence 18

Current log# 3 seq# 18 mem# 0: D:\ORACLE\ORADATA\RMAN\REDO03.LOG

Successful open of redo thread 1.

Mon May 16 21:15:31 2005

MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set

Mon May 16 21:15:31 2005

SMON: enabling cache recovery

Mon May 16 21:15:32 2005

ARC0: Media recovery disabled

Mon May 16 21:15:34 2005

Undo Segment 11 Onlined

Undo Segment 12 Onlined

Undo Segment 13 Onlined

Undo Segment 14 Onlined

Undo Segment 15 Onlined

Undo Segment 16 Onlined

Undo Segment 17 Onlined

Undo Segment 18 Onlined

Undo Segment 19 Onlined

Undo Segment 20 Onlined

Successfully onlined Undo Tablespace 7.

Mon May 16 21:15:34 2005

SMON: enabling tx recovery

Mon May 16 21:15:38 2005

Database Characterset is ZHS16GBK

Mon May 16 21:15:38 2005

SMON: about to recover undo segment 6

Mon May 16 21:15:44 2005

replication_dependency_tracking turned off (no async multimaster replication found)

Completed: ALTER DATABASE OPEN

Mon May 16 21:15:46 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

Mon May 16 21:15:46 2005

Errors in file d:\oracle\admin\rman\udump\rman_p000_1040.trc:

ORA-00600: internal error code, arguments: [2023], [0], [0], [], [], [], [], []

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as available

.................................................................

从这里可以看出,数据库试图恢复segment 6。看一下segment 6的标志:

[php]

SQL> select segment_name,status

2   from dba_rollback_segs

3   where segment_name='_SYSSMU6$' ;

SEGMENT_NAME                   STATUS

------------------------------ ---------------

_SYSSMU6$                      NEEDS RECOVERY

..[/php]

此时1~10的其它回滚段状态为offline,现在都可以删除了:

SQL> drop rollback segment "_SYSSMU1$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU2$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU3$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU4$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU5$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU6$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU7$" ;

drop rollback segment "_SYSSMU7$"

*

回退段已删除。

SQL> drop rollback segment "_SYSSMU8$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU9$" ;

回退段已删除。

SQL> drop rollback segment "_SYSSMU10$" ;

回退段已删除。

ALERT文件的内容:

Mon May 16 21:30:00 2005

drop rollback segment "_SYSSMU7$"

Mon May 16 21:30:00 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:30:00 2005

Completed: drop rollback segment "_SYSSMU7$"

Mon May 16 21:35:07 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:39:56 2005

drop rollback segment "_SYSSMU1$"

Mon May 16 21:39:56 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:39:56 2005

Completed: drop rollback segment "_SYSSMU1$"

Mon May 16 21:39:59 2005

drop rollback segment "_SYSSMU2$"

Mon May 16 21:39:59 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:39:59 2005

Completed: drop rollback segment "_SYSSMU2$"

Mon May 16 21:40:01 2005

drop rollback segment "_SYSSMU3$"

Mon May 16 21:40:01 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:40:01 2005

Completed: drop rollback segment "_SYSSMU3$"

Mon May 16 21:40:03 2005

drop rollback segment "_SYSSMU4$"

Mon May 16 21:40:03 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:40:03 2005

Completed: drop rollback segment "_SYSSMU4$"

Mon May 16 21:40:06 2005

drop rollback segment "_SYSSMU5$"

Mon May 16 21:40:06 2005

SMON: about to recover undo segment 6

SMON: mark undo segment 6 as needs recovery

Mon May 16 21:40:06 2005

Completed: drop rollback segment "_SYSSMU5$"

Mon May 16 21:40:09 2005

drop rollback segment "_SYSSMU6$"

Completed: drop rollback segment "_SYSSMU6$"

Mon May 16 21:40:12 2005

drop rollback segment "_SYSSMU7$"

ORA-1534 signalled during: drop rollback segment "_SYSSMU7$" ...

Mon May 16 21:40:15 2005

drop rollback segment "_SYSSMU8$"

Completed: drop rollback segment "_SYSSMU8$"

Mon May 16 21:40:18 2005

drop rollback segment "_SYSSMU9$"

Completed: drop rollback segment "_SYSSMU9$"

Mon May 16 21:40:21 2005

drop rollback segment "_SYSSMU10$"

Completed: drop rollback segment "_SYSSMU10$"

既然这些回滚段已经删除了,那_corrupted_rollback_segments已经不用了,将其清除或者值清空:

ALTER SYSTEM SET _corrupted_rollback_segments='' SCOPE=SPFILE;

当再次打开数据库后,一切就跟原来一样了,CPU也不100%占用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值