现在Oracle的工作的撤销模式,一般为AUTO,但是如果工作在MANUAL模式下,则ROLLBACK_SEGMENTS是必须要设置的,
如果没有设置,会导致Oracle在alter database open时,打不开数据,实例终止。
以下是一次关于ROLLBACK_SEGMENTS的查错过程:
自已设置错误:
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> alter system set rollback_segments = '' scope = spfile;
系统已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
SQL> alter database mount;
数据库已更改。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01092: ORACLE 实例终止。强制断开连接
################
# 查看警告文件 #
################
.....
alter database open
Mon Jun 16 14:25:07 2008
Thread 1 opened at log sequence 603
Current log# 3 seq# 603 mem# 0: D:\ORACLE\ORADATA\GIS\REDO03.LOG
Successful open of redo thread 1
Mon Jun 16 14:25:07 2008
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Mon Jun 16 14:25:07 2008
SMON: enabling cache recovery
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\udump\gis_ora_644.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Error 1534 happened during db open, shutting down database
USER: terminating instance due to error 1534
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_psp0_3604.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_dbw0_628.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_mman_1284.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_lgwr_2684.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_ckpt_3964.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:07 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_pmon_1256.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:08 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_reco_3972.trc:
ORA-01534: ??? '' ???
Mon Jun 16 14:25:08 2008
Errors in file d:\oracle\product\10.2.0\admin\gis\bdump\gis_smon_2800.trc:
ORA-01534: ??? '' ???
Instance terminated by USER, pid = 644
ORA-1092 signalled during: alter database open...
####################
# gis_ora_644.trc #
####################
错误报告:
Dump file d:\oracle\product\10.2.0\admin\gis\udump\gis_ora_644.trc
Mon Jun 16 14:24:57 2008
ORACLE V10.2.0.1.0 - Production vsnsta=0
vsnsql=14 vsnxtr=3
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Windows XP Version V5.1 Service Pack 2
CPU : 2 - type 586
Process Affinity : 0x00000000
Memory (Avail/Total): Ph:289M/894M, Ph+PgF:976M/1751M, VA:1657M/2047M
Instance name: gis
Redo thread mounted by this instance: 0
Oracle process number: 15
Windows thread id: 644, image: ORACLE.EXE (SHAD)
*** SERVICE NAME:() 2008-06-16 14:24:57.953
*** SESSION ID:(159.1) 2008-06-16 14:24:57.953
kccsga_update_ckpt: num_1 = 8, num_2 = 0, num_3 = 0, lbn_2 = 0, lbn_3 = 0
*** 2008-06-16 14:25:07.546
ORA-01534: ??? '' ???
通过查询错误消息号:
ORA-01534 rollback segment 'string' doesn't exist
Cause: During ALTER or DROP ROLLBACK SEGMENT, the specified rollback segment name is unknown.
Action: Use the correct rollback segment name.
查询参数ROLLBACK_SEGMENTS;
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> show parameter rollback_segments;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
rollback_segments string
SQL> show parameter undo_management;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
改回rollback_segments到system回滚段
SQL> alter system set rollback_segments = system scope = spfile;
系统已更改。
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 251658240 bytes
Fixed Size 1248356 bytes
Variable Size 79692700 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
数据库已经打开。
现在是自已知道rollback_segments被置为空了,但在实际情况中,可能往往想不到!
阅读(2813) | 评论(0) | 转发(0) |