[oracle]undo表空間出錯,導致資料庫例項無法開啟
今天老師幫某客戶解決了資料庫例項無法開啟的情況,出現此故障是由於undo表空間損壞所致。
老師問我們,如何解決此問題,本人隨口一答,新建undo表空間,然後把undo_tablespace引數指向新的表空間即可。後來才反應過來,資料庫在未open的情況下,是無法新建表空間操作的,頓時覺得很囧。
廢話不說了,下面演示針對undo表空間出錯的情況下,如何開啟資料庫例項。
解決思路:將UNDO_MANAGEMENT修改為manul,下次啟動資料庫時,則系統使用的是system表空間的回滾段(rollback segment)。
1、 模擬undo表空間出錯的情況,將該表空間名字修改為一個錯誤的名字。則下次啟動使用spfile時,會因為無法找到該表空間而報錯。
SQL> alter system set undo_tablespace=undotbs11 scope=spfile;
System altered.
2、重啟資料庫例項,果然出現了錯誤(老師所述的錯誤是由於undo表空間出現了壞塊,不過解決這種問題的辦法都是相同的):
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 121636432 bytes
Database Buffers 159383552 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORA-01092: ORACLE instance terminated. Disconnection forced
3、這種情況下,由於資料庫無法變成open狀態,因此是無法開啟spfile的,我們只能通過pfile來開啟資料庫。
3.1、新建pfile
SQL> create pfile from spfile;
File created.
3.2、編輯pfile,我們將undo_management的值由AUTO修改為manual。
[oracle@localhost dbs]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ vi initorcl.ora
*.undo_management='AUTO' à *.undo_management='manual'
4、下面,我們採用pfile來啟動資料庫:
SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
SQL> startup pfile=/opt/ora10g/product/10.2.0/db_1/dbs/initorcl.ora
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 121636432 bytes
Database Buffers 159383552 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL>
5、現在資料庫例項開啟了,我們再建立spfile,讓資料庫下次啟動時,自動讀取spfile。
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
SQL> create spfile from pfile;
File created.
SQL> startup force
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 121636432 bytes
Database Buffers 159383552 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME TYPE VALUE
-------------- --------------------- --------------------------------------------------------------
spfile string /opt/ora10g/product/10.2.0/db_1/dbs/spfileorcl.ora
6、現在我們再將相應的引數修改回去,系統表空間的資源是有限的,我們最好不要使用回滾段。
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string MANUAL
undo_retention integer 900
undo_tablespace string UNDOTBS11
SQL> alter system set undo_management=auto scope=spfile;
System altered.
SQL> alter system set undo_tablespace=UNDOTBS1 scope=spfile;
System altered.
SQL> startup force
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 125830736 bytes
Database Buffers 155189248 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
至此,undo表空間損壞,導致資料庫例項無法開啟的問題的基本解決思路已經展示完成。有興趣的讀者,還可以自行再建立新的undo表空間,並且將undo_tablespace的引數值修改為此表空間名。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14600958/viewspace-672267/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- UNDO表空間損壞導致資料庫無法OPEN資料庫
- undo表空間出現壞塊導致資料庫重啟問題解決資料庫
- ORACLE的歸檔空間滿導致的監聽故障資料庫無法啟動Oracle資料庫
- 【問題處理】因ASM磁碟組空間不足導致資料庫例項無法啟動的故障處理ASM資料庫
- 又一例SPFILE設定錯誤導致資料庫無法啟動資料庫
- HA異常導致oracle資料庫無法啟動Oracle資料庫
- 改變資料庫undo表空間資料庫
- 資料庫表匯出不全導致tomcat無法釋出程式資料庫Tomcat
- Oracle - 資料庫的例項、表空間、使用者、表之間關係Oracle資料庫
- oracle undo 表空間Oracle
- oracle SGA設定過大導致資料庫無法啟動Oracle資料庫
- listener的ORACLE_HOME配置出錯導致無法遠端登陸資料庫Oracle資料庫
- Oracle體系結構之-資料庫、表空間、例項簡介Oracle資料庫
- SPFILE 錯誤導致資料庫無法啟動(ORA-01565)資料庫
- Oracle undo 表空間管理Oracle
- oracle重建UNDO表空間Oracle
- oracle undo表空間管理Oracle
- Flash Recovery Area空間不足導致資料庫不能開啟或hang住資料庫
- 歸檔空間不足導致例項死鎖
- 記一次ORA-01102導致資料庫例項無法啟動案例資料庫
- undo壞塊引起資料庫無法啟動資料庫
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- 歸檔問題導致的資料庫無法啟動資料庫
- 修改SQLNET.ORA導致資料庫無法啟動SQL資料庫
- oracle清除資料庫表空間Oracle資料庫
- 表空間擴充套件過程 停電導致異常中斷, 無法啟動套件
- 誤修改ORACLE_HOME導致無法登陸資料庫Oracle資料庫
- undo表空間滿導致的ogg discard檔案寫滿
- Oracle 11.2.0.4 RAC $ORACLE_HOME/bin/oracle許可權不對導致無法啟動例項Oracle
- eclipse: workspace出錯導致無法啟用的解決Eclipse
- ASM空間爆滿導致資料庫掛起ASM資料庫
- 由AIX系統故障導致系統重啟,使Oracle資料庫自動啟動例項AIOracle資料庫
- ORACLE線上切換undo表空間Oracle
- Oracle undo表空間切換(ZT)Oracle
- oracle回滾段 undo 表空間Oracle
- ORACLE撤銷表空間(Undo Tablespaces)Oracle
- undo表空間太大解決辦法
- 【故障處理】修改主機名導致oracle例項無法啟動暨如何修改hostnameOracle