您的位置:首页 > 其它

ORA-01092问题的解决

2013-05-24 20:24 375 查看
问题描述:
在用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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: