ITPub博客

首页 > 数据库 > Oracle > undo表空间出现坏块导致数据库重启问题解决

undo表空间出现坏块导致数据库重启问题解决

原创 Oracle 作者:zhangsharp20 时间:2016-12-02 15:31:23 0 删除 编辑
操作系统:AIX5.3
数据库版本:10.2.0.4.12

一、11月27日 11:40到11月28日 6:00做undo数据文件转储,命令如下:
run {
allocate channel c1 type 'sbt_tape';
allocate channel c2 type 'sbt_tape';
allocate channel c3 type 'sbt_tape';
allocate channel c4 type 'sbt_tape';
set newname for datafile 714 to '+YYJC/dwth/undotbs1.761n';
set newname for datafile 559 to '+YYJC/dwth/undotbs1.606n';
set newname for datafile 683 to '+YYJC/dwth/undotbs1.728n';
set newname for datafile 678 to '+YYJC/dwth/undotbs1.723n';
set newname for datafile 222 to '+YYJC/dwth/undotbs1.283n';
restore datafile 714;
restore datafile 559;
restore datafile 683;
restore datafile 678;
restore datafile 222;
switch datafile 714;
switch datafile 559;
switch datafile 683;
switch datafile 678;
switch datafile 222;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
尝试做数据文件恢复,发现需要应用的归档日志太多,耗费时间较长,故终止操作。




二、11月28日 10:00到11月28日11点对仍然有问题的undo段进行删除操作,具体步骤如下:


1、确定需要恢复的回滚段
select * from dba_rollback_segs where status='NEEDS RECOVERY';


2、关闭数据库监听,防止新会话产生
srvctl stop listener -n ods1
srvctl stop listener -n ods2


3、杀掉现有会话
ps -ef|grep DWTH|grep LOCAL=NO|awk '{print $2}'|xargs kill -9




4、备份参数文件
create pfile='/tmp/initDWTH1_20161128.ora' from spfile;


5、修改备份文件,跳过需要回滚的回滚段
vi /tmp/initDWTH1_20161128.ora
*.undo_management=manual
*._corrupted_rollback_segments=('_SYSSMU27$','_SYSSMU46$')


6、关闭数据库,用修改过的pfile以限制会话连接方式启动数据库
shutdown immediate


startup restrict open pfile='/tmp/initDWTH1_20161128.ora';




7、删除回滚段信息


drop rollback segment
SQL>drop rollback segment "_SYSSMU27$";
SQL>drop rollback segment "_SYSSMU46$";


8、以原有的默认的spfile启动数据库
shutdown immediate;




srvctl start database -d DWTH




来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29802484/viewspace-2129575/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-08-12

  • 博文量
    382
  • 访问量
    801412