重建控制檔案的一次實施過程
先做一個實驗:
今日檢視oracle控制檔案移動和修改,發現本機安裝oracle資料庫啟動時只使用了一個控制檔案。
如下:SQL> select * from V$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------- --- ---------- --------------
/opt/oracle/oradata/ NO 16384 450
orcl/control02.ctl
1、決定將控制檔案01和03加入進去,於是執行命令那個如下:
SQL> alter system set control_files = '/opt/oracle/oradata/orcl/control01.ctl',
2 '/opt/oracle/oradata/orcl/control02.ctl',
3 '/opt/oracle/oradata/orcl/control03.ctl' SCOPE=SPFILE;
System altered.
2、關閉資料庫 SQL> shutdown immediate;
3、再次啟動資料庫,資料無法啟動,報錯ORA-00214如下:
SQL> startup
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 1219160 bytes
Variable Size 318768552 bytes
Database Buffers 922746880 bytes
Redo Buffers 15556608 bytes
ORA-00214: control file '/opt/oracle/oradata/orcl/control02.ctl' version 599
inconsistent with file '/opt/oracle/oradata/orcl/control01.ctl' version 541
故障分析
1、根據錯誤提示為控制檔案版本不一致導致。控制檔案原理為維護資料庫的當前物理狀態,為二進位制的檔案,資料庫開啟的時候控制檔案一致變化。主要記錄資料庫名字、標示、當前日誌SCN、表空間資訊等。理論上3個控制檔案應該一致。
2、因為版本不一致,且控制檔案2版本最新為version 599.
故障解決
1、在作業系統上,備份所有控制檔案,同時使用控制檔案control02.ctl覆蓋重新命名control01.ctl、control03.ctl,保證版本一致。
2、操作後,資料庫啟動正常,可以使用,問題解決。
問題延伸
在先前如果過覆蓋控制檔案方法無法解決,
這種情況就是控制檔案已經損壞了。
可以重新建立控制檔案來解決,具體操作步驟如下:
1、startup nomount;
2、備份控制檔案.SQL >ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
所以注意:運用這個 命令資料庫至少要在mount狀態上。
這時候會在udump目錄下生成SID_ora_*.trc檔案,該檔案中有建立控制檔案的指令碼,一般分為
歸檔模式和非歸檔模式,
3、我的資料庫為非歸檔模式,選擇如下:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL9" NORESETLOGS NOARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 907
LOGFILE
GROUP 1 'D:\ORACLE9I\ORA92\ORADATA\ORCL9\REDO01.LOG' SIZE 1M,
GROUP 2 'D:\ORACLE9I\ORA92\ORADATA\ORCL9\REDO02.LOG' SIZE 1M,
GROUP 3 'D:\ORACLE9I\ORA92\ORADATA\ORCL9\REDO03.LOG' SIZE 1M
-- STANDBY LOGFILE
DATAFILE
'D:\ORACLE9I\ORA92\ORADATA\ORCL9\SYSTEM01.DBF',
'D:\ORACLE9I\ORA92\ORADATA\ORCL9\UNDOTBS01.DBF'
CHARACTER SET ZHS16GBK
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;
# Commands to add tempfiles to temporary tablespaces.
# Online tempfiles have complete space information.
# Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'D:\ORACLE9I\ORA92\ORADATA\ORCL9\TEMP01.DBF'
SIZE 52428800 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
# End of tempfile additions.
#
# Set #2. RESETLOGS case
#
# The following commands will create a new control file and use it
# to open the database.
# The contents of online logs will be lost and all backups will
# be invalidated. Use this only if online logs are damaged.
4、startup nomount 啟動資料庫
5、在SQL模式下:執行如下命令。
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "APTS" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/opt/oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/opt/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/opt/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/opt/oracle/oradata/orcl/system01.dbf',
'/opt/oracle/oradata/orcl/undotbs01.dbf',
'/opt/oracle/oradata/orcl/sysaux01.dbf',
'/opt/oracle/oradata/orcl/users01.dbf',
'/opt/oracle/oradata/orcl/example01.dbf'
CHARACTER SET ZHS16GBK;
6、執行:SQL > RECOVER DATABASE
必須recover ,要不然會報
7、執行: SQL > ALTER DATABASE OPEN;
8、執行: SQL > ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\APTS\TEMP01.DBF'
SIZE 20M REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
9、問題解決,控制檔案重建成功。
10、如果遇到失敗情況,請按照上述步驟重新確認在執行。
最後,重建好後,建議重新備份一次。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-1293445/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重建控制檔案
- 重建控制檔案--
- 專案實施過程
- Oracle 控制檔案的重建Oracle
- Oracle重建控制檔案Oracle
- DataGuard重建控制檔案
- oracle 重建控制檔案Oracle
- 如何重建RAC的控制檔案
- ORACLE控制檔案的重建 (轉)Oracle
- 控制檔案損壞重建實驗(上)
- 控制檔案損壞重建實驗(下)
- 利用trace重建控制檔案
- RAC環境重建控制檔案
- 控制檔案重建以及備份
- 重建控制檔案的恢復(noresetlogs)
- 重建Oracle資料庫控制檔案Oracle資料庫
- 記一次PMML檔案的處理過程
- oracle10g_備份控制檔案_得到重建控制檔案的指令碼Oracle指令碼
- ERP專案實施過程中的致命過失(轉)
- IT成本管理的實施過程(轉)
- 備份與恢復--重建控制檔案
- 重建控制檔案 recreate control file
- 用重建控制檔案的方法修改oracle資料檔案路徑Oracle
- 控制檔案重建後的不完全恢復
- oracle之 利用 controlfile trace檔案重建控制檔案Oracle
- 重建控制檔案後某些檔案被命名為MISSINGnnnnnGNN
- 請教關於利用跟蹤檔案重建控制檔案
- 企業實施ERP專案過程的管理(轉)
- 【TABLESPACE】通過重建控制檔案調整表空間資料檔案位置及名稱
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- Oracle 11g重建控制檔案——如何獲取建立控制檔案指令碼Oracle指令碼
- sql 重建控制檔案resetlogs和noresetlogsSQL
- 【RAC】Oracle 10g RAC 重建控制檔案Oracle 10g
- Oracle ERP財務部分專案實施過程Oracle
- oracle快速拿到重建控制檔案語句的方法二Oracle
- Oracle 11g重建控制檔案——控制檔案全部丟失,從零開始Oracle
- 控制檔案丟失恢復例項(3) - 使用重建控制檔案方式(noresetlogs)
- 一次物理刪除資料檔案的恢復過程