① 請問init.ora 這個文件是做什麼的
兄弟,只能說你杯具了,以後FORCE這個選項最好少用
可以看到是控制文件不一致導致
要禁用的話在INIT文件里把CONTROLFILE那一行的CONTROL02路徑刪掉
再用STARTUP PFILE='你的INIT路徑'打開
禁用CONTROLFILE的方法不提倡;
完整解決方案:
1.刪除02,03這兩個控制文件(我認為5667是最新的),然後拷貝control01.ctl 2份,分別改名control02.ctl,control03.ctl
再重啟資料庫到 mount
再OPEN:alter database open(如果它提示要RECOVER的話你就RECOVER DATABASE 。如果打開失敗就alter database open resetlogs,但是這樣之後最好做此全備份)
2.要是上述方法不行的話
(1)有最近控制文件備份時:用RMAN 還原控制文件(在NOMOUNT狀態登錄RMAN,再RESTORE CONTROLFILE FROM AUTOBACKUP,我默認這些操作你都會的^^,具體不說了),再在MOUNT下alter database open resetlogs。(如果你有用戶管理的備份那直接拷過去就行了。)
(2)沒有控制文件備份時:這種情況是最壞的,只能在NOMOUNT下重建控制文件
再用RESETLOGS打開資料庫,但是原來控制文件中的一些信息會丟失,比如備份的信息 。
希望能解決你的問題。
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
② oracle運行sql空閑實例,而且startup不了,沒有pfile下的init.ora文件
oracle對中文識別還沒那麼智能,不要將ORACLE安裝在中文目錄下。
你可以找一下e:\oracle????\app\oracle\proct\11.2.0\server\dbs,裡面應該有個spfileXE.ora文件,因為有回中文oracle識別答不了它,你可以把這個文件復制到沒有中文的文件夾下,比如 E:\spfileXE.ora
啟動時指定它
startup pfile=e:\spfileXE.ora
不過即使是能夠正常啟動,很可能使用過程中還會出現問題
③ init.ora和init.SID.ora 什麼區別
spfilesid.ora與initsid.ora的區別
現在假設你的ORACLE_SID為testdb,那麼spfiletestdb.ora就是伺服器參數文件,inittestdb.ora就是一般的初始化參數文件, spfile好像是從oracle 9i開始的吧,它是二進制的,不過你也可以通過 $ strings spfiletestdb.ora看一下, 或者 sql>create pfile='/home/db/oracle/script/testdb.ora' from spfile; 然後 $ cat /home/db/oracle/script/testdb.ora 看一下他的內容(testdb.ora現在是文本文件了) inittestdb.ora是文本文件,可以看的到的 你啟動機器的時候,可以指定參數文件,否這就默認為用spfile啟動,unix系統是在 /dbs目錄下,windows系統是在 /database目錄下, $ startup pfile='/home/db/oracle/script/testdb.ora';
注意: 是pfile,千萬別寫成了spfile='/.....'了 資料庫啟動分為三個階段(nomount,mount,open狀態,oracle另外一個狀態是shutdown狀態)
1.啟動到nomount階段時,首先要查找參數文件(順序為先查找spfile$sid.ora,沒有查到就查找init$sid.ora,再沒有查到就查找init.ora,呵呵,還沒有,那你就等著瞪眼吧,也就是oracle啟動不了,要報錯了,具體的原因你可以到www.eygle.com上去看去) $ startup nomount;
2.啟動到mount階段的時候,檢查控制文件和口令文件,如果有一個控制文件個屁了,那麼也就啟動不到mount狀態,只能啟動到nomount狀態 (初始化參數找的著的情況下) $ startup nomount; $ alter database mount; 或者直接 $ startup mount;
3.啟動到open階段,根據控制文件對數據文件和日誌文件進行判斷,判斷沒有問題後,資料庫打開,大家可以幹活了 $ alter database open; 或者 直接 $ startup 啥,你非要用 $ startup open;,算了,也是可以地,不過你也太那個了吧..., 好了,
(windows下與unix不太一樣,windows下oracle自動起來了,你如果想試驗一下,進入 command 窗口 開始>-->運行-->cmd-->C:\Documents and Settings\Administrator>sqlplus "/ as sysdba" sql>shutdown immediate;
確定不是生產庫喲,資料庫沒有事務的時候,先shutdown,然後一步一步試驗去吧)