1. 程式人生 > >Oracle控制檔案和日誌檔案管理

Oracle控制檔案和日誌檔案管理

控制檔案管理
1、控制檔案的特徵:二進位制檔案
2、控制檔案的內容:
資料庫名稱和sid標誌;
資料檔案和日誌檔案列表(包含檔名稱和對應的路徑資訊);
資料庫建立的時間戳;
表空間資訊;
當前重做日誌檔案序列號;
歸檔日誌資訊;
檢查點資訊;
回滾段(undo segment)的起始和結束;
備份資料檔案資訊。
3、控制檔案的作用:Oracle根據控制檔案中的資訊在例項和資料庫之間建立關聯,記錄資料庫物理組成的變化
4、控制檔案安全機制:備份檔案和多路複用
使用控制檔案多路複用如何新增新的資料檔案舉例
--查詢當前的控制檔案:
select * from v$controlfile;
--以下為查詢到的本機的兩個控制檔案:
--F:\APP\HANLIN\ORADATA\ORCL\CONTROL01.CTL
--F:\APP\HANLIN\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL
--修改系統引數control_files,新增新的路徑:
alter system set control_files=
'F:\APP\HANLIN\ORADATA\ORCL\CONTROL01.CTL', 
'F:\APP\HANLIN\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL',
'F:\app\hanlin\admin\orcl\CONTROL03.CTL' scope=spfile;
--退出oracle連線,到元件服務將中的【OracleServiceORCL】和【OracleDBConsoleORCL】服務停止。
--將控制檔案複製到新增的路徑F:\app\hanlin\admin\orcl下,修改控制檔案的名字為CONTROL03.CTL
--重啟關閉的服務即可生效
備份和恢復控制檔案
--備份為二進位制檔案
alter database backup controlfile to 'F:\app\hanlin\admin\orcl\controlbackup.bkp';
--備份為可讀的文字檔案:
show parameter user_dump_dest;
alter database backup controlfile to trace;
--所建立的檔案稱為跟蹤檔案,為可執行的sql指令碼,可以用來重建新的控制檔案。
與控制檔案相關的資料字典:
v$controlfile控制檔案的名稱和狀態資訊
v$controlfile_record_section  包含控制檔案中各個記錄文件段的資訊
v$parameter 包含control_file的值
select type,record_size,records_total,records_used from v$controlfile_record_section;
日誌檔案管理
注意:系統變更碼(SCN)會隨著重做日誌一起儲存到重做日誌檔案中,以標識與重做記錄相關的事務。
--新增新的重做日誌檔案組,group 4 可以預設,大小最好10M到50M之間
select * from v$logfile;
alter database add logfile group 4
'F:\APP\HANLIN\ORADATA\ORCL\REDO04.LOG'  size 20M;
多個成員
alter database add logfile group 6
('F:\APP\HANLIN\ORADATA\ORCL\REDO06_A.LOG',
'F:\APP\HANLIN\ORADATA\ORCL\REDO06_B.LOG')
 size 20M;
刪除日子檔案組的前提(通過v$log確認):
資料庫有兩個以上的日誌組;
日誌組處於inactive狀態;
歸檔模式下被刪除的日誌組已經歸檔。
下面語句只修改資料字典和控制檔案,不刪除實際檔案
alter database drop logfile group 4;
下面語句清空重做日誌檔案
alter database clear logfile group 4;
建立日誌成員檔案,通過group關鍵字 
alter database add logfile member 
'F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG' to group 4;
刪除日誌成員(只修改資料字典和控制檔案,不刪除實際檔案)
alter database drop logfile member 
'F:\APP\HANLIN\ORADATA\ORCL\REDO04_B.LOG' 
更改重做日誌檔案的位置或名稱的步驟:
shutdown;
複製日誌檔案,修改日誌檔名稱
startup mount;
--舉例兩個成員的路徑和名稱修改
alter database rename file 
'成員1j舊路徑\新檔名','成員2舊路徑\新檔名'
to
''成員1新路徑\新檔名,'成員2新路徑\新檔名';
alter database open;
重做日誌相關的檢視
v$log;v$logfile;v$log_history;
歸檔日誌檔案管理
日誌模式分類:歸檔模式和非歸檔模式
歸檔模式的優勢:
發生介質損壞可恢復(通過備份檔案+歸檔日誌);
為備份資料庫應用歸檔重做日誌實現資料庫同步;
開啟狀態下的備份可恢復。
非歸檔模式只能用於保護例項安全,不能保護介質故障。
演示:                                                                                                                                                                                                                                                                                                          檢視當前日誌模式:
select log_mode from v$database;
從非歸檔模式修改為歸檔模式;
shutdown immediate;
startup mount;                                                                                                                                                                                                                                                                                           alter database archivelog;            
alter database open;                                                                                                                                                                                                                                                                               配置歸檔程序的數量 
--查詢
show parameter  log_archive_max_processes;
--修改
 alter system set  log_archive_max_processes=3;
設定歸檔檔案的位置,即歸檔目標log_archive_dest_n.
--查詢
show parameter log_archive_dest;                                                                                                                                                                                                                                                     --設定,注意四個選項:預設,OPTIONAL,MANDATORY,REOPEN
alter system set log_archive_dest_1='location=F:\app\hanlin\admin\orcl\archive1';
alter system set log_archive_dest_2='location=F:\app\hanlin\admin\orcl\archive2 OPTIONAL';
預設即OPTIONAL,無論歸檔操作是否成功,都可以覆蓋重做日誌檔案
alter system set log_archive_dest_3='location=F:\app\hanlin\admin\orcl\archive3 MANDATORY';    
MANDATORY強制進行歸檔操作,只有歸檔成功後,重做日誌才能被覆蓋
alter system set log_archive_dest_4='location=F:\app\hanlin\admin\orcl\archive4 MANDATORY reopen=400';    
REOPEN,為 MANDATORY的補充選項,控制重新歸檔的時間間隔。
設定最小歸檔數,如果成功生成的歸檔日誌檔案小於最小個數,那麼重做日誌檔案將不能被覆蓋
alter system set log_archive_min_succeed_dest=3;       
 歸檔日誌檔案相關的幾個檢視;
v$database的log_mode 資料庫歸檔模式
v$archived_log 控制檔案中已經歸檔的日誌檔案資訊
v$archive_dest 所有歸檔目標
v$archive_processes 已啟動的歸檔程序狀態
v$archive_redolog    已經備份的歸檔日誌資訊                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        努力不會背叛
博文僅供參考,歡迎大家來訪。如有錯誤之處,希望批評指正