控制檔案詳解(轉)
本文詳細介紹控制檔案
主要從以下幾個問題
1.什麼是控制檔案,它有什麼作用?
2.控制檔案包含哪些內容?
3.什麼時候建立控制檔案?
4.在哪些時候應該更新控制檔案?
5.什麼情況下需要建立新的控制檔案呢?
6.建立控制檔案的步驟是?
2.控制檔案包含哪些內容?
3.什麼時候建立控制檔案?
4.在哪些時候應該更新控制檔案?
5.什麼情況下需要建立新的控制檔案呢?
6.建立控制檔案的步驟是?
2.控制檔案包含哪些內容?
資料庫名
資料檔案和重做日誌檔名和地置資訊
資料建立時間
檢查點(checkpoint)資訊
當前log序列號
資料庫名
資料檔案和重做日誌檔名和地置資訊
資料建立時間
檢查點(checkpoint)資訊
當前log序列號
3.什麼時候建立控制檔案?
當資料庫建立時會自動建立控制檔案,可以手動更改控制檔案地置和名稱,為安全起見最好將控制檔案放在不同磁碟下.
當資料庫建立時會自動建立控制檔案,可以手動更改控制檔案地置和名稱,為安全起見最好將控制檔案放在不同磁碟下.
4.在哪些時候應該更新控制檔案?
當資料檔案增加,刪除或改名(因為控制檔案裡會記錄資料檔名和位置)
當增加刪除或修改表空間讀寫狀態時()
當增加或刪除重做日誌檔案或重做日誌檔案組
當資料檔案增加,刪除或改名(因為控制檔案裡會記錄資料檔名和位置)
當增加刪除或修改表空間讀寫狀態時()
當增加或刪除重做日誌檔案或重做日誌檔案組
5.什麼情況下需要建立新的控制檔案呢?
當所有控制檔案損壞而沒有備份時
當要更改在建立資料時指定的初使化引數設定時(如資料庫名..)
當所有控制檔案損壞而沒有備份時
當要更改在建立資料時指定的初使化引數設定時(如資料庫名..)
6..建立控制檔案的步驟是?
1.列出資料庫所有資料檔案和線上重做日誌檔案
可以這3個檢視中查到:
SELECT MEMBER FROM V$LOGFILE;
SELECT NAME FROM V$DATAFILE;
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'control_files';
1.列出資料庫所有資料檔案和線上重做日誌檔案
可以這3個檢視中查到:
SELECT MEMBER FROM V$LOGFILE;
SELECT NAME FROM V$DATAFILE;
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'control_files';
2.關閉資料庫
3.備份所有資料檔案和線上重做日誌檔案
4.開啟例項
startup nomount(這種開啟方式不載入控制檔案)
5.建立新的控制檔案
此時檔案列表一定要對否時恢復不了資料庫
6.備份剛建立的控制檔案
7.修改初使化引數檔案,將所有有用的控制檔案加進去
8.恢復資料庫
9.開啟資料庫
當須要恢復資料庫時使用alter database open resetlogs;
否時用alter database open 開啟資料庫.
3.備份所有資料檔案和線上重做日誌檔案
4.開啟例項
startup nomount(這種開啟方式不載入控制檔案)
5.建立新的控制檔案
此時檔案列表一定要對否時恢復不了資料庫
6.備份剛建立的控制檔案
7.修改初使化引數檔案,將所有有用的控制檔案加進去
8.恢復資料庫
9.開啟資料庫
當須要恢復資料庫時使用alter database open resetlogs;
否時用alter database open 開啟資料庫.
下面貼出建立控制檔案語句
QL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啟動。
QL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啟動。
Total System Global Area 644468736 bytes
Fixed Size 1335108 bytes
Variable Size 268435644 bytes
Database Buffers 369098752 bytes
Redo Buffers 5599232 bytes
Fixed Size 1335108 bytes
Variable Size 268435644 bytes
Database Buffers 369098752 bytes
Redo Buffers 5599232 bytes
已用時間: 00: 00: 05.14SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 5
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 1
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO01.LOG' SIZE 10M,
9 GROUP 2 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO02.LOG' SIZE 10M,
10 GROUP 3 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO03.LOG' SIZE 10M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSTEM01.DBF',
14 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSAUX01.DBF',
15 'D:\APP\YICHUNMEI\ORADATA\ORCL\UNDOTBS01.DBF',
16 'D:\APP\YICHUNMEI\ORADATA\ORCL\USERS01.DBF'
17 CHARACTER SET ZHS16GBK
18 ;
2 MAXLOGFILES 5
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 1
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO01.LOG' SIZE 10M,
9 GROUP 2 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO02.LOG' SIZE 10M,
10 GROUP 3 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO03.LOG' SIZE 10M
11 -- STANDBY LOGFILE
12 DATAFILE
13 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSTEM01.DBF',
14 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSAUX01.DBF',
15 'D:\APP\YICHUNMEI\ORADATA\ORCL\UNDOTBS01.DBF',
16 'D:\APP\YICHUNMEI\ORADATA\ORCL\USERS01.DBF'
17 CHARACTER SET ZHS16GBK
18 ;
控制檔案已建立。
SQL> alter database open;
資料庫已更改。
另外:建立控制檔案時很容易報(ORA-01173, ORA-01176, ORA-01177, ORA-01215, or ORA-01216))等錯誤,主要是資料檔案日誌檔案沒有列對,不是多了可能就是少了.
7.怎麼備份控制檔案呢?
下面是兩種備份方法
方法一直接備份成bkp檔案
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'D:\app\yichunmei\oradata\ORCL\control.bkp';
下面是兩種備份方法
方法一直接備份成bkp檔案
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'D:\app\yichunmei\oradata\ORCL\control.bkp';
資料庫已更改。
方法二將生成控制檔案的指令碼寫入trace檔案中,可從trace中得到建立控制檔案指令碼,再執行建立指令碼
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
資料庫已更改。
已用時間: 00: 00: 00.05
SQL>
SQL>
SQL> @D:\app\yichunmei\product\11.1.0\db_1\RDBMS\ADMIN\gettrcname.sql
SQL>
SQL>
SQL> @D:\app\yichunmei\product\11.1.0\db_1\RDBMS\ADMIN\gettrcname.sql
TRACE_FILE_NAME
----------------------------------------------------------------------------------------------------
d:\app\yichunmei\diag\rdbms\orcl\orcl\trace/orcl_ora_4520.trc
----------------------------------------------------------------------------------------------------
d:\app\yichunmei\diag\rdbms\orcl\orcl\trace/orcl_ora_4520.trc
8.怎麼從備份中恢復控制檔案呢?
1.對於bkp檔案可用rman
RMAN> restore controlfile from 'D:\app\yichunmei\oradata\ORCL\CONTROL.BKP';
啟動 restore 於 28-11月-11
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=98 裝置型別=DISK
1.對於bkp檔案可用rman
RMAN> restore controlfile from 'D:\app\yichunmei\oradata\ORCL\CONTROL.BKP';
啟動 restore 於 28-11月-11
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=98 裝置型別=DISK
通道 ORA_DISK_1: 已複製控制檔案副本
輸出檔名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL01.CTL
輸出檔名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL02.CTL
完成 restore 於 28-11月-11
輸出檔名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL01.CTL
輸出檔名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL02.CTL
完成 restore 於 28-11月-11
RMAN> recover database;
RMAN>alter database open resetlog;
2.對於用指令碼建立的控制檔案,直接覆蓋就行
先關閉資料庫
再備份覆蓋以前的
再修改引數檔案
再開啟資料庫
RMAN>alter database open resetlog;
2.對於用指令碼建立的控制檔案,直接覆蓋就行
先關閉資料庫
再備份覆蓋以前的
再修改引數檔案
再開啟資料庫
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24104518/viewspace-712398/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檔案管理命令詳解(轉)
- Windows系統檔案詳解(轉)Windows
- 資料庫控制檔案中的SCN詳解資料庫
- 轉儲 控制檔案
- XF86Conifg檔案詳解(轉)
- 控制檔案的誤解
- Dockerfile檔案詳解Docker
- mtl檔案詳解
- cmake檔案詳解
- BMP檔案詳解
- LD檔案詳解
- ORACLE控制檔案的重建 (轉)Oracle
- 詳述Oracle 多路複用的控制檔案——增加一個控制檔案副本Oracle
- 【控制檔案】映象控制檔案
- 【轉】kafka-檔案儲存機制詳解Kafka
- oracle 跟蹤檔案和轉儲命令詳解Oracle
- oracle控制檔案轉儲說明Oracle
- java class檔案詳解Java
- JavaScript 檔案物件詳解JavaScript物件
- redis 配置檔案詳解Redis
- Class 檔案格式詳解
- haproxy配置檔案詳解
- Scala檔案操作詳解
- redis配置檔案詳解Redis
- Dockerfile檔案全面詳解Docker
- SSH配置檔案詳解
- zookeeper配置檔案詳解
- nginx配置檔案詳解Nginx
- WCF配置檔案詳解
- Java Class檔案詳解Java
- /etc/fstab檔案詳解
- Nginx配置檔案nginx.conf中文詳解(轉)Nginx
- Linux之facl----設定檔案訪問控制列表(詳解)Linux
- JPEG檔案編/解碼詳解 .
- notes.ini檔案的配置引數詳解(轉)
- 查詢檔案中的控制字元(轉)字元
- Nginx的配置檔案詳解Nginx
- MachO 檔案結構詳解Mac