国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle中用LogMiner分析重做及歸檔日志

2024-08-29 13:51:17
字體:
供稿:網(wǎng)友
LogMiner是集成在Oracle8i/Oracle9i數(shù)據(jù)庫產(chǎn)品中的日志分析工具,通過該工具可以分析重做日志和歸檔日志中的所有事務變化,并能準確地確定各種DML和DDL操作的具體時間和SCN值。對重做日志和歸檔日志進行分析的目的是為了恢復由于執(zhí)行了誤操作而丟失的數(shù)據(jù)。 使用LogMiner可實現(xiàn):①確定數(shù)據(jù)邏輯損壞的時間。例如,用戶執(zhí)行了DROP TABLE和TRUNCATE TABLE命令等誤操作后,使用LogMiner可以準確定位執(zhí)行這些誤操作的具體時間。注重:Oracle8i只能還原DML操作,不能還原DDL操作;Oracle9i可以還原DDL以及DML操作。②跟蹤用戶執(zhí)行的事務變化操作。使用LogMiner不僅可以跟蹤用戶所執(zhí)行的各種DML操作和DDL操作,而且還可以取得數(shù)據(jù)變化。③跟蹤表的DML操作,使用LogMiner可以跟蹤在表上所發(fā)生的所有事務變化。 下面以Oracle8i(8.1.5)for windows 2000/NT為例說明如何使用LogMiner對重做日志和歸檔日志進行分析。本文進行的所有操作均在該環(huán)境下驗證通過,文中使用的數(shù)據(jù)庫名為phj,Oracle_sid為phj。 一、日志操作模式 Oracle數(shù)據(jù)庫對日志的治理模式有兩種,即:非歸檔模式和歸檔模式。在建立或安裝Oracle數(shù)據(jù)庫時,假如沒有指定日志操作模式,則默認為非歸檔模式(NOARCHIVELOG)。數(shù)據(jù)庫建立之后,用戶可以根據(jù)需要修改數(shù)據(jù)庫日志的操作模式。 1.非歸檔模式(NOARCHIVELOG) 非歸檔模式是指不保存重做日志的日志操作模式,這種日志操作模式只能用于保護實例失敗(如系統(tǒng)斷電),而不能用于保護介質(zhì)失敗(數(shù)據(jù)庫物理文件損壞)。 非歸檔模式的工作過程如下:假設數(shù)據(jù)庫只有兩個日志組,且當前日志組為日志組一,日志序列號為1。當事務變化填滿日志組一時,系統(tǒng)會切換到日志組二,并且LGWR進程將事務變化寫入該日志組,日志序列號變?yōu)?;而當事務變化填滿日志組二時,系統(tǒng)又自動切換回日志組一,此時日志序列號變?yōu)?,并且日志序列號3所對應的事務變化會覆蓋日志序列號1所對應的事務變化,依此類推。 2.歸檔模式(ARCHIVELOG) 歸檔模式是指將重做日志內(nèi)容保存到歸檔日志中的日志操作模式。在這種日志操作模式下,當進行日志切換時ARCH進程會將重做日志的內(nèi)容復制到歸檔日志中。例如,假設數(shù)據(jù)庫只包含兩個日志組,LGWR進程首先將事務變化寫入日志組一,此時日志序列號為1;當事務變化填滿日志組一時,系統(tǒng)將自動切換到日志組二,并將事務變化寫入日志組二,此時日志序列號變?yōu)?,同時后臺進程ARCn會將日志組一的內(nèi)容保存到歸檔日志文件1中;而當事務變化填滿日志組二時,系統(tǒng)自動切換回日志組一,并將事務變化寫入日志組一,此時日志序列號變?yōu)?,同時后臺進程ARCn會將日志組二的內(nèi)容保存到歸檔日志文件2中,依此類推。 3.改變?nèi)罩镜牟僮髂J綖樽詣託w檔模式 ①修改數(shù)據(jù)庫的參數(shù)文件,在參數(shù)文件后添加如下參數(shù):
    log_archive_start = true    log_archive_dest_1 = "location=C:/Oracle/phj/archive"    log_archive_format = "T%TS%S.ARC"
   說明:第一個參數(shù)在重啟數(shù)據(jù)庫時將自動啟動ARCH進程;第二個參數(shù)指出歸檔日志存放的位置;第三個參數(shù)說明歸檔日志的文件名格式,%T取重做線程號,%S取日志序列號; ②重啟并裝載數(shù)據(jù)庫
    sqlplus internal/oracle@phj    shutdown immediate    startup mount pfile=%Oracle_Home%/database/initphj.ora    alter database archivelog    alter database open
   4.生成歸檔日志 下面以分析TMP表的DDL和DML操作為例,介紹使用LogMiner分析重做日志和歸檔日志的全過程。我們首先執(zhí)行以下語句在表TMP上執(zhí)行DDL以及DML操作,并生成歸檔日志:
    sqlplus internal/oracle@phj    create table tmp(name varchar2(10),no number(3));    alter system switch logfile;    insert into tmp values(‘liming’,112);    update tmp set no=200;    commit;    alter system switch logfile;    delete from tmp;    alter system switch logfile; 
通過上面的操作會產(chǎn)生三個連續(xù)的歸檔日志文件。二、建立字典文件 字典文件用于存放表及對象ID號之間的對應關(guān)系。當使用字典文件時,它會在表名和對象ID號之間建立一一對應的關(guān)系。因此需要注重,假如用戶建立了新表之后,并且將來可能會對該表進行日志分析,那么就需要重新建立字典文件,以將其對象名及對象ID號存放到字典文件中。 1.修改參數(shù)文件,添加參數(shù):UTL_FILE_DIR=C:/Oracle/phj/logmnr 目錄logmnr必須事先手工建立,該目錄用于存放產(chǎn)生的字典文件,目錄名稱可以自定。 2.重新啟動數(shù)據(jù)庫
    sqlplus internal/oracle@phj    shutdown immediate    startup pfile=%Oracle_Home%/database/initphj.ora
3.建立字典文件
    BEGIN     dbms_logmnr_d.build(     dictionary_filename=>’dict.ora’,     dictionary_location=>’c:/oracle/phj/logmnr’);    END;    /
注重:參數(shù)dictionary_filename用以指定字典文件的文件名;參數(shù) dictionary_location用于指定存放字典文件所在的目錄,該目錄必須與初始化參數(shù)UTL_FILE_DIR的值一致。假如指定的字典文件名dict.ora已經(jīng)存在,則應在執(zhí)行此操作前將其徹底刪除(從垃圾箱中刪除),否則執(zhí)行該過程將失敗。 三、建立日志分析列表 建立日志分析列表必須在MOUNT或NOMOUNT狀態(tài)下完成。 1.停止并裝載數(shù)據(jù)庫
    sqlplus internal/oracle@phj    shutdown immediate    startup mount pfile=%Oracle_Home%/database/initphj.ora
2.建立日志分析列表 在“生成歸檔日志”的操作中已經(jīng)生成了三個連續(xù)的歸檔日志文件,為便于分析我們重新復制這三個歸檔日志文件并分別命名為:test1.arc、test2.arc、test3.arc。通過以下操作建立日志分析列表:
     BEGIN    dbms_logmnr.add_logfile(    options=>dbms_logmnr.new,     logfilename=>’c:/oracle/phj/archive/test1.arc’);     END;    /
3.增加其它欲進行分析的日志文件
     BEGIN    dbms_logmnr.add_logfile(    options=>dbms_logmnr.addfile,     logfilename=>’c:/oracle/phj/ archive /test2.arc’);     END;    /
用同樣的方法將歸檔日志文件test3.arc增加到日志分析列表中。可以通過動態(tài)性能視圖v$logmnr_logs查看日志分析列表中有哪些待分析的日志文件。
    SQL> select filename from v$logmnr_logs;    FILENAME    ----------------------------------------    c:/oracle/phj/archive/test1.arc    c:/oracle/phj/archive/test2.arc    c:/oracle/phj/archive/test3.arc
四、啟動LogMiner執(zhí)行分析 1.分析重做日志和歸檔日志
     BEGIN    dbms_logmnr.start_logmnr(    dictfilename=>’c:/oracle/phj/logmnr/dict.ora’,     starttime=>to_date(’2003-02-10:10:05:00’,’YYYY-MM-DD:HH24:MI:SS’),     endtime=>to_date(’2003-02-10:10:17:00’,’YYYY-MM-DD:HH24:MI:SS’)    );     END;    /
注重:此過程能否執(zhí)行成功的要害是給出的starttime(起始時間)和endtime(終止時間)應在一個有效的范圍內(nèi)。非凡是終止時間,應小于或等于歸檔日志的建立時間;假如大于歸檔日志的建立時間,則不能執(zhí)行分析過程。分析多個歸檔日志時,這些歸檔日志最好是連續(xù)的。 2.查看日志分析結(jié)果 上面對日志進行分析的結(jié)果存放在動態(tài)性能視圖v$logmnr_contents中,通過查詢該動態(tài)性能視圖可以取得所有DML以及其反操作。
    SQL> select Operation,sql_redo,sql_undo    2 from v$logmnr_contents    3 where seg_name='TMP';    OPERATION SQL_REDO SQL_UNDO    ----------- --------------------- --------------------------    INSERT insert into SYS.TMP…… delete from SYS.TMP ……    UPDATE update SYS.TMP set NO …… update SYS.TMP set ……    DELETE delete from SYS.TMP …… insert into SYS.TMP ……
根據(jù)需要可以從動態(tài)性能視圖v$logmnr_contents中獲取更多的有用信息,限于篇幅此不贅述。對重做日志進行分析的方法與對歸檔日志分析的方法一樣,只是在建立日志分析列表時,需將重做日志文件添加到日志分析列表中。


上一篇:Oracle 9i 的增強型內(nèi)存使用率查看表

下一篇:Oracle分區(qū)功能提高應用程序性能

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 黄冈市| 凉山| 双城市| 佛冈县| 那坡县| 庆阳市| 延吉市| 泉州市| 岫岩| 东乌珠穆沁旗| 高密市| 新宁县| 曲阳县| 定襄县| 克山县| 迁安市| 客服| 三河市| 禄劝| 尼木县| 焦作市| 礼泉县| 微山县| 栾城县| 盐边县| 静安区| 新田县| 阳原县| 偏关县| 来凤县| 会泽县| 杂多县| 安康市| 临汾市| 城固县| 德兴市| 宜良县| 达拉特旗| 奈曼旗| 安溪县| 江山市|