小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Oracle學(xué)習(xí)筆記(5)日志文件

 憂郁_小剛 2011-05-20

日志文件

 

1、日志文件:在線日志文件和重做日志文件(在線日志文件備份)

sql> archive log list  //歸檔日志列表(d:\oracle\ora90\RDBMS)


2、log buffer內(nèi)存區(qū)域中發(fā)生數(shù)據(jù)改變的動作都是記錄在日志中;日志記錄的動作類型、動作發(fā)生時(shí)間和動作發(fā)生數(shù)據(jù)改變的新址舊址等等信息記錄在重做日志中,重做日志最終通過后臺進(jìn)程LGWR寫到在線日志里。重做日志作用:recovery 機(jī)制(維護(hù)基于介質(zhì)錯誤的系統(tǒng)恢復(fù)),維護(hù)數(shù)據(jù)完整性(維持recovery歷史數(shù)據(jù)恢復(fù)過程)。

重做日志文件被組織為日志組,每個組可以有多個日志文件,每個日志文件叫成員。
Oracle database要求至少2個日志組,按照有序的循環(huán)使用的方式使用它。

組1寫滿寫組2,組2寫滿寫組3,組3寫滿再回來寫組1,有序循環(huán)環(huán)路方式使用。當(dāng)組3寫入組1時(shí),做一個backup備份工作。

重做日志文件多工:容錯機(jī)制。當(dāng)組1寫滿想寫組2,但當(dāng)前組2中所有成員壞掉了,這時(shí)系統(tǒng)就會報(bào)錯。在Oracle環(huán)境中假定當(dāng)前組2中還有1個成員,即便其他成員都壞掉了,Oracle還可以繼續(xù)跑。

【建議】對日志文件做多工,而不同的成員放在不同的物理hard disk(D盤中不同區(qū)域),而不是邏輯的分區(qū)。

 

sql>alter system archive log start;  //啟動自動存檔過程
sql>alter system switch logfile;    //LGWR停止寫舊組轉(zhuǎn)而寫新組的過程(強(qiáng)制):日志的switch

在發(fā)生日志switch之前,后臺會完成一個Checkpoint操作,用來實(shí)現(xiàn)數(shù)據(jù)庫的同步,它會寫控制文件,同時(shí)還會寫數(shù)據(jù)文件。

sql>alter system checkpoint;  //強(qiáng)制同步

sql>show parameter fast   //(也可以設(shè)置FAST_START_MTTR_TARGET參數(shù)可以控制同步的頻率) MTTR:mean time to recovery  [MTTR:meantime to recovery],同步頻率越高發(fā)生系統(tǒng)錯誤所需要的recovery時(shí)間就越少。除了fast_start_mttr_target外還有一個參數(shù):fast_start_io_target(8i中使用,9i以后不建議使用)

sql>show parameter log_checkpoint  //log_checkpoint_interval、log_checkpoint_timeout

 

3、添加日志組:(建議每組大小size相同)
 Alter database add logfile group 3
 ('$HOME/ORADATA/u01/log3a.rdo','$HOME/ORADATA/u01/log3b.rdo')
  SIZE 1M;

sql>select * from v$log;
sql>alter database add logfile group 6               //增加日志組6
  2 'd:\oracle\oradata\fox\redo06.ora' size 10m;
sql>alter database add logfile member                 //增加組成員
  2 'd:\oracle\oradata\fox\redo06a.ora' size 20m;(報(bào)錯)//不可以帶size參數(shù),Oracle自動對應(yīng)已經(jīng)有的member的大小


sql> c /size 10m/   //取消size 10m參數(shù)
sql> run

【注意】每個組可以不同大小,但每個組成員一定是大小一致的。

 

4、刪除日志文件組:
ALTER DATABASE DROP LOGFILE GROUP 3;

sql>alter database drop logfile group 6;

在刪除的時(shí)候,只是改變控制文件的信息,不會對底層的OS文件造成刪除(只能手工去刪除數(shù)據(jù)文件和日志文件:D:\oracle\oradata\fox中的REDO06.ora、REDO06A.ora等)。

【注意】日志組的刪除限制:當(dāng)前日志組不能刪;active 活動日志組不能刪;未歸檔的日志組不能刪。

刪除日志組成員: ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

【注意】日志組成員的刪除限制:保留最后一個日志組成員(每組中至少有一個成員不能刪)。
sql>select * from v$logfile;
sql>alter database drop logfile member 'D:\oracle\oradata\fox\redo04A.ora'
sql>c /redo04a/redo04/   //修改以上語句的參數(shù)
sql>run 
提示:無法刪除最后一個日志成員

 

5、日志清空、移動和重命名
日志清空:reinit(重新初始化) ALTER DATABASE CLEAR LOGFILE '$HOME/ORADATA/u01/log2a.rdo';
sql>alter database clear logfile group 2; (當(dāng)前日志文件的清空無法進(jìn)行)
sql>alter database clear unarchived logfile group 5; (可以進(jìn)行未歸檔清空日志,造成日志歷史記錄斷點(diǎn),做完此事一定不要忘記做系
統(tǒng)完全備份。)


移動或重命名方式:(1)可以通過添加新成員,刪除舊成員的方式(2)也可以通過copy OS文件并重命名的方式,然后執(zhí)行:ALTER DATABASE RENAME '舊名' TO '新名'
sql>alter database rename file 'D:\oracle\oradata\fox\redo05.ora' to 'D:\oracle\oradata\fox\redo05a.ora'

 

6、在線重做日志文件使用OMF方式:
sql> show parameter db_create_log
sql> alter system set db_create_online_log_dest_q='d:\oracle\oralog';
sql> alter database add logfile group 6;  //默認(rèn)100m大小的日志文件被生成
sql> alter database drop logfile group 5;  //會刪除包括OS文件在內(nèi)的該日志組的所有文件
sql> alter database clear unarchived logfile group 5;

 

7、獲取日志組和組成員的信息:v$log ,v$logfile
v$log (查詢?nèi)罩窘Minfo)->  status:current/active/inactive/unused
v$logfile(查詢?nèi)罩窘M成員)-> status:blank(in use 在使用),stale(incomplete不完整),delete(被刪除了)

 

8、歸檔日志文件[Archived]:備份在線日志的文件
用途:(1)幫助數(shù)據(jù)恢復(fù)Recovery.(2)在線備份(database is open)
默認(rèn)情況下 database 是被運(yùn)行在NoArchivelog (非歸檔)模式,這種模式下相當(dāng)于日志未作歷史備份,不可以借助日志來進(jìn)行數(shù)據(jù)恢復(fù)。非
歸檔模式只能做全備,而且只能做離線備份(冷備),在數(shù)據(jù)恢復(fù)時(shí)只能全恢復(fù)。而歸檔模式可以做部分備份、部分恢復(fù)、在線備份(數(shù)據(jù)庫不需要關(guān)閉也能恢復(fù),即熱備)


9、如何在歸檔模式和非歸檔模式之間的轉(zhuǎn)換步驟:
  (1)關(guān)閉數(shù)據(jù)庫 shutdown immediate 
  (2)重啟數(shù)據(jù)庫 startup mount
   (3) alter database archivelog/noarchivelog 歸檔/非歸檔模式
   (4) 打開數(shù)據(jù)庫 alter database open
   (5) 對數(shù)據(jù)庫進(jìn)行全備 alter system archive log all

sql>shutdown immediate
sql>startup pfile=d:\oracle\ora90\database\initfox.ora mount  //啟動例程
sql>alter database noarchivelog; 或 alter database archivelog 
sql>alter databse open

 

10、自動歸檔:archive log start
    手工歸檔:alter system archive log all  //歸檔所有日志文件

sql> select * from v$archived_log;  //查詢歸檔日志文件信息。

【注意】一旦在線日志組被寫滿了,它還沒有完成歸檔,那么這個日志組是不能被重寫的,系統(tǒng)會等待這個完成歸檔的過程。因此,DBA要規(guī)劃系統(tǒng)中有多少個歸檔日志組,每個組成員有多大,才能滿足系統(tǒng)需求,不至于導(dǎo)致歸檔過程影響系統(tǒng)操作。歸檔日志文件可以被多工。

sql> show parameter log_archive //顯示歸檔參數(shù)


11、Oracle中實(shí)現(xiàn)日志挖掘logmnr分析(分區(qū)過程)步驟:
(1)設(shè)定日志分析目錄 set directory utl_file_dir
(2)重啟oracle   restartup
 (3) 建立目錄文件 create directory file   (dbms_logmnr_d.build)
 (4) 添加/移除日志文件到目錄文件:(dbms_logmnr.add_logfile/dbms_logmnr.removefile)
 (5) 啟動日志挖掘分析(logmnr)   start logmnr  (dbms_logmnr.start_logmnr)
 (6) 分析的內(nèi)容進(jìn)行查詢   v$logmnr_content (sqlredo/sqlundo)

sql>desc dbms_logmnr
sql>desc dbms_logmnr_d
sql>update kong.sales set qty=10 where stor_id=6380  //模擬操作1
sql>delete kong.sales where stor_id=7066  //模擬操作2
sql>commit; 
sql>select * from v$log; //查詢當(dāng)前日志組編號 為group 2(即redo02)
sql>execute dbms_logmnr_d.build('foxdict.ora','d:\oracle\admin\fox\cdump');  //建立支點(diǎn)目錄文件,前一個參數(shù)是文件名,后一個參
數(shù)文件路徑是init中utl_file_dir所指定的路徑。

sql>desc dbms_logmnr
sql>execute dbms_logmnr.add_logfile('d:\oracle\oradata\fox\redo02.log',dbms_logmnr.new); //添加要分析的日志文件加到目錄文件
sql>execute dbms_logmnr.add_logfile('d:\oracle\oradata\fox\redo03.log',dbms_logmnr.new);
sql>execute dbms_logmnr.start_logmnr(dictfilename=>'d:\oracle\admin\fox\cdump\foxdict.ora');END;  //啟動日志挖掘分析
sql>select * from v$logmnr_content;  //查詢分析的內(nèi)容

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多