久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何解決oracle啟動時的幾個小問題

163次閱讀
沒有評論

共計 7353 個字符,預計需要花費 19 分鐘才能閱讀完成。

這篇文章主要介紹了如何解決 oracle 啟動時的幾個小問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

   oracle 在啟動時和啟動過程中經常會出現這樣那樣的錯誤,簡單記錄下碰到過的問題,方便備用。

1、啟庫先起監聽,發現監聽啟動失敗

 一般常見是 /etc/hosts 里面配置的主機名稱對應 IP 和你的實際 IP 不符,改了就 OK 了。還要檢查 HOSTNAME 和 /etc/sysconfig/network 里的主機名,都改一致保險。對應的還可檢查下:listener 和 tnsnames 里面的 HOST 名或 IP,保持一致。有時只有把 listener 和 tnsnames 里面的 HOST 配成主機名,且 hosts 文件里的主機名對應 IP 正確才會啟動正常。2、手動修改 SPFILE 文件報錯
手動用 VI 命令修改 oracle 里面的 SPFILE***.ORA 文件,數據庫就起不來了,報錯 ORA-27046: file size is not a multiple of logical block size 。原因是動態服務器參數文件(SPFILE)是一個二進制文件,是不可以手工修改的,如果手工改了,該文件就成為了無效文件。可以通過以下方法解決:1、將 SPFILE 中的參數拷貝到 init***.ora 文件中
 strings spfileCP05PV1DB.ora
  查看到后拷貝到 init***.ora 中
 (控制文件也可 strings)2、刪除 DATABASE 目錄下的 SPFILE***.ORA 文件。3、啟動數據庫  (現在應該可以成功啟動)4、SQL  create spfile from pfile 生成 spfile(pfile 文件可自己編寫)使用 startup 命令啟動數據庫,,Oralce 將會按照以下順序在缺省目錄中 (9i,10i 在 oracle_home/database 目錄下)搜索參數文件:(1)spfile***.ora 文件  (2)如果沒有 spfile***.ora 文件就用 spfile.ora 文件(3)  如果沒有 spfile.ora 文件就用 init***.ora(4)如果沒有 init***.ora 文件就用  pfile.ora
所以上面我們采取的解決方法是將破壞的 spfile 中的參數復制到 init***.ora 中,然后刪除 spfile 文件,這樣啟動時就會用 init***.ora 文件啟動,然后用 create spfile from pfile 命令生成 spfile
注意如果要修改 spfile 中的參數,絕對不能手工修改 spfile 文件,要使用下面命令:alter system set parameter=Value scope=spfile|both|memory 例如:alter system set db_cache_size=24M scope=both; 來修改
3、路徑和名字問題
SQL  startup
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter
ORA-48140: the specified ADR Base directory does not exist [/home/oracle/102/dbs/ ORACLE_BASE]
ORA-48187: specified directory does not exist
Linux Error: 2: No such file or directory
Additional information: 1
查看 $ORACLE_HOME/dbs 下的 init 文件 (我的 SID 名為 oracleprod),即 initoracleprod.ora,發現該文件中的 ORACLE_BASE 沒有更改過來,當然啟動不了了,修改本文件里的所有 ORACLE_BASE 為絕對路徑。結合網上其他技術大拿的經驗,并刪除 diagnostic_dest 這行記錄。然后再啟動數據庫
SQL  startup nomount
SQL  alert database mount
此時出錯,ORA-00205: error in identifying control file, check alert log for more info
還是查看 $ORACLE_HOME/dbs/initoracleprod.ora 中的內容,發現 control_files = (ora_control1, ora_control2) 有問題,修改為 control_files = (/u01/oradata/orcl/control01.ctl ,  /u01/flash_recovery_area/orcl/control02.ctl)
注:上面的 control_files 以機器上實際路徑為準。然后再啟動 Oracle,即可以了。第二,在上面的過程中,還可能會碰到如 ORA-09925: Unable to create audit trail file 這樣的問題,均于 ORACLE_BASE 有關,修改之即可。另外,在解決上述問題過程中,還出現了像如下一樣的錯誤:SQL  conn sys
SQL  show parameter 
SP2-0640: Not connected
SQL  conn / as sysdba
ERROR:
ORA-09925: Message 9925 not found; product=RDBMS; facility=ORA
Linux-x86_64 Error: 30: Read-only file system
Additional information: 9925
ORA-01075: you are currently logged on
SQL  
如果出現上面的問題,無法手動停止 Oracle,于是找到 pmon 進程,然后再 kill 之,即可關停 Oracle.
4、pfile 與 spfile 啟動問題
在一個節點啟動數據庫:SQL startup;
ORA-01506: missing or illegal database name
因前面是從 PFILE 啟動,再生成 SPFILE 的,可能是生成文件出錯。[root@rac2 dbs]# strings spfileracdb2.ora
*.SPFILE= +DATA/racdb/spfileracdb.ora 
拷貝 RAC1 節點的 spfileracdb1.ora  為 spfileracdb2.ora
問題解決。還有一個現象就是路徑錯也會導致這個錯誤。比如 /u01/app/oracle/admin/CP05PV1DB 改錯了 /u01/app/oracle/admin/CP05MV1DB, 導致無法識別數據庫名

SQL  startup mount ORA-01078: failure in processing system parameters ORA-01565: error in identifying file  E:\oracle\product\10.2.0\db_1/dbs/spfileocl.ora ORA-27046: file size is not a multiple of logical block size OSD-04012: ?????????????? O/S-Error: (OS 3516) ?????????????? Windows ?????????? 嘗試將 SPFILEORCL.ORA 的備份文件改名,啟動數據庫還是報同樣的錯誤,而不是以前的錯誤,有些不知所措   幸好是自己的本機   實在不行就重裝了,于是開始在 google 上繼續找答案。找了一會就找了的方法   真的要感謝互聯網。真是一個好東西。解決方法如下:C:\Documents and Settings\Administrator sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on  星期三  2 月  18 23:42:25 2016 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL  connect /as sysdba 已連接到空閑例程。SQL  create spfile= E:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA  from pfil = E:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.132009183928 文件已創建。SQL  startup ORACLE  例程已經啟動。Total System Global Area 167772160 bytes Fixed Size 1247900 bytes Variable Size 62915940 bytes Database Buffers 100663296 bytes Redo Buffers 2945024 bytes 數據庫裝載完畢。數據庫已經打開。至此問題得到解決。6、另一例 spfile 問題 SQL  create pfile from spfile; create pfile from spfile* ERROR at line 1: ORA-01565: error in identifying file  ?/dbs/spfile@.ora ORA-27046: file size is not a multiple of logical block size Additional information: 1 從錯誤的提示來看,第一行說系統參數出錯 第二行詳細指出了 spfileorcl.ora 出現了錯誤 再看第三行,google 了一下 ORA-27046,原來是 spfileorcl.ora 文件被損壞,導致 spfile 文件不可讀 在 spfile 文件損壞的時候,如果嘗試使用 create pfile from spfile,也將收到同樣的錯誤 由于告警日志 alert_orcl.log 之前被清空,故此時未能看到更詳細的錯誤提示   解決辦法:由于 spfile 為二進制文件,因此修復比較困難,所以考慮從備份的 spfile 中恢復 1.spfile 備份是否存在,如存在則恢復到原始位置,如放在缺省位置,則為 $ORACLE_HOME/dbs,Windows 平臺為 %ORACLE_HOME%/database 2.spfile 備份文件不存在,也可以從 pfile 啟動,啟動時指定 pfile 參數 3.spfile 備份文件不存在,pfile 也不存在, 則從告警日志 alert_orcl.log 中最后一次正常啟動中使用 strings 命令提取相關參數來手動創 建 pfile,然后從 pfile 啟動, 啟動時指定 pfile 參數。注意從告警日志中復制過來的內容有些需要加單引號, 一是所有的路徑需要使用單引號括起來,其次是和 db_name,db_domain 等等 4.spfile 備份文件不存在,pfile 也不存在, 也不愿從告警日志中手動創建 pfile,則可以使用數據庫初始化時的 pfile 來啟動,缺省位置為 $ORALCE_BASE/admin/$ORACLE_SID/pfile 5. 也可以在 SQLplus 下直接使用 create spfile from pfile =  dir   來先創建 spfile 文件,再啟動 Oracle 從缺省的 pfile 或數據庫初始化的 pfile 中來啟動數據庫后,有很多參數不一致,可能會導致一些功能不可用,需要調整 建議定期備份參數文件 7. 更多有關參數文件的詳細描述,請參閱:Oracle  參數文件 -- 本示例直接數據庫了初始化數據庫時的 pfile 來啟動數據庫 -- 啟動后收到了有關控制文件的錯誤提示 SQL  startup pfile= /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348 ORACLE instance started.   Total System Global Area251658240 bytes Fixed Size1218796 bytes Variable Size83887892 bytes Database Buffers163577856 bytes Redo Buffers2973696 bytes ORA-00205: error in identifying control file, check alert log for more info   -- 從告警日志中查看控制文件的信息,告警日志提示 control03.ctl 不存在 SQL  ho tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log Thu Jul 29 16:52:44 2010 ALTER DATABASEMOUNT Thu Jul 29 16:52:44 2010 ORA-00202: control file:  /u01/app/oracle/oradata/orcl/control03.ctl ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory   -- 查看控制文件相關的參數信息中定義了 control03.ctl SQL  show parameter control_   NAMETYPEVALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_timeinteger7 control_filesstring/u01/app/oracle/oradata/orcl/c ontrol01.ctl, /u01/app/oracle/ oradata/orcl/control02.ctl, /u01/app/oracle/oradata/orcl/control03.ctl   SQL  ho ls /u01/app/oracle/oradata/orcl/control03.ctl-- 查看 control03.ctl 物理文件不存在 ls: /u01/app/oracle/oradata/orcl/control03.ctl: No such file or directory   -- 修改 pfile 文件 SQL  ho vim /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348   -- 刪除這段,/u01/app/oracle/oradata/orcl/control03.ctl 內容   -- 從修改后的 pfile 文件啟動 SQL  startup pfile= /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348 Total System Global Area251658240 bytes Fixed Size1218796 bytes Variable Size83887892 bytes Database Buffers163577856 bytes Redo Buffers2973696 bytes Database mounted. Database opened.   SQL  ho ls /u01/app/oracle/10g/dbs/ alert_orcl.logcore_5372init.orainitorcl.oraorapworcl core_5360hc_orcl.datinitdw.oralkORCL   -- 從 pfile 文件中創建 spfile SQL  create spfile from pfile =  /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348   File created.   -- 查看 spfileorcl.ora 已生成 SQL  ho ls /u01/app/oracle/10g/dbs/ alert_orcl.loghc_orcl.datinitorcl.oraspfileorcl.ora core_5360init.oralkORCL core_5372initdw.oraorapworcl   SQL  shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down.   SQL  startup-- 從 spfile  啟動 ORACLE instance started.   Total System Global Area251658240 bytes Fixed Size1218796 bytes Variable Size83887892 bytes Database Buffers163577856 bytes Redo Buffers2973696 bytes Database mounted. Database opened.   實際上可以先 create spfile from pfile =  dir ,  再從 spfile 啟動,使用 alter system  修改相關的參數比直接修改 pfile 似乎 更簡單些,比如上面的例子中需要去掉一個控制文件。當然此類問題是仁者見仁,智者見者。總之一條,定期備份參數文件是相當有必要的!

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“如何解決 oracle 啟動時的幾個小問題”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計7353字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 昌吉市| 周宁县| 阳春市| 台中市| 获嘉县| 独山县| 阿巴嘎旗| 永宁县| 孝感市| 石棉县| 聂荣县| 仙桃市| 垦利县| 富顺县| 綦江县| 乌恰县| 南丹县| 闸北区| 井陉县| 齐齐哈尔市| 金溪县| 大兴区| 张掖市| 呼伦贝尔市| 湟源县| 阿勒泰市| 长葛市| 皋兰县| 巴林左旗| 屏东县| 龙南县| 聂荣县| 西宁市| 西吉县| 宽甸| 城步| 黑龙江省| 罗城| 新竹市| 奎屯市| 金乡县|