關於ORA-01102錯誤的解決辦法小結

測試環境中oracle數據庫這臺服務器不知因何原因異常關機了。重新開機之後嘗試恢複相關應用發現啓動數據庫失敗。期間翻山越嶺走了段曲折小路。先把處理流程梳理一下以便後期遇到此類可以快速解決。

begin

一、數據庫

1.機器啓動之後登錄服務器使用sqlplus / as sysdba 登錄數據庫發現數據庫並沒有啓動之前把數據庫服務添加過開機自啓動

wKiom1k_0fTyaoyoAAAizB0da8E290.png 

2.使用startup命令啓動數據庫報錯了

SYS@orcl>startup;

ORACLE 例程已經啓動。

 

Total System Global Area 2471931904 bytes

Fixed Size    2255752 bytes

Variable Size  671089784 bytes

Database Buffers 1778384896 bytes

Redo Buffers   20201472 bytes

ORA-01102: cannot mount database in EXCLUSIVE mode

3.關掉實例嘗試一步步啓動啓動到mount階段時還是報同樣的錯

wKiom1k_0gGTsfl6AAAwZmXZzfk451.png 

4.網絡上搜索了一下 ORA-01102找到了解決方法

這個錯誤主要是lk<SID>文件造成的該文件位於ORALCE_HOME下的dbs目錄下,

這個lk<SID>的主要作用是說明DATABASE MOUNT上了,不用在MOUNT.DATABASE UNMOUNT 後會刪除掉,如果DATABASE確實沒有MOUNT,這個文件在你也MOUNT,只有手工刪除

5.談到具體解決方法引入另外一個命令/sbin/fuser

/sbin/fuser的主要功能是使用文件或者套接字來表示識別進程。常把它用來查看相關進程和殺死相關進程。此處用來清除lk<SID>文件

/sbin/fuser -u /u01/app/oracle/product/11.2.0/db_1/dbs/lkHSDB 查詢佔用該臨時文件的進程pidusername

wKioL1k_0hPwBSU0AABSwX3Ozko011.png 

/sbin/fuser -k /u01/app/oracle/product/11.2.0/db_1/dbs/lkHSDB 直接kill相關pid釋放文件lk<SID>文件

wKioL1k_0h-yDCklAAAWCLnml_0166.png 

/sbin/fuser -u /u01/app/oracle/product/11.2.0/db_1/dbs/lkHSDB 再次查看發現已經沒有那些進程了

wKiom1k_0iyCLIlaAAAQn8jUbYs530.png

6.再次啓動數據庫一切ok

wKiom1k_0jqjv9p7AAA0TFHNYoo543.png 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章