oracle數據庫控制文件的認識

控制文件(mount階段被讀取,open階段一直被調用)


控制文件的內容及管理:
·存放數據庫的物理信息(數據庫的名字,ID,創建時間,版本,角色)
·存放聯機日誌和數據文件的指針
·記錄聯機日誌中包含的redo條目的數量
·記錄數據文件頭檢查點的信息
·記錄日誌切換的頻率
·記錄日誌進程的信息
·記錄檢查點進程的信息
·記錄rman備份的信息
·控制文件在mount時第一次被加載
·在open之後時刻變化
·數據庫工作時至少需要一個控制文件,最多同時可以指定8個控制文件
·控制文件的存放位置和數量由參數決定(control_files)
·所有的控制文件必須保持鏡像關係
·生產庫推薦至少使用兩個控制文件
 
查看控制文件中的記錄片段
select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED from v$controlfile_record_section;
 
查看控制文的存儲信息
select * from v$controlfile;


控制文件的相關實驗 
增加控制文件:多元化 & 多路複用
alter system set control_files=
'/u01/app/oracle/oradata/prod/control01.ctl',
'/u01/app/oracle/oradata/prod/control02.ctl'
scope=spfile;
 
shut immediate
cp -v /u01/app/oracle/oradata/prod/control01.ctl /u01/app/oracle/oradata/prod/control02.ctl
startup
 
減少控制文件:在參數中減少一個指針
alter system set control_files=
'/u01/app/oracle/oradata/prod/control02.ctl'
scope=spfile;
shut immediate
startup
 
移動控制文件
alter system set control_files=
'/test/control02.ctl'
scope=spfile;
shut immediate
mv /u01/app/oracle/oradata/prod/control02.ctl /test/control02.ctl
startup
 
控制文件改名:
alter system set control_files=
'/test/control01.ctl'
scope=spfile;
shut immediate
mv /test/control02.ctl /test/control01.ctl
startup


找回控制文件
 
未停實例:
1.從內存中獲取控制文件:
lsof | grep control02.ctl
cp -v 256 /u01/app/oracle/oradata/prod/control01.ctl
chown oracle. /u01/app/oracle/oradata/prod/control01.ctl

2.讀取內存控制文件到跟蹤(診斷)文件
alter database backup controlfile to trace
找到對應產生的跟蹤文件
利用create controlfile 命令重建。

 

停實例的處理:
重建控制文件:控制文件中最主要的信息就是所有數據庫文件頭的信息!只要有數據文件就可以重建控制文件!
(數據文件位置
cd $ORACLE_BASE/oradata/$ORACLE_SID)

create controlfile reuse database prod noarchivelog noresetlogs
datafile
'/u01/app/oracle/oradata/prod/system01.dbf',
'/u01/app/oracle/oradata/prod/sysaux01.dbf',
'/u01/app/oracle/oradata/prod/undo01.dbf'
logfile
'/u01/app/oracle/oradata/prod/redo01.log',
'/u01/app/oracle/oradata/prod/redo02.log';


 
alter database;
recover database;
###########################################################################

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章