oracle數據庫spfile損壞

1、 剛開始是這樣的

下面信息很明顯,數據庫服務啓動異常。java

C:\WINDOWS\system32>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 11-10月-2016 05:52:47

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

正在鏈接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production
啓動日期                  10-10月-2016 22:40:52
正常運行時間              0 天 7 小時 11 分 55 秒
跟蹤級別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監聽程序日誌文件          D:\app\orcl\diag\tnslsnr\LAPTOP-3F3OG0M9\listener\alert\log.xml
監聽端點概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=LAPTOP-3F3OG0M9)(PORT=1521)))
服務摘要..
服務 "ORCL" 包含 1 個實例。
  實例 "orcl", 狀態 BLOCKED, 包含此服務的 1 個處理程序...
命令執行成功

數據庫是用不了的。可是致使這個問題的緣由有不少。我這裏只介紹個人這種狀況:我本地IP修改後,數據庫就連不上了。由於在啓動文件裏D:\app\orcl\product\12.1.0\dbhome_1\database\SPFILEORCL.ORA,內容以下。記錄了監聽的地址,我嘗試過使用127.0.0.1或localhost,結果不行。沒辦法,我只能修改文件了。注意:SPFILEORCL.ORA是不能修改的。上述錯誤就是由此形成。而INITorcl001.ORA文件與此內容類似,是容許編輯的。sql

這裏提到的兩個啓動文件的名字都是和數據庫實例ID相關的,不一樣SID,名字不一樣。數據庫

..................................
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=1862270976
orcl.__java_pool_size=16777216
orcl.__large_pool_size=33554432
orcl.__oracle_base='D:\app\orcl'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=855638016
orcl.__sga_target=2550136832
orcl.__shared_io_pool_size=117440512
orcl.__shared_pool_size=503316480
orcl.__streams_pool_size=0
*._catalog_foreign_restore=FALSE
*.audit_file_dest='D:\app\orcl\admin\orcl\adump'
*.audit_trail='db'
*.compatible='12.1.0.2.0'
*..............................................control_files='D:\app\orcl\oradata\orcl\control01.ctl','D:\app\orcl\oradata\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='D:\app\orcl'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.enable_pluggable_database=true
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=172.16.0.174)(Port=1521)))'
*.open_cursors=300
*.pga_aggregate_target=810m
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2431m
*.undo_table ........................

爲了提供多一點的線索,你在sqlplus / as sysdba登陸後,執行show parameter control;和show parameter spfile;命令。對比解決問題先後的輸出變化。安全

2、 解決問題

SQL> create pfile from spfile;
create pfile from spfile
**該操做能夠不作,也不要在乎這個錯誤。緣由大體是spfile已經損壞,系統在尋找其餘可做爲替代的啓動文件時沒有找到。
第 1 行出現錯誤:
ORA-01565: ???? '%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA' ???
ORA-27046: ??????????????
OSD-04012: ?????????????? (OS 3586)


SQL> shutdown immediate;
ORA-01507: ??????


ORACLE 例程已經關閉。
SQL> startup pfile="D:/app/orcl/product/12.1.0/dbhome_1/database/INITorcl001.ORA"
ORACLE 例程已經啓動。
****這裏指明使用pfile啓動,系統默認使用spfile啓動。
Total System Global Area 2550136832 bytes
Fixed Size                  3048872 bytes
Variable Size             671091288 bytes
Database Buffers         1862270976 bytes
Redo Buffers               13725696 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> show parameter spfile;
***很明顯沒有獲得想要的結果
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
SQL> show parameter pfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
SQL> show parameter control;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time        integer     7
control_files                        string      D:\APP\ORCL\ORADATA\ORCL\CONTR
                                                 OL01.CTL, D:\APP\ORCL\ORADATA\
                                                 ORCL\CONTROL02.CTL
control_management_pack_access       string      DIAGNOSTIC+TUNING

SQL> create spfile from pfile='D:/app/orcl/product/12.1.0/dbhome_1/database/INITorcl001.ORA';

文件已建立。

SQL> shutdown immediate;
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。


SQL> startup;
ORACLE 例程已經啓動。

Total System Global Area 2550136832 bytes
Fixed Size                  3048872 bytes
Variable Size             671091288 bytes
Database Buffers         1862270976 bytes
Redo Buffers               13725696 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> show parameter pfile;
***看到理想的結果了
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      D:\APP\ORCL\PRODUCT\12.1.0\DBH
                                                 OME_1\DATABASE\SPFILEORCL.ORA
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      D:\APP\ORCL\PRODUCT\12.1.0\DBH
                                                 OME_1\DATABASE\SPFILEORCL.ORA
相關文章
相關標籤/搜索