CD-ORACLE 发表于 2016-8-30 20:44:43

ora-01578&&ora-01110

环境:redhat 6.5 + oracle 11.2.0.4 单机

问题:_CORRUPTED_ROLLBACK_SEGMENTS错误回滚段填写的疑问

告警日志信息:

Errors in file /home/oracle/app/diag/rdbms/devdb/DEVDB/trace/DEVDB_ora_14085.trc  (incident=1353):
ORA-01578: ORACLE ????? (??? 3, ?? 144)
ORA-01110: ???? 3: '/home/oracle/app/oradata/DEVDB/undotbs01.dbf'
Incident details in: /home/oracle/app/diag/rdbms/devdb/DEVDB/incident/incdir_1353/DEVDB_ora_14085_i1353.trc
Errors in file /home/oracle/app/diag/rdbms/devdb/DEVDB/trace/DEVDB_ora_14085.trc:
ORA-01578: ORACLE ????? (??? 3, ?? 144)
ORA-01110: ???? 3: '/home/oracle/app/oradata/DEVDB/undotbs01.dbf'
Errors in file /home/oracle/app/diag/rdbms/devdb/DEVDB/trace/DEVDB_ora_14085.trc:
ORA-01578: ORACLE ????? (??? 3, ?? 144)
ORA-01110: ???? 3: '/home/oracle/app/oradata/DEVDB/undotbs01.dbf'
Error 1578 happened during db open, shutting down database

数据文件信息:

SQL> l
  1* select * from v$dbfile

     FILE# NAME
---------- --------------------------------------------------
         4 /home/oracle/app/oradata/DEVDB/users01.dbf
         3 /home/oracle/app/oradata/DEVDB/undotbs01.dbf
         2 /home/oracle/app/oradata/DEVDB/sysaux01.dbf
         1 /home/oracle/app/oradata/DEVDB/system01.dbf
         5 /home/oracle/app/oradata/DEVDB/cbmain_data_01.dbf
         6 /home/oracle/app/oradata/RDPDB/cbmain_data_01.dbf

已选择6行。

通过以下参数及隐含参数来完成恢复过程。

UNDO_MANAGEMENT=MANUAL
_OFFLINE_ROLLBACK_SEGMENTS=(_SYSSMU1$, _SYSSMU2$, _SYSSMU3$, …etc)
or
_CORRUPTED_ROLLBACK_SEGMENTS=(_SYSSMU1$, _SYSSMU2$, _SYSSMU3$, …etc)

由于数据库不能正常open,不能通过dba_rollback_segs来获取对应的回滚段信息。通过如下方法来获取

$strings  system01.dbf  | grep _SYSSMU | cut -d $ -f 1 | sort -u
        <9    ' and substr(drs.segment_name,1,7) != ''_SYSSMU''');
and substr(drs.segment_name,1,7) != '_SYSSMU'
and substr(drs.segment_name,1,7) != '_SYSSMU'
        c;    ' and substr(drs.segment_name,1,7) != ''_SYSSMU'' ' ||
_SYSSMU10_1197734989
_SYSSMU10_3470984480
_SYSSMU11_894599432
_SYSSMU12_1573055333
_SYSSMU1_2603659607
_SYSSMU13_3860906822
_SYSSMU1_3724004606
_SYSSMU14_3319140121
_SYSSMU15_1436577151
_SYSSMU16_1689093467
_SYSSMU17_1049158485
_SYSSMU18_1557221903
_SYSSMU19_2284825117
_SYSSMU20_2312497597
_SYSSMU2_2996391332
_SYSSMU2_73114111
_SYSSMU3_1723003836
_SYSSMU3_596277271
_SYSSMU4_1254879796
_SYSSMU4_2523322691
_SYSSMU5_4008018903
_SYSSMU5_898567397
_SYSSMU6_1263032392
_SYSSMU6_4235600416
_SYSSMU7_2070203016
_SYSSMU7_2271882308
_SYSSMU8_517538920
_SYSSMU8_854328387
_SYSSMU9_1650507775
_SYSSMU9_508477954

问题一:
隐含参数回滚段列表_OFFLINE_ROLLBACK_SEGMENTS OR _CORRUPTED_ROLLBACK_SEGMENTS应当填写那些回滚段?

问题二:

回滚段_SYSSMU9_1650507775与_SYSSMU9_508477954,二者的区别在哪里?对应的回滚段参数应当填写哪一个回滚段?

Liu Maclean(刘相兵 发表于 2016-8-31 16:06:20

隐含参数回滚段列表_OFFLINE_ROLLBACK_SEGMENTS OR _CORRUPTED_ROLLBACK_SEGMENTS应当填写那些回滚段?

==> 极端一点 上面脚本得到的信息全部填进去。 否则要分析 哪些undo segment上出现了ORA-01578

回滚段_SYSSMU9_1650507775与_SYSSMU9_508477954,二者的区别在哪里?对应的回滚段参数应当填写哪一个回滚段?

==>可以都填进去 , 来源应当是undo$ 基表

CD-ORACLE 发表于 2016-9-3 00:50:28

谢谢刘大的回复。
页: [1]
查看完整版本: ora-01578&&ora-01110