undo 损坏处理-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 3502996
  • 博文数量: 718
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7790
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(718)

文章存档

2024年(4)

2023年(74)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

最近访客
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2021-02-09 16:20:09

转自:https://blog.csdn.net/tianlesoftware/article/details/6261475

二.  undo 损坏的情况


       了解了第一部分的补充知识后,我们在来看一下undo 损坏的情况。 出现这种情况,大多数是因为异常宕机,在启动的时候报的错误。db 不能启动。
       比如:ora-00600: internal error code, arguments: [4194],  
       对于undo 损坏的情况,能用备份恢复最好,如果不能,就只能通过一些特殊的方法来恢复。


2.1 方法一,使用system segment。
在blog:
       oracle undo 表空间管理
       http://blog.csdn.net/tianlesoftware/archive/2010/07/11/5689558.aspx
 
提到了一种方法,就是使用system 的回滚段, 步骤如下:
 
(1)用spfile 创建pfile,然后修改参数:
#*.undo_tablespace='undotbs1'
#*.undo_management='auto'
#*.undo_tablespace
#*.undo_retention
undo_management='manual'
rollback_segments='system'
 
(2)用修改之后的pfile,重启db
sql> startup mount pfile='f:/initorcl.ora' ;
 
(3)删除原来的表空间,创建新的undo 表空间
sql> drop tablespace undotbs;
sql> create undo tablespace undotbs1 datafile '/u01/oradata/undotbs1.dbf' size 10m;
 
(4)关闭数据库,修改pfile参数,然后用新的pfile创建spfile,在正常启动数据库。
*.undo_tablespace='undotbs1'
*.undo_management='auto'
#undo_management='manual'
#rollback_segments='system'
 
 
2.2. 方法二:跳过损坏的segment
       在方法一里面,我们使用了system segment。 通过第一部分我们了解到,undo segment 有多个,我们可以通过alert log 来查看正在使用的是哪些segment,这些段有可能损坏了。 我们只需要把这些损坏的segment 跳过,先正常启动db,在创建新的undo 表空间,在切换一下。
 
(1)修改pfile,添加参数:
*._corrupted_rollback_segments='_syssmu11$','_syssmu12$','_syssmu13$'
 
这些字段的值,我们通过alert log 查看。 也可以通过如下命令查看:
#strings system01.dbf | grep _syssmu | cut -d $ -f 1 | sort -u
 
(2)用修改之后的pfile启动db
       因为跳过了哪些损坏的segment,所以db 可以正常启动。
 
(3)创建新的undo 表空间,并切换过来
 
sql> create undo tablespace undotbs1 datafile '/u01/oradata/undotbs1.dbf' size 10m;
sql> alter system set undo_tablespace=undotbs1;
sql> drop tablespace undotbs;
 
(4)修改pfile,创建spfile,并正常启动
删除:
*._corrupted_rollback_segments='_syssmu11$','_syssmu12$','_syssmu13$'
 
 
以上就是undo 出现故障的2种处理方法。

阅读(1925) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图