分享
 
 
 

ORA-01092:ORACLE例程终止强行断开连接

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

今天测试部门的人叫我过去,说是数据库当了,起不来了。

我过去看了看情况,做了如下操作

SQL shutdown immediate

数据库已经关闭。

已经卸载数据库。

Oracle 例程已经关闭。

SQL startup

ORACLE 例程已经启动。

Total System Global Area

135338868 bytes

Fixed Size

453492 bytes

Variable Size

109051904 bytes

Database Buffers

25165824 bytes

Redo Buffers

667648 bytes

数据库装载完毕。

ORA-01092: ORACLE 例程终止。强行断开连接

表面上看不出问题,我查看alert_oracas.log文件

SYS auditing is disabled

Starting up ORACLE RDBMS Version: 9.2.0.1.0.

System parameters with non-default values:

processes

= 150

timed_statistics

= TRUE

shared_pool_size

= 50331648

large_pool_size

= 8388608

Java_pool_size

= 33554432

control_files

= f:\oracle\oradata\oracas\CONTROL01.CTL, f:\oracle\oradata\oracas\CONTROL02.CTL, f:\oracle\oradata\oracas\CONTROL03.CTL

db_block_size

= 8192

db_cache_size

= 25165824

compatible

= 9.2.0.0.0

db_file_multiblock_read_count= 16

fast_start_mttr_target

= 300

undo_management

= AUTO

undo_tablespace

= UNDOSTB1

undo_retention

= 10800

remote_login_passwordfile= EXCLUSIVE

db_domain

=

instance_name

= oracas

dispatchers

= (PROTOCOL=TCP) (SERVICE=oracasXDB)

job_queue_processes

= 10

hash_join_enabled

= TRUE

background_dump_dest

= f:\oracle\admin\oracas\bdump

user_dump_dest

= f:\oracle\admin\oracas\udump

core_dump_dest

= f:\oracle\admin\oracas\cdump

sort_area_size

= 524288

db_name

= oracas

open_cursors

= 300

star_transformation_enabled= FALSE

query_rewrite_enabled

= FALSE

pga_aggregate_target

= 19922944

aq_tm_processes

= 1

PMON started with pid=2

DBW0 started with pid=3

LGWR started with pid=4

CKPT started with pid=5

SMON started with pid=6

RECO started with pid=7

CJQ0 started with pid=8

QMN0 started with pid=9

Mon Apr 18 17:30:25 2005

starting up 1 shared server(s) ...

starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...

Mon Apr 18 17:30:26 2005

ALTER DATABASE

MOUNT

Mon Apr 18 17:30:30 2005

Successful mount of redo thread 1, with mount id 2424210674.

Mon Apr 18 17:30:30 2005

Database mounted in Exclusive Mode.

Completed: ALTER DATABASE

MOUNT

Mon Apr 18 17:30:30 2005

ALTER DATABASE OPEN

Mon Apr 18 17:30:32 2005

Thread 1 opened at log sequence 105

Current log# 2 seq# 105 mem# 0: F:\ORACLE\ORADATA\ORACAS\REDO02.LOG

Successful open of redo thread 1.

Mon Apr 18 17:30:32 2005

SMON: enabling cache recovery

Mon Apr 18 17:30:34 2005

Errors in file f:\oracle\admin\oracas\udump\oracas_ora_3404.trc:

ORA-30012: 撤消表空间 'UNDOSTB1' 不存在或类型不正确

Mon Apr 18 17:30:34 2005

Error 30012 happened during db open, shutting down database

USER: terminating instance due to error 30012

Mon Apr 18 17:30:35 2005

Errors in file f:\oracle\admin\oracas\bdump\oracas_smon_996.trc:

ORA-30012: undo tablespace '' does not exist or of wrong type

Mon Apr 18 17:30:35 2005

Errors in file f:\oracle\admin\oracas\bdump\oracas_pmon_3500.trc:

ORA-30012: undo tablespace '' does not exist or of wrong type

Instance terminated by USER, pid = 3404

ORA-1092 signalled during: ALTER DATABASE OPEN...

于是我查看了以下信息来确认undo表空间的问题

SQL conn sys/sys@oracas as sysdba

已连接到空闲例程。

SQL startup mount

ORACLE 例程已经启动。

Total System Global Area

135338868 bytes

Fixed Size

453492 bytes

Variable Size

109051904 bytes

Database Buffers

25165824 bytes

Redo Buffers

667648 bytes

数据库装载完毕。

SQL select name from v$datafile;

NAME

------------------------------------------------------------------------

F:\ORACLE\ORADATA\ORACAS\SYSTEM01.DBF

F:\ORACLE\ORADATA\ORACAS\UNDOTBS01.DBF

F:\ORACLE\ORADATA\ORACAS\CWMLITE01.DBF

F:\ORACLE\ORADATA\ORACAS\DRSYS01.DBF

F:\ORACLE\ORADATA\ORACAS\EXAMPLE01.DBF

F:\ORACLE\ORADATA\ORACAS\INDX01.DBF

F:\ORACLE\ORADATA\ORACAS\ODM01.DBF

F:\ORACLE\ORADATA\ORACAS\TOOLS01.DBF

F:\ORACLE\ORADATA\ORACAS\USERS01.DBF

F:\ORACLE\ORADATA\ORACAS\XDB01.DBF

D:\ORADATA\ORACAS\TSCAS11.DBF

E:\ORADATA\ORACAS\TFCAS12.DBF

D:\ORADATA\ORACAS\TSCAS21.DBF

E:\ORADATA\ORACAS\TFCAS22.DBF

D:\ORADATA\ORACAS\TSCAS31.DBF

E:\ORADATA\ORACAS\TFCAS32.DBF

D:\ORADATA\ORACAS\TSCAS41.DBF

E:\ORADATA\ORACAS\TFCAS42.DBF

D:\ORADATA\ORACAS\TSCASINDX1.DBF

E:\ORADATA\ORACAS\TSCASINDX2.DBF

D:\ORADATA\ORACAS\TFCAS13.DBF

D:\ORADATA\ORACAS\TFCAS14.DBF

D:\ORADATA\ORACAS\TFCAS23.DBF

D:\ORADATA\ORACAS\TFCAS24.DBF

E:\ORADATA\ORACAS\TSCASINDX12.DBF

E:\ORADATA\ORACAS\TSCASINDX13.DBF

E:\ORADATA\ORACAS\TSCASINDX24.DBF

E:\ORADATA\ORACAS\TSCASINDX25.DBF

C:\SNAPSHOT01.DBF

C:\TSCAS1.DBF

已选择30行。

SQL show parameter undo

NAME

TYPE

VALUE

------------------------------------ ----------- -----------------------

undo_management

string

AUTO

undo_retention

integer

10800

undo_suppress_errors

boolean

FALSE

undo_tablespace

string

UNDOSTB1

SQL select name from v$tablespace;

NAME

------------------------------

CWMLITE

DRSYS

EXAMPLE

INDX

ODM

SYSTEM

TOOLS

UNDOTBS1

USERS

XDB

TEMP

TSCAS1

TSCAS2

TSCAS3

TSCAS4

TSCASINDX1

TSCASINDX2

SNAPSHOT_TS

已选择18行。

当时没有自己看问题,就以为是undo文件损坏了,决定重建。

注意:后来才发现这里以后的操作是饶了一个解决问题的弯路。

由于不open没有办法重新创建undo 表空间,所以决定先用系统默认的undo表空间来启动,然后重建undo

表空间,具体操作如下:

SQL create pfile from spfile;

文件已创建。

修改pfile文件

#*.undo_management='AUTO'

#*.undo_tablespace='UNDOSTB1'

undo_management=manual

undo_tablespace='system'

关闭数据库,并且从目录F:\oracle\ora92\database下去掉SPFILEORACAS.ORA文件

重新启动

SQL shutdown immediate

ORA-01109: 数据库未打开

已经卸载数据库。

ORACLE 例程已经关闭。

SQL startup mount

ORACLE 例程已经启动。

Total System Global Area

135338868 bytes

Fixed Size

453492 bytes

Variable Size

109051904 bytes

Database Buffers

25165824 bytes

Redo Buffers

667648 bytes

数据库装载完毕。

SQL alter database open;

数据库已更改。

查看表空间信息

SQL show parameter undo

NAME

TYPE

VALUE

------------------------------------ ----------- ------------------------------

undo_management

string

MANUAL

undo_retention

integer

10800

undo_suppress_errors

boolean

FALSE

undo_tablespace

string

system

SQL select name from

v$tablespace;

NAME

------------------------------

CWMLITE

DRSYS

EXAMPLE

INDX

ODM

SYSTEM

TOOLS

UNDOTBS1

USERS

XDB

TEMP

TSCAS1

TSCAS2

TSCAS3

TSCAS4

TSCASINDX1

TSCASINDX2

SNAPSHOT_TS

并且打开图形界面查看,这时候才发现undo表空间的名字是UNDOTBS1

其实早就能发现的,大家以后分析问题一定不要太快下结论,要自己分析。。。

于是做以下操作改变undo 表空间的名字

SQL create spfile from pfile;

文件已创建。

SQL shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL startup

ORACLE 例程已经启动。

Total System Global Area

135338868 bytes

Fixed Size

453492 bytes

Variable Size

109051904 bytes

Database Buffers

25165824 bytes

Redo Buffers

667648 bytes

数据库装载完毕。

数据库已经打开。

SQL show parameter undo

NAME

TYPE

VALUE

------------------------------------ ----------- ------------------------------

undo_management

string

MANUAL

undo_retention

integer

10800

undo_suppress_errors

boolean

FALSE

undo_tablespace

string

system

SQL alter database set undo_management=auto;

alter database set undo_management=auto

*

ERROR 位于第 1 行:

ORA-02231: 缺少或无效的 ALTER DATABASE 选项

SQL alter database set undo_management=auto scope=spfile;

alter database set undo_management=auto scope=spfile

*

ERROR 位于第 1 行:

ORA-02231: 缺少或无效的 ALTER DATABASE 选项

SQL alter system set undo_management=auto scope=spfile;

系统已更改。

SQL alter system set undo_tablespace='undotbs1' scope=spfile;

重启验证:

SQL shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL startup

ORACLE 例程已经启动。

Total System Global Area

135338868 bytes

Fixed Size

453492 bytes

Variable Size

109051904 bytes

Database Buffers

25165824 bytes

Redo Buffers

667648 bytes

数据库装载完毕。

数据库已经打开。

SQL create fpile from spfile;

create fpile from spfile

*

ERROR 位于第 1 行:

ORA-00901: 无效 CREATE 命令

SQL create pfile from spfile;

文件已创建。

SQL show parameter undo

NAME

TYPE

VALUE

------------------------------------ ----------- ------------------------------

undo_management

string

AUTO

undo_retention

integer

10800

undo_suppress_errors

boolean

FALSE

undo_tablespace

string

undotbs1

发现已经好使了

教训总结:其实只要一开始分析下v$tablespace就能发现是undo表空间的名字错了,很快就能解决的。

不过我上面这种方法可以用于undo表空间文件corrupt的情况:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有