91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-11-20 11:53:51 來源:億速云 閱讀:406 作者:小新 欄目:云計算

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

   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
SQL>

查看$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,導致無法識別數據庫名


5、SPFILE的錯誤
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
數據庫裝載完畢。
數據庫已經打開。
SQL>
至此問題得到解決。

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
6.注意
從缺省的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似乎
更簡單些,比如上面的例子中需要去掉一個控制文件。當然此類問題是仁者見仁,智者見者。
總之一條,定期備份參數文件是相當有必要的!

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潞西市| 金川县| 辽阳市| 清流县| 平泉县| 北川| 民勤县| 德令哈市| 揭阳市| 铜鼓县| 黄石市| 剑河县| 翁牛特旗| 静海县| 嫩江县| 昭平县| 白城市| 衡水市| 濮阳县| 三河市| 进贤县| 南雄市| 泾源县| 兴国县| 旌德县| 荥阳市| 开平市| 衡山县| 贵港市| 平江县| 望谟县| 元阳县| 宜昌市| 临沂市| 平阳县| 康保县| 新宾| 建宁县| 定西市| 东乡县| 聂拉木县|