操作系统: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
数据库版本: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博客 ” ,链接:http://blog.itpub.net/29802484/viewspace-2129575/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29802484/viewspace-2129575/