ORA-01102报错解决
刚在10g数据库上创建完数据库,起库报错,出现该问题大多由于dbs目录下出现锁内存的文件
oracle@single-10g:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Mar 30 15:12:01 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 520093696 bytes
Fixed Size 2022016 bytes
Variable Size 150996352 bytes
Database Buffers 364904448 bytes
Redo Buffers 2170880 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
查了ml,了解到 ORA-1102 错误原因:
1 在ORACLE_HOME/dbs/存在 “sgadef.dbf” 文件或者lk 文件。这两个文件是用来用于锁内存的。
2 oracle的 pmon, smon, lgwr and dbwr等进程未正常关闭。
3 数据库关闭后,共享内存或者信号量依然被占用。
lk说明DATABASE 已经是MOUNT状态了,不用再次MOUNT.当 DATABASE 被UNMOUNT 后会被自动删除,如果DATABASE没有MOUNT,却依然存在这个问题,只有手工将其删除
查看告警日志:
sculkget: failed to lock /u01/oracle/12.2.0//dbs/lkMARVIN exclusive
sculkget: lock held by PID: 23367
Fri Mar 30 15:12:04 2018
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 23367
Fri Mar 30 15:12:04 2018
ORA-1102 signalled during: ALTER DATABASE MOUNT...
Fri Mar 30 15:14:12 2018
Shutting down archive processes
Fri Mar 30 15:14:17 2018
ARCH shutting down
ARC2: Archival stopped
Fri Mar 30 15:14:28 2018
alter database open
Fri Mar 30 15:14:28 2018
ORA-1507 signalled during: alter database open...
Fri Mar 30 15:14:34 2018
alter database mount
Fri Mar 30 15:14:34 2018
sculkget: failed to lock /u01/oracle/12.2.0//dbs/lkMARVIN exclusive
sculkget: lock held by PID: 23367
Fri Mar 30 15:14:34 2018
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
Additional information: 23367
Fri Mar 30 15:14:34 2018
ORA-1102 signalled during: alter database mount...
显示dbs目录下出现lkMARVIN文件,锁住了内存
使用fuser -u lkMARVIN 查看使用 lkMARVIN 文件的进程和用户。-u 为进程号后圆括号中的本地进程提供登录名
oracle@single-10g:/u01/oracle/12.2.0/dbs>fuser -u lkMARVIN
lkMARVIN: 23361(oracle) 23363(oracle) 23365(oracle) 23367(oracle) 23369(oracle) 23371(oracle) 23373(oracle) 23375(oracle) 23377(oracle) 23379(oracle) 23381(oracle) 23389(oracle) 23391(oracle) 23395(oracle) 23410(oracle) 23412(oracle)
从上启动可知道,当前并没有Mount状态
使用 fuser -k lkMARVIN 杀死这些正在访问lkMARVIN的进程 -k 杀死这些正在访问这些文件的进程
oracle@single-10g:/u01/oracle/12.2.0/dbs>fuser -k lkMARVIN
lkMARVIN: 23361 23363 23365 23367 23369 23371 23373 23375 23377 23379 23381 23389 23391 23395 23410 23412
确认相关进程被终止
oracle@single-10g:/u01/oracle/12.2.0/dbs>fuser -u lkMARVIN
重新启动数据库
oracle@single-10g:/u01/oracle/admin/marvin/bdump>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Mar 30 15:51:27 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL>STARTUP FORCE;
或者
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
版权声明:本文为博主原创文章,未经博主允许不得转载。



