Oracle啟動後對控制檔案的依賴
今天測試的時候糾正了一個錯誤的印象,一直認為如果當前控制檔案被誤刪除,會導致例項關閉。
而實際上,Oracle並不會結束當前的例項:
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/oracle/oradata/db01/contr
ol01.ctl, /u01/oracle/oradata/
db01/control02.ctl, /u01/oracl
e/oradata/db01/control03.ctl
SQL> select * from dual;
D
-
X
SQL> host
oracle:/home/oracle> cd /u01/oracle/oradata/db01
oracle:/u01/oracle/oradata/db01> ls -l *.ctl
-rw-r----- 1 oracle dba 9748480 May 24 12:55 control01.ctl
-rw-r----- 1 oracle dba 9748480 May 24 12:55 control02.ctl
-rw-r----- 1 oracle dba 9748480 May 24 12:55 control03.ctl
oracle:/u01/oracle/oradata/db01> rm control02.ctl
oracle:/u01/oracle/oradata/db01> exit
exit
SQL> select * from dual;
D
-
X
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
db01 OPEN
SQL> alter system checkpoint;
System altered.
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
db01 OPEN
SQL> alter system switch logfile;
System altered.
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
db01 OPEN
SQL> col name format a50
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
/u01/oracle/oradata/db01/control01.ctl NO 16384 594
/u01/oracle/oradata/db01/control02.ctl NO 16384 594
/u01/oracle/oradata/db01/control03.ctl NO 16384 594
SQL> select * from v$controlfile_record_section;
select * from v$controlfile_record_section
*
ERROR at line 1:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
/u01/oracle/oradata/db01/control01.ctl NO 16384 594
/u01/oracle/oradata/db01/control02.ctl NO 16384 594
/u01/oracle/oradata/db01/control03.ctl NO 16384 594
可以看到,刪除了一個控制檔案之後,資料庫照常執行,甚至在發現一個控制檔案丟失之後,資料庫例項仍然處於開啟狀態,檢查一下alert檔案:
Thread 1 advanced to log sequence 21 (LGWR switch)
Current log# 3 seq# 21 mem# 0: /u01/oracle/oradata/db01/redo03.log
Sun May 24 13:00:58 2009
Errors in file /u01/oracle/diag/rdbms/db01/db01/trace/db01_m002_27935.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
Sun May 24 13:24:09 2009
Errors in file /u01/oracle/diag/rdbms/db01/db01/trace/db01_m000_27986.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
Sun May 24 14:01:49 2009
Errors in file /u01/oracle/diag/rdbms/db01/db01/trace/db01_m002_28082.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
Sun May 24 14:24:59 2009
Errors in file /u01/oracle/diag/rdbms/db01/db01/trace/db01_m000_28132.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
Sun May 24 14:59:29 2009
Errors in file /u01/oracle/diag/rdbms/db01/db01/trace/db01_m000_28204.trc:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/oracle/oradata/db01/control02.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
雖然Oracle認識到一個控制檔案出現了異常,但是Oracle並沒有關閉當前例項。測試發現,即使刪除了所有當前的控制檔案,當前例項依然處於開啟的狀態,並且只有需要訪問控制檔案的操作會報錯,其他操作仍然可以執行。
Oracle既然不會自動關閉,那麼萬一出現了控制檔案誤刪除的情況,一定不要手工關閉當前的例項,只要例項不關閉,就可以輕鬆的查詢資料庫中的資料檔案、日誌檔案等資訊來重建控制檔案,而一旦關閉了例項,由於缺失控制檔案,例項將無法啟動,這時候要找到所有控制檔案中包含的資訊就比較困難了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-604042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 領域驅動設計對依賴的控制
- Maven依賴管理:控制依賴的傳遞Maven
- Oracle 控制檔案Oracle
- requirements.txt 檔案宣告依賴UIREM
- 我對控制反轉以及依賴注入的認識依賴注入
- 對控制反轉和依賴注入的突然頓悟依賴注入
- openGauss libpq使用依賴的標頭檔案
- 從github下好dirsearch後出現要下載檔案依賴錯誤Github
- Springboot專案中需整合的依賴集和檔案配置Spring Boot
- oracle 控制檔案及引數檔案何時自動備份Oracle
- 淺析依賴倒轉、控制反轉、IoC 容器、依賴注入。依賴注入
- 依賴注入和控制反轉依賴注入
- 反射,註解,動態代理,依賴注入控制反轉反射依賴注入
- gcc 標頭檔案依賴關係 分析工具GC
- rimraf 命令強制刪除依賴庫檔案
- 控制反轉,依賴注入,依賴倒置傻傻分不清楚?依賴注入
- ORACLE 控制檔案(Control Files)概述Oracle
- SpringBoot啟動流程分析(六):IoC容器依賴注入Spring Boot依賴注入
- 前端理解依賴注入(控制反轉)前端依賴注入
- Spring 控制反轉和依賴注入Spring依賴注入
- 依賴倒置、依賴注入和控制反轉傻傻分不清楚?依賴注入
- .NET IoC模式依賴反轉(DIP)、控制反轉(Ioc)、依賴注入(DI)模式依賴注入
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- Spring裡面xml檔案中bean的依賴和繼承SpringXMLBean繼承
- Hive實戰UDF 外部依賴檔案找不到的問題Hive
- Springboot引入thymeleaf依賴,在pom檔案中報錯。Spring Boot
- Oracle RAC 環境 引數檔案的啟動順序Oracle
- Oracle 叢集的自啟動,OLR與套接字檔案Oracle
- Istio 運維實戰系列(1):應用容器對 Envoy Sidecar 的啟動依賴問題運維IDE
- idea gradle 專案依賴IdeaGradle
- pyinstaller 打包 exe 程式步驟和新增依賴檔案方法
- SpringBoot2.6.x預設禁用迴圈依賴後的應對策略Spring Boot
- 【RMAN】Oracle中如何備份控制檔案?備份控制檔案的方式有哪幾種?Oracle
- 面試官:你是如何理解Java中依賴倒置和依賴注入以及控制反轉的?面試Java依賴注入
- JNI初步(五)jni ndk 一個.so檔案依賴另一個.so檔案的寫法
- Oracle 控制檔案損壞解決方案Oracle
- Oracle為什麼使用備份的控制檔案恢復後一定要resetlogsOracle
- 搭建react專案常用依賴React
- .net core 控制檯程式使用依賴注入(Autofac)依賴注入