ORA-01092问题的解决

本文详细介绍了如何通过分析数据库启动日志来定位并解决ORA-1092错误。通过查看特定日志文件、检查回滚段名称一致性、修改配置文件及重新启动数据库,最终成功解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
在用startup启动数据库时,遇到ora-1092错误

解决方案:
(1)首先需要明确,我们当前对数据库的操作,在数据库中是有记录的,那么当前我们的startup相关操作日志会记录在什么地方呢?
    oracle@suse11: cd  /home/oracle/admin/dbyan/udump


(2) 当前目录下有这么多日志文件,选择最新的几条来看吧
    oracle@suse11:~/admin/dbyan/udump>ll -t | tac
 

(3) 查看一下最新的文件
   oracle@suse11:~/admin/dbyan/udump>more dbyan_ora_9247.trc


  
日志如下:
 /home/oracle/admin/dbyan/udump/dbyan_ora_9247.trc
 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
 With the Partitioning, Data Mining and Real Application Testing options
 ORACLE_HOME = /home/oracle/product/10
 System name:    Linux
 Node name:      suse11
 Release:        2.6.32.12-0.7-default
 Version:        #1 SMP 2010-05-20 11:14:20 +0200
 Machine:        x86_64
 Instance name: dbyan
 Redo thread mounted by this instance: 0 <none>
 Oracle process number: 0
 Unix process pid: 9247, image:
oracle@suse11
 
 Dynamic strand is set to TRUE
 Running with 2 shared and 36 private strand(s). Zero-copy redo is FALSE
 
oracle@suse11:~/admin/dbyan/udump> more dbyan_ora_10441.trc
 /home/oracle/admin/dbyan/udump/dbyan_ora_10441.trc
 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
 With the Partitioning, Data Mining and Real Application Testing options
 ORACLE_HOME = /home/oracle/product/10
 System name:    Linux
 Node name:      suse11
 Release:        2.6.32.12-0.7-default
 Version:        #1 SMP 2010-05-20 11:14:20 +0200
 Machine:        x86_64
 Instance name: dbyan
 Redo thread mounted by this instance: 1
 Oracle process number: 143
 Unix process pid: 10441, image:
oracle@suse11
 
 *** 2012-06-28 14:37:04.297
 *** ACTION NAME:() 2012-06-28 14:37:04.296
 *** MODULE NAME:(
yan@m2m1110 (TNS V1-V3)) 2012-06-28 14:37:04.296
 *** SERVICE NAME:(dbyan) 2012-06-28 14:37:04.296
 *** SESSION ID:(1071.21989) 2012-06-28 14:37:04.296
 java.security.AccessControlException: the Permission (java.io.FilePermission /home/oracle/testdir/00123456789F/AllTermStatusSyn/Data
  read) has not been granted to M2M0401HH. The PL/SQL to grant this is dbms_java.grant_permission( 'M2M0401HH', 'SYS:java.io.FilePerm
 ission', '/home/oracle/testdir/00123456789F/AllTermStatusSyn/Data', 'read' )
         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:280)
         at java.security.AccessController.checkPermission(AccessController.java:429)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:528)
         at oracle.aurora.rdbms.SecurityManagerImpl.checkPermission(SecurityManagerImpl.java:192)
         at java.lang.SecurityManager.checkRead(SecurityManager.java:867)
         at java.io.File.isDirectory(File.java:699)
         at CreateFileDir.CreateAllDir(M2M_DBFILE_J:17)
 /home/oracle/admin/dbyan/udump/dbyan_ora_10441.trc
 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
 With the Partitioning, Data Mining and Real Application Testing options
 ORACLE_HOME = /home/oracle/product/10
 System name:    Linux
 Node name:      suse11
 Release:        2.6.32.12-0.7-default
 Version:        #1 SMP 2010-05-20 11:14:20 +0200
 Machine:        x86_64
 Instance name: dbyan
 Redo thread mounted by this instance: 1
 Oracle process number: 16
 Unix process pid: 10441, image:
oracle@suse11 (TNS V1-V3)
 
 *** ACTION NAME:() 2012-09-13 16:34:45.137
 *** MODULE NAME:(
sqlplus@suse11 (TNS V1-V3)) 2012-09-13 16:34:45.137
 *** SERVICE NAME:(SYS$USERS) 2012-09-13 16:34:45.137
 *** SESSION ID:(322.3) 2012-09-13 16:34:45.137
 ORA-30012:
还原表空间 'UNDOTBS1' 不存在或类型不正确
 
 ----------------------
日志到此结束----------------
 从上面的日志可以看出,显然是在initdbyan.ora中,回滚段的名称有误或者不存在。

(4) 从startup启动的日志来看,实例是已经加载成功的,所以可以进入mount状态,查看数据库的一些信息:(注意关注回滚段的相关信息)
 a) oracle@suse11:sqlplus /nolog
    SQL>conn /as sysdba
    SQL>startup mount
 b) SQL>select name from v$datafile
 c) SQL>show parameter undo_tablespace
 d) SQL>select name from v$tablespace
   
通过上面几个查询的信息可以看出回滚段的名称存在不一致的地方,因此需要修改回滚段的名称。
   
(5)
关闭数据库
    SQL>shutdown immediate
   
(6)
修改initdbyan.ora文件的回滚段名称

(7) 重新启动数据库就OK了
    oracle@suse11:sqlplus /nolog
    SQL>conn /as sysdba
    SQL>startup

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值