描述:
控制文件是一個較小的二進制可執行文件,包括:
- 數據庫名稱
- 數據文件的名稱和位置
- 聯機重做日誌的名稱和位置
- 當前聯機重做日誌的序列號
- 檢查點信息
- rman備份文件的名稱和位置
注:當數據庫startup nomount後,此時數據庫還未使用控制文件件,只有當轉向mount狀態時纔開始讀取控制文件。
操作:
C:\Users\v074>sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期三 6月 12 13:59:43 2019
Copyright (c) 1982, 2014, Oracle. All rights reserved.
連接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDBSKY READ WRITE NO
4 PDBCLOUD READ WRITE NO
5 PDBTEST READ WRITE NO
--顯示控制文件位置方式一
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string E:\APP\ORADATA\SKY\CONTROL01.C
TL, E:\APP\ORADATA\SKY\CONTROL
02.CTL
--顯示控制文件位置方式二
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
E:\APP\ORADATA\SKY\CONTROL01.CTL
E:\APP\ORADATA\SKY\CONTROL02.CTL
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:\APP\PRODUCT\12.1.0\DBHOME_1
\DATABASE\SPFILESKY.ORA
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string E:\APP\ORADATA\SKY\CONTROL01.C
TL, E:\APP\ORADATA\SKY\CONTROL
02.CTL
SQL> alter system set control_files='E:\APP\ORADATA\SKY\CONTROL01.CTL,E:\APP\ORADATA\CONT_FILE\CONTROL02.CTL' scope=spfile;
系統已更改。
SQL> shutdown immediate; --數據庫關閉後,將控制文件拷貝到想對應目錄下並重命名
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 2583691264 bytes
Fixed Size 3835400 bytes
Variable Size 738200056 bytes
Database Buffers 1828716544 bytes
Redo Buffers 12939264 bytes
ORA-00205: ?????????, ??????, ??????? --因爲修改控制文件參數時格式錯誤,因此數據庫開啓時因無法讀取而報錯
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已經關閉。
SQL> startup nomount --開啓nomount狀態下進行修改控制文件參數
ORACLE 例程已經啓動。
Total System Global Area 2583691264 bytes
Fixed Size 3835400 bytes
Variable Size 738200056 bytes
Database Buffers 1828716544 bytes
Redo Buffers 12939264 bytes
SQL> alter system set control_files='E:\APP\ORADATA\SKY\CONTROL01.CTL','E:\APP\ORADATA\CONT_FILE\CONTROL02.CTL' scope=spfile;
系統已更改。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 2583691264 bytes
Fixed Size 3835400 bytes
Variable Size 738200056 bytes
Database Buffers 1828716544 bytes
Redo Buffers 12939264 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> select name from v$controlfile; --路徑修改完畢
NAME
--------------------------------------------------
E:\APP\ORADATA\SKY\CONTROL01.CTL
E:\APP\ORADATA\CONT_FILE\CONTROL02.CTL
-- 爲數據庫添加控制文件,修改控制文件參數
SQL> alter system set control_files='E:\APP\ORADATA\SKY\CONTROL01.CTL','E:\APP\ORADATA\SKY\CONTROL03.CTL','E:\APP\ORADATA\CONT_FILE\CONTROL02.CTL' sc
pe=spfile;
系統已更改。
SQL> shutdown immediate --數據庫關閉後,複製控制文件到相應目錄下並重命名
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 2583691264 bytes
Fixed Size 3835400 bytes
Variable Size 738200056 bytes
Database Buffers 1828716544 bytes
Redo Buffers 12939264 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> select name from v$controlfile; --控制文件添加完畢
NAME
--------------------------------------------------
E:\APP\ORADATA\SKY\CONTROL01.CTL
E:\APP\ORADATA\SKY\CONTROL03.CTL
E:\APP\ORADATA\CONT_FILE\CONTROL02.CTL
SQL>